Compare commits

..

325 Commits

Author SHA1 Message Date
Elijah Newren
a5165ee24d 2.13.2 release
2005-11-19  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.2 release
2005-11-19 16:52:25 +00:00
Elijah Newren
a7201d27d1 Merge of all the changes on the constraints_experiments branch. This is
2005-11-18  Elijah Newren  <newren@gmail.com>

	Merge of all the changes on the constraints_experiments branch.
	This is just a summary, to get the full ChangeLog of those
	changes (approx. 2000 lines):
	  cvs -q -z3 update -Pd -r constraints_experiments
	  cvs -q -z3 diff -pu -r CONSTRAINTS_EXPERIMENTS_BRANCHPOINT ChangeLog

	Bugs fixed:
	  unfiled - constraints.c is overly complicated[1]
	  unfiled - constraints.c is not robust when all constraints
	            cannot simultaneously be met (constraints need to be
	            prioritized)
	  unfiled - keep-titlebar-onscreen constraint is decoration
	            unaware (since get_outermost_onscreen_positions()
	            forgets to include decorations)
	  unfiled - keyboard snap-moving and snap-resizing snap to hidden
	            edges
	   109553 - gravity w/ simultaneous move & resize doesn't work
	   113601 - maximize vertical and horizontal should toggle and be
	            constrained
	   122196 - windows show up under vertical panels
	   122670 - jerky/random resizing of window via keyboard[2]
	   124582 - keyboard and mouse snap-resizing and snap-moving
	            erroneously moves the window multidimensionally
	   136307 - don't allow apps to resize themselves off the screen
	            (*cough* filechooser *cough*)
	   142016, 143784 - windows should not span multiple xineramas
	            unless placed there by the user
	   143145 - clamp new windows to screensize and force them
	            onscreen, if they'll fit
	   144126 - Handle pathological strut lists sanely[3]
	   149867 - fixed aspect ratio windows are difficult to resize[4]
	   152898 - make screen edges consistent; allow easy slamming of
	            windows into the left, right, and bottom edges of the
	            screen too.
	   154706 - bouncing weirdness at screen edge with keyboard moving
	            or resizing
	   156699 - avoid struts when placing windows, if possible (nasty
	            a11y blocker)
	   302456 - dragging offscreen too restrictive
	   304857 - wireframe moving off the top of the screen is misleading
	   308521 - make uni-directional resizing easier with
	            alt-middle-drag and prevent the occasional super
	            annoying resize-the-wrong-side(s) behavior
	   312007 - snap-resize moves windows with a minimum size
	            constraint
	   312104 - resizing the top of a window can cause the bottom to
	            grow
	   319351 - don't instantly snap on mouse-move-snapping, remove
	            braindeadedness of having order of releasing shift and
	            releasing button press matter so much

	   [1] fixed in my opinion, anyway.
	   [2] Actually, it's not totally fixed--it's just annoying
	       instead of almost completely unusable.  Matthias had a
	       suggestion that may fix the remainder of the problems (see
	       http://tinyurl.com/bwzuu).
	   [3] This bug was originally about not-quite-so-pathological
	       cases but was left open for the worse cases. The code from
	       the branch handles the remainder of the cases mentioned in
	       this bug.
	   [4] Actually, although it's far better there's still some minor
	       issues left: a slight drift that's only noticeable after
	       lots of resizing, and potential problems with partially
	       onscreen constraints due to not clearing any
	       fixed_directions flags (aspect ratio windows get resized in
	       both directions and thus aren't fixed in one of them)

	New feature:
	    81704 - edge resistance for user move and resize operations;
	            in particular 3 different kinds of resistance are
	            implemented:
             	 Pixel-Distance: window movement is resisted when it
	     	   aligns with an edge unless the movement is greater than
	     	   a threshold number of pixels
             	 Timeout: window movement past an edge is prevented until
	     	   a certain amount of time has elapsed during the
	     	   operation since the first request to move it past that
	     	   edge
             	 Keyboard-Buildup: when moving or resizing with the
	     	   keyboard, once a window is aligned with a certain edge
	     	   it cannot move past until the correct direction has
	     	   been pressed enough times (e.g. 2 or 3 times)

	Major changes:
	  - constraints.c has been rewritten; very few lines of code from
	    the old version remain.  There is a comment near the top of
	    the function explaining the basics of how the new framework
	    works.  A more detailed explanation can be found in
	    doc/how-constraints-works.txt
	  - edge-resistance.[ch] are new files implementing edge-resistance.
	  - boxes.[ch] are new files containing low-level error-prone
	    functions used heavily in constraints.c and edge-resistance.c,
	    among various places throughout the code.  testboxes.c
	    contains a thorough testsuite for the boxes.[ch] functions
	    compiled into a program, testboxes.
	  - meta_window_move_resize_internal() *must* be told the gravity
	    of the associated operation (if it's just a move operation,
	    the gravity will be ignored, but for resize and move+resize
	    the correct value is needed)
	  - the craziness of different values that
	    meta_window_move_resize_internal() accepts has been documented
	    in a large comment at the beginning of the function.  It may
	    be possible to clean this up some, but until then things will
	    remain as they were before--caller beware.
	  - screen and xinerama usable areas (i.e. places not covered by
	    e.g. panels) are cached in the workspace now, as are the
	    screen and xinerama edges.  These get updated with the
	    workarea in src/workspace.c:ensure_work_areas_validated()
2005-11-19 14:58:50 +00:00
Vincent van Adrighem
cfb3bd081a Translation updated by Wouter Bolsterlee.
2005-11-17  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Wouter Bolsterlee.
2005-11-16 23:22:35 +00:00
Elijah Newren
d0095e947f post-release version bump to 2.13.2
2005-11-14  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.2
2005-11-14 18:28:32 +00:00
Elijah Newren
ef486d855c 2.13.1 release
2005-11-14  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.1 release
2005-11-14 18:27:22 +00:00
Theppitak Karoonboonyanan
2e10145b33 Updated Thai translation.
2005-11-13  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.
2005-11-13 06:20:15 +00:00
Aidan Delaney
6677b55cd5 Changed the 'minimized' field of the MetaTabEntry struct to 'hidden'.
2005-11-11 Aidan Delaney <a.j.delaney@brighton.ac.uk>

       * src/tabpopup.h: (struct _MetaTabEntry):
       * src/tabpopup.c: (meta_ui_tab_popup_new):
       * src/screen.c: (meta_screen_ensure_tab_popup):
       Changed the 'minimized' field of the MetaTabEntry struct to
       'hidden'.  Fixes reopened bug #168455.
2005-11-12 00:34:32 +00:00
Norayr Chilingaryan
7c1aa16c3b bugfix ;) 2005-11-08 14:18:08 +00:00
Miloslav Trmac
e2e2c6401b Updated Czech translation.
2005-11-03  Miloslav Trmac  <mitr@volny.cz>

	* cs.po: Updated Czech translation.
2005-11-02 23:02:27 +00:00
Kjartan Maraas
4752ef55c7 Merge fix for bug #320050 from stable.
2005-10-29  Kjartan Maraas  <kmaraas@gnome.org>

	* src/eventqueue.c: (meta_event_queue_new): Merge fix
	for bug #320050 from stable.
2005-10-29 07:37:45 +00:00
Francisco Javier F. Serrador
55f62585d0 Updated Spanish translation.
2005-10-28  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2005-10-28 20:07:07 +00:00
Takeshi AIHANA
a11e758b4b Updated Japanese translation for v2.13.0.
2005-10-29  Takeshi AIHANA <aihana@gnome.gr.jp>

	* ja.po: Updated Japanese translation for v2.13.0.
2005-10-28 15:07:54 +00:00
Erdal Ronahi
828d2ca01e Added Kurdish translation 2005-10-27 18:20:58 +00:00
Philip O'Brien
064303e98e add handling for META_PREF_CURSOR_THEME and META_PREF_CURSOR_SIZE for more
2005-10-25  Philip O'Brien  <philip.obrien@dal.ca>

	* src/prefs.c (meta_preference_to_string): add handling for
	META_PREF_CURSOR_THEME and META_PREF_CURSOR_SIZE for more complete
	debug info
2005-10-25 16:43:01 +00:00
Elijah Newren
094449d097 post-release version bump to 2.13.1
2005-10-24  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.1
2005-10-24 22:40:49 +00:00
Elijah Newren
ddd1d6616d 2.13.0 release
2005-10-24  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.0 release
2005-10-24 22:39:15 +00:00
Elijah Newren
f2acdda740 Fix edge snapping for multi-screen (non-xinerama) setups. #319425
2005-10-23  Elijah Newren  <newren@gmail.com>

	Fix edge snapping for multi-screen (non-xinerama) setups.  #319425

	* src/place.c (get_windows_showing_on_same_screen,
	get_vertical_edges, get_horizontal_edges): rename
	get_windows_on_same_workspace() to
	get_windows_showing_on_same_screen()

	* src/place.c (get_windows_showing_on_same_screen): exclude windows
	in the list that are on a different screen
2005-10-23 21:19:22 +00:00
Elijah Newren
7c70749ae8 Clarify why METACITY_VERBOSE=1 is bad without META_USE_LOGFILE=1; point to
2005-10-20  Elijah Newren  <newren@gmail.com>

	* HACKING: Clarify why METACITY_VERBOSE=1 is bad without
	META_USE_LOGFILE=1; point to bug 305091 for details.
2005-10-21 00:22:38 +00:00
Marcel Telka
37ced4cc32 Updated Slovak translation.
2005-10-17  Marcel Telka  <marcel@telka.sk>

	* sk.po: Updated Slovak translation.
2005-10-17 04:28:32 +00:00
Vincent van Adrighem
0bf176de5b Translation updated.
2005-10-15  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated.
2005-10-15 12:57:14 +00:00
Vincent van Adrighem
f4a587f05e Translation updated.
2005-10-14  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated.
2005-10-14 12:25:09 +00:00
Kostas Papadimas
27b0a5e0b0 Updated Greek translation 2005-10-14 09:38:59 +00:00
Muktha
62fb5e6eb4 Make the unfocussed Simple window border visible with high contrast
2005-10-13  Muktha  <muktha.narayan@wipro.com>

        * src/themes/Simple/metacity-theme-1.xml: Make the unfocussed
        Simple window border visible with high contrast inverse theme.
        Fixes #121361.
2005-10-13 05:51:24 +00:00
Priit Laes
9292fe606a Translation updated by Ivar Smolin.
2005-10-10  Priit Laes  <plaes@cvs.gnome.org>

	* et.po: Translation updated by Ivar Smolin.
2005-10-10 19:36:56 +00:00
Elijah Newren
7ef871f73a Fix a crash that occurs when removing some virtual desktops and windows
2005-10-08  Elijah Newren  <newren@gmail.com>

	Fix a crash that occurs when removing some virtual desktops and
	windows happen to be on those desktops.  #318306.

	* src/workspace.c (meta_workspace_relocate_windows): Since windows
	cannot be on more than one workspace at a time, remove the window
	from the old workspace before adding it to the new one.
2005-10-08 23:18:05 +00:00
Elijah Newren
29e38a2f53 Add my copyright notice to a number of files on which it should already
2005-10-08  Elijah Newren  <newren@gmail.com>

	Add my copyright notice to a number of files on which it should
	already exist.
2005-10-08 19:38:54 +00:00
Alexander Shopov
3e77dd1ace Updated Bulgarian translation by Alexander Shopov <ash@contact.bg>
2005-10-04  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Alexander Shopov <ash@contact.bg>
2005-10-04 07:42:02 +00:00
Funda Wang
5b28d889fa Updated Simplified Chinese translation 2005-10-04 06:49:38 +00:00
Adam Weinberger
fcf89cc2fa Updated Canadian English translation.
2005-10-04  Adam Weinberger  <adamw@gnome.org>

	* en_CA.po: Updated Canadian English translation.
2005-10-04 04:06:13 +00:00
Elijah Newren
0a13bf3270 clarify the meaning of the auto_raise preference. Fixes one of the issues
2005-10-03  Elijah Newren  <newren@gmail.com>

	* src/metacity.schemas.in: clarify the meaning of the auto_raise
	preference.  Fixes one of the issues in #312421.
2005-10-03 20:10:56 +00:00
Elijah Newren
4aaf6e3eb4 Patch from Ross Cohen to make alt-esc consistent with alt-tab by leaving
2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Ross Cohen to make alt-esc consistent with alt-tab by
	leaving stacking of unselected windows unchanged.  Fixes #314285.

	* src/keybindings.c (process_tab_grab): before raising and showing
	the next candidate, reset the stack positions to what they were
	at the beginning of the grab
2005-10-03 20:05:44 +00:00
Elijah Newren
12daca5cb1 Patch from Ross Cohen to make alt-esc (show windows instantly) actually
2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Ross Cohen to make alt-esc (show windows instantly)
	actually show minimized windows too.  Fixes #107072.

	* src/keybindings.c (process_tab_grab): initialize tab_unminimized
	to FALSE for the target window when starting the grab, when
	advancing through the list check to find the previous window and
	re-minimize it if it was tab-unminimized, unminimize the new
	window we're alt-esc'ing to if it's minimized, (do_choose_window):
	raise and unminimize the initial window as well in alt-esc'ing

	* src/window.h (struct _MetaWindow): add a tab_unminimized field

	* src/window.c (meta_window_new_with_attrs): initialize
	tab_unminimized to false
2005-10-03 20:02:31 +00:00
Elijah Newren
1a8c2aa027 Branched for Gnome 2.13. :-)
2005-10-03  Elijah Newren  <newren@gmail.com>

	Branched for Gnome 2.13.  :-)

	* configure.in: bump version to 2.13.0.  Add UNSTABLE warning.
	* README: add 2.13.x to the list of unstable branches
2005-10-03 19:53:55 +00:00
Elijah Newren
26dbf9856b A combination of a couple memory leaks fixes, from Kjartan, Soeren, and I.
2005-10-03  Elijah Newren  <newren@gmail.com>

	A combination of a couple memory leaks fixes, from Kjartan,
	Soeren, and I.  Fixes #313030.

	* src/bell.c (meta_bell_flash_screen): call XFreeGC()

	* src/frames.c (invalidate_cache): free pixels

	* src/window.c (meta_window_show_menu): call
	meta_screen_free_workspace_layout()
2005-10-03 19:22:40 +00:00
Elijah Newren
ea4cd88285 Patch from Björn Lindqvist fix the workspace switcher tabpopup to display
2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Björn Lindqvist fix the workspace switcher tabpopup to
	display the right windows and to fix the
	pick-a-new-window-to-focus algorithm in order to not select
	windows that aren't showing.  Fixes #170475.

	* src/tabpopup.c (meta_convert_meta_to_wnck,
	meta_select_workspace_expose_event): factor out conversion code
	from meta_select_workspace_expose_event() into the new
	meta_convert_meta_to_wnck() function

	* src/tabpopup.c (meta_select_workspace_expose_event):
	* src/workspace.c (focus_ancestor_or_mru_window):
	replace the buggy window->minimized logic with
	!meta_window_showing_on_its_workspace (window)
2005-10-03 19:06:17 +00:00
Elijah Newren
47f1a8634b Patch from Björn Lindqvist to have ancestors come along with the
2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Björn Lindqvist to have ancestors come along with the
	transient when moving the window from one workspace to another.
	Fixes #314977.

	* src/window.c (meta_window_change_workspace): have all ancestors
	change workspaces too
2005-10-03 19:00:01 +00:00
Elijah Newren
c3624745ae post-release version bump to 2.12.2
2005-10-03  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.12.2
2005-10-03 18:35:55 +00:00
Elijah Newren
2aee817a56 2.12.1 release
2005-10-03  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.12.1 release
2005-10-03 18:34:18 +00:00
Elijah Newren
ef5299ee92 Truncate ridiculously long titles to avoid crashing or letting the pager
2005-10-03  Elijah Newren  <newren@gmail.com>

	Truncate ridiculously long titles to avoid crashing or letting the
	pager crash.  Based on patch from Ray, incorporating suggestions
	from Havoc and some extensions of my own.  Fixes #315070.

	* src/display.c (set_utf8_string_hint, meta_display_open):
	* src/xprops.[ch] (meta_prop_set_utf8_string_hint):
	Move set_utf8_string_hint() to props.[ch], namespace it
	("meta_prop_"), and make it public

	* src/tabpopup.c (utf8_strndup, meta_ui_tab_popup_new):
	* src/util.[ch] (meta_g_utf8_strndup):
	Move utf8_strndup() to util.[ch], namespace it ("meta_g_"), and
	make it public

	* src/display.c (meta_display_open):
	* src/display.h (struct _MetaDisplay):
	add net_wm_visible_name and net_wm_visible_icon_name atoms to the
	list of atoms we work with

	* src/window-props.c (set_window_title, set_icon_title): If title
	length is greater than 512, truncate it and set
	_NET_WM_VISIBLE_NAME or _NET_WM_VISIBLE_ICON_NAME accordingly
2005-10-03 18:13:45 +00:00
Elijah Newren
fcba59e685 Get the tabbing window outline to work with gtk+ 2.8.4 again. Fixes
2005-10-03  Elijah Newren  <newren@gmail.com>

	Get the tabbing window outline to work with gtk+ 2.8.4 again.
	Fixes #317528.

	* src/tabpopup.c (display_entry): gtk+ 2.8.4 needs to know the
	mapped state of its windows (see bug 316180), and since we
	manually map with gdk_window_show_unraised() we need to manually
	set the mapped state too
2005-10-03 17:11:49 +00:00
Runa Bhattacharjee
662da0ec3c Added Entry for Updation of Bengali (bn) Translation:10/03 2005-10-03 05:46:53 +00:00
Runa Bhattacharjee
66c5548061 Updated Bengali (bn) Translation:10/03 2005-10-03 05:46:30 +00:00
Christian Rose
9503b4ba21 Fix the date in the ChangeLog entry. 2005-10-02 21:45:32 +00:00
Christian Rose
72c5649bc3 Reverted unauthorized changes made by user 'kloczek'.
2005-09-29  Christian Rose  <menthos@menthos.com>

	* sv.po: Reverted unauthorized changes made by
	user 'kloczek'.
2005-10-02 21:37:52 +00:00
Alessio Frusciante
43d72674e9 Updated Italian translation. 2005-09-26 20:07:26 +00:00
Funda Wang
943f4f66fb Updated Simplified Chinese translation 2005-09-24 15:17:34 +00:00
Francisco Javier F. Serrador
997b5dcccf Updated Spanish translation.
2005-09-21  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2005-09-21 18:35:16 +00:00
Christian Rose
94da2b94d7 Updated Swedish translation.
2005-09-20  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2005-09-20 19:59:25 +00:00
Tomasz Kłoczko
c502053ffc removed outdated strings and run "make update-po". 2005-09-19 14:25:36 +00:00
Nguyen Thai Ngoc Duy
213833f333 Fixed Kông 2005-09-17 05:40:13 +00:00
Clytie Siddall
9136686aa4 vi.po: Updated Vietnamese translation. 2005-09-16 07:45:55 +00:00
Inaki Larranaga
8eed998780 Updated Basque translation.
2005-09-08  Inaki Larranaga  <dooteo@euskalgnu.org>

	* eu.po: Updated Basque translation.
2005-09-08 18:52:51 +00:00
Priit Laes
0d1c28948d Translation updated by Ivar Smolin.
2005-09-07  Priit Laes  <plaes@cvs.gnome.org>

	* et.po: Translation updated by Ivar Smolin.
2005-09-07 05:18:49 +00:00
Elijah Newren
d02dc0e89a file constraints-ideas.txt was initially added on branch constraints_experiments. 2005-09-06 21:51:06 +00:00
Elijah Newren
b4f123c332 post-release version bump to 2.12.1
2005-09-05  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.12.1
2005-09-05 23:29:24 +00:00
Elijah Newren
422ee61608 2.12.0 release
2005-09-05  Elijah Newren  <newren@gmail.com>

	* configure.in:
	* README:
	* NEWS:
	2.12.0 release
2005-09-05 23:28:16 +00:00
Danilo Šegan
06df0d64ad Added Armenian translation. 2005-09-04 16:19:12 +00:00
Ignacio Casal Quinteiro
4c96a68427 *** empty log message *** 2005-09-04 09:26:15 +00:00
Elijah Newren
86bbde337c Add tips on how to more easily get the ids of windows, and how to shorten
2005-09-03  Elijah Newren  <newren@gmail.com>

	* HACKING: Add tips on how to more easily get the ids of windows,
	and how to shorten xprop output.
2005-09-03 23:33:27 +00:00
Danilo Šegan
809a1c173f Updated Serbian translation. 2005-09-03 19:07:50 +00:00
Amanpreet Singh Alam
735188fd2b update by amanpreetalam@yahoo.com 2005-09-02 19:45:30 +00:00
Brent Smith
6bb6566b86 Moved the call to meta_screen_get_natural_xinerama_list to earlier in
2005-09-02  Brent Smith  <gnome@nextreality.net>

        * src/place.c: (meta_window_place): Moved the call to
        meta_screen_get_natural_xinerama_list to earlier in
        function so that xineramas_list is allocated before
        find_first_fit is called.  Fixes #315000
2005-09-02 15:54:34 +00:00
Leonid Kanter
304a05b9a3 Updated Russian translation 2005-09-02 10:48:31 +00:00
Baris Cicek
7f90738dba Updated Turkish translation 2005-09-01 16:09:45 +00:00
Žygimantas Beručka
909de04b89 Updated Lithuanian translation.
2005-08-31  Žygimantas Beručka  <zygis@gnome.org>

	* lt.po: Updated Lithuanian translation.
2005-08-31 07:49:41 +00:00
Hendrik Richter
b751ceb159 Updated German translation.
2005-08-30  Hendrik Richter  <hendi@gnome-de.org>

	* de.po: Updated German translation.
2005-08-30 14:56:26 +00:00
Jens Seidel
feebb2f42e Typo corrections 2005-08-29 21:40:20 +00:00
Changwoo Ryu
2139d4e25e Updated Korean translation by Young-Ho Cha.
2005-08-30  Changwoo Ryu  <cwryu@debian.org>

	* ko.po: Updated Korean translation by Young-Ho Cha.
2005-08-29 17:35:59 +00:00
Telsa Gwynne
3ed91c8e14 Updated Welsh translation 2005-08-29 16:03:54 +00:00
Christophe Merlet
02d6e62aec Updated French translation. 2005-08-28 11:56:46 +00:00
Vincent van Adrighem
8126d0953d Translation updated by Michiel Sikkes.
2005-08-25  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Michiel Sikkes.
2005-08-25 16:03:03 +00:00
Elijah Newren
fc6dbd84b9 post-release version bump to 2.11.5
2005-08-22  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.11.5
2005-08-22 19:05:18 +00:00
Elijah Newren
e16863f783 2.11.3 release
2005-08-22  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.11.3 release
2005-08-22 19:03:58 +00:00
Elijah Newren
96c238bbc6 Patch from Björn Lindqvist to check for the appropriate versions of glib
2005-08-22  Elijah Newren  <newren@gmail.com>

	* configure.in: Patch from Björn Lindqvist to check for the
	appropriate versions of glib and gtk.  Fixes #314116.
2005-08-22 18:40:07 +00:00
Josep Puigdemont i Casamajó
2df2e18a9b Updated Catalan translation. 2005-08-20 14:00:55 +00:00
Priit Laes
5305e17392 Translation updated by Ivar Smolin.
2005-08-19  Priit Laes  <plaes@cvs.gnome.org>

	* et.po: Translation updated by Ivar Smolin.
2005-08-19 05:55:01 +00:00
Laurent Dhima
cb19fdc3ce Updated Albanian translation.
2005-08-17  Laurent Dhima  <laurenti@alblinux.net>

	* sq.po: Updated Albanian translation.
2005-08-17 10:04:01 +00:00
Maxim Dziumanenko
7d1e1b042f Updated Ukrainian translation.
2005-08-15  Maxim Dziumanenko <mvd@mylinux.ua>

	* Updated Ukrainian translation.
2005-08-15 21:39:07 +00:00
Gabor Kelemen
4b4d6cac42 Hungarian translation updated.
2005-08-15  Gabor Kelemen  <kelemeng@gnome.hu>

	* hu.po: Hungarian translation updated.
2005-08-14 22:13:03 +00:00
Mugurel Tudor
905a92a20a Updated Romanian translation
2005-08-15  Mugurel Tudor  <mugurelu@gnome.ro>

        * ro.po: Updated Romanian translation
2005-08-14 21:51:32 +00:00
Mohammad DAMT
f1bcb6b51a Updated Indonesian translation
2005-08-14  Mohammad DAMT  <mdamt@gnome.org>

  * id.po: Updated Indonesian translation
2005-08-14 07:28:08 +00:00
Kostas Papadimas
a39cb116c7 Updated Greek Translation 2005-08-13 10:08:17 +00:00
Elijah Newren
87f613fbbe Avoid obscuring centered-on-desktop windows which are denied focus. Fixes
2005-08-12  Elijah Newren  <newren@gmail.com>

        * src/place.c (meta_window_place): Avoid obscuring
        centered-on-desktop windows which are denied focus.  Fixes
        #313234.
2005-08-13 03:58:24 +00:00
Duarte Loreto
f38e760506 Updated Portuguese translation.
2005-08-11  Duarte Loreto <happyguy_pt@hotmail.com>

	* pt.po: Updated Portuguese translation.
2005-08-11 16:16:20 +00:00
Alexander Shopov
05dcc58174 Updated Bulgarian translation by Rostislav Raykov <zbrox@i-space.org>
2005-08-10  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Rostislav Raykov <zbrox@i-space.org>
2005-08-10 19:38:56 +00:00
Elijah Newren
ce42492db4 Use consistent notation; [#bug-number] not [bug-number] 2005-08-08 23:03:28 +00:00
Elijah Newren
893fadf7d6 post-release version bump to 2.11.3
2005-08-08  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.11.3
2005-08-08 21:49:50 +00:00
Elijah Newren
a182b353ce 2.11.2 release
2005-08-08  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.11.2 release
2005-08-08 21:48:08 +00:00
Elijah Newren
f335b0c381 Patch from Brent Smith to fix a duplicate string. Fixes #309774.
2005-08-08  Elijah Newren  <newren@gmail.com>

	Patch from Brent Smith to fix a duplicate string.  Fixes #309774.

	* src/theme-parser.c (parse_toplevel_element, parse_draw_op_element):

	Change "No \"%s\" attribute on element <%s>" string to "No \"%s\"
	attribute on <%s> element"
2005-08-08 21:31:31 +00:00
Ray Strode
2972ab6df6 Improve the behavior of keyboard move/resize and edge snapping. Still not
2005-08-03  Ray Strode  <rstrode@redhat.com>

	Improve the behavior of keyboard move/resize and edge
	snapping.  Still not perfect, bug 310888.

	* src/effects.c (draw_xor_rect): Make the outside of a
	wireframe rectangle line up with the outside edge of its
	window, instead of centering the wireframe edges on the
	window edges.

	* src/keybindings.c (process_keyboard_move_grab): allow
	edge snapping in wireframe mode.  Adjust code to take
	into account changed semantics of find_next_*_edge
	functions.
	(process_keyboard_resize_grab_op_change): new function
	to take some orthogonal logic out of
	process_keyboard_resize_grab_op.  Only allow keyboard
	resize cursor to go to flat edges, not corners.
	(process_keyboard_resize_grab):  allow edge snapping in
	wireframe mode.  Fix up snapping logic.

	* src/place.c (get_{vertical,horizontal}_edges): use
	GArray instead of int *, since the number of output
	edges isn't known until the middle of the function now.
	Use xor rect extents instead of window extends if in
	wireframe mode.
	(meta_window_find_next_{vertical,horizontal}_edge: add
	new source_edge_position parameter to specify which edge
	on the active window to start from when looking for next
	edge on the screen. Return the coordinate of the edge
	found and not the coordinate of where the window should be
	moved to snap to where the edge was found.

	* src/window.c (update_move): all the user to specify
	an edge to resize with mouse in keyboard resize mode.
	window
2005-08-03 02:22:00 +00:00
Chao-Hsiung Liao
8e927fd300 Updated Traditional Chinese translation.
2005-08-02  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>

	* zh_TW.po: Updated Traditional Chinese translation.
2005-08-02 12:30:10 +00:00
Elijah Newren
c50c8e6f7d Change default theme from "Simple" to "Clearlooks".
2005-08-01  Elijah Newren  <newren@gmail.com>

	* src/metacity.schemas.in: Change default theme from "Simple" to
	"Clearlooks".
2005-08-01 14:56:24 +00:00
Rajesh Ranjan
d8a1b9750b upded by rranjan@redhat.com 2005-08-01 09:41:23 +00:00
Elijah Newren
1b2e5e56a8 use only the expected_focus_window instead of both the focused_window and
2005-07-31  Elijah Newren  <newren@gmail.com>

	* src/stack.c (is_focused_foreach, get_standalone_layer): use only
	the expected_focus_window instead of both the focused_window and
	the expected_focus_window.  Removes an infinite flicker loop in
	sloppy and mouse focus, and an ugly one time flicker in click to
	focus.  Fixes #311400.
2005-08-01 04:58:58 +00:00
Yair Hershkovitz
7a9be72bdf Updated Hebrew translation by Yuval Tanai.
2005-07-31  Yair Hershkovitz  <yairhr@gmail.com>

	* he.po: Updated Hebrew translation by Yuval Tanai.
2005-07-31 12:52:13 +00:00
Elijah Newren
d5705ef576 Patch from Jaap Haitsma to make sure that Metacity dialogs have icons.
2005-07-30  Elijah Newren  <newren@gmail.com>

        Patch from Jaap Haitsma to make sure that Metacity dialogs have
        icons.  Fixes #309876.

        * src/metacity-dialog.c (kill_window_question,
        warn_about_no_sm_support, error_about_command): call
        gtk_window_set_icon_name() to set the dialog icon
2005-07-30 15:18:01 +00:00
Elijah Newren
20b7ee18ef remove some unneeded debug spew that was causing crashes. Fixes #311819.
2005-07-28  Elijah Newren  <newren@gmail.com>

	* src/place.c (avoid_being_obscured_as_second_modal_dialog):
	remove some unneeded debug spew that was causing crashes.  Fixes
	#311819.
2005-07-28 19:05:28 +00:00
Artur Flinta
7311386172 Updated Polish translation by GNOME PL Team.
2005-07-28  Artur Flinta  <aflinta@cvs.gnome.org>

	* pl.po: Updated Polish translation by GNOME PL Team.
2005-07-28 13:11:23 +00:00
Raphael Higino
91e594863c Converted to UTF-8 2005-07-26 15:12:11 +00:00
Raphael Higino
455dbdf67a Updated pt_BR translation 2005-07-26 15:06:48 +00:00
Elijah Newren
7f1fd68952 post-release version bump to 2.11.2
2005-07-24  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.11.2
2005-07-25 03:36:53 +00:00
Elijah Newren
9c97fd2b9b 2.11.1 release
2005-07-24  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.11.1 release
2005-07-25 03:32:50 +00:00
Elijah Newren
266f78d9a8 try to place windows denied focus near the focus window and fix a xinerama
2005-07-24  Elijah Newren  <newren@gmail.com>

	* src/place.c (find_most_freespace): try to place windows denied
	focus near the focus window and fix a xinerama bug with the
	placement, (avoid_being_obscured_as_a_second_modal_dialog): avoid
	modal dialogs being obscured in somewhat pathologically strange
	circumstances that Eclipse seems to be good at triggering,
	(meta_window_place): have dialog windows make use of
	avoid_being_obscured_as_a_second_modal_dialog().  Fixes one of the
	issues found in #307875.
2005-07-25 02:12:58 +00:00
Elijah Newren
c25b8ec616 raise the window as well as its ancestor; fixes a stacking bug with an
2005-07-24  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_raise): raise the window as well as
	its ancestor; fixes a stacking bug with an ancestor that has more
	than one child window.  Fixes one of the issues in #307875.
2005-07-25 01:52:50 +00:00
Elijah Newren
c64bda776b restore original window size if the window was maximized, as the FIXME
2005-07-24  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_free): restore original window size if
	the window was maximized, as the FIXME says.  ;-) Fixes #137185.
2005-07-25 01:39:24 +00:00
Ilkka Tuohela
ef5c3f976a Updated Finnish translation 2005-07-24 18:16:22 +00:00
Kjartan Maraas
7e2a44039f Updated Norwegian bokmål translation. Same
2005-07-24  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.
	* no.po: Same
2005-07-24 17:02:05 +00:00
Elijah Newren
225407f3b3 revert the patch from #128380--change _NET_ACTIVE_WINDOW behavior to what
2005-07-23  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_activate): revert the patch from
	#128380--change _NET_ACTIVE_WINDOW behavior to what it originally
	was.
2005-07-24 01:13:41 +00:00
Clytie Siddall
845a7fe554 vi.po: Updated Vietnamese translation. 2005-07-23 11:19:42 +00:00
Funda Wang
969a4ab3ef Updated Simplified Chinese translation 2005-07-23 08:11:47 +00:00
Nguyen Thai Ngoc Duy
10ea37ec4a Merged from gnome-2.10 2005-07-21 11:47:47 +00:00
Ankitkumar Rameshchandra Patel
b102891467 updated Translations 2005-07-21 07:48:29 +00:00
Marcel Telka
4c143b3635 Updated Slovak translation.
2005-07-20  Marcel Telka  <marcel@telka.sk>

	* sk.po: Updated Slovak translation.
2005-07-20 21:36:56 +00:00
Ivan Stojmirov
eb04fe1ec7 done 2005-07-20 21:35:12 +00:00
Adam Weinberger
2126caf511 Updated Canadian English translation.
2005-07-18  Adam Weinberger  <adamw@gnome.org>

	* en_CA.po: Updated Canadian English translation.
2005-07-18 09:02:10 +00:00
Matthias Clasen
b6fa0deff3 Forgotten configure changes for the cursor theme changes. 2005-07-18 04:13:12 +00:00
Christophe Merlet
10ee3e89dc Updated French translation. 2005-07-17 17:25:06 +00:00
Francisco Javier F. Serrador
364b402e8d Updated Spanish translation.
2005-07-17  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2005-07-17 10:49:34 +00:00
Theppitak Karoonboonyanan
65e2f2ba4b Updated Thai translation.
2005-07-17  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.
2005-07-17 02:25:42 +00:00
Nikos Charonitakis
4c7dc0bbb4 Updated Greek translation 2005-07-16 22:52:06 +00:00
Takeshi AIHANA
1b52fa05e6 Fixed encoding to UTF-8.
2005-07-16  Takeshi AIHANA <aihana@gnome.gr.jp>

	* ja.po: Fixed encoding to UTF-8.
2005-07-16 01:18:02 +00:00
Takeshi AIHANA
3f214dd33d Updated Japanese translation for v2.11.0.
2005-07-16  Takeshi AIHANA <aihana@gnome.gr.jp>

	* ja.po: Updated Japanese translation for v2.11.0.
2005-07-16 01:13:57 +00:00
Ignacio Casal Quinteiro
b54ff6be9f *** empty log message *** 2005-07-15 15:05:38 +00:00
Yair Hershkovitz
c62efca089 Updated Hebrew translation.
2005-07-14  Yair Hershkovitz  <yairhr@gmail.com>

	* he.po: Updated Hebrew translation.
2005-07-14 21:02:35 +00:00
Elijah Newren
6c023bfef7 Patch from Ken Harris to provide a more lenient threshold for drawing
2005-07-14  Elijah Newren  <newren@gmail.com>

	Patch from Ken Harris to provide a more lenient threshold for
	drawing rounded corners.  Fixes #122065.

	* src/theme.c (meta_frame_layout_calc_geometry): use height +
	width > 5 instead of height > 3 && width > 3 as criterion
2005-07-14 21:00:26 +00:00
Miloslav Trmac
020736a42f Updated Czech translation.
2005-07-14  Miloslav Trmac  <mitr@volny.cz>

	* cs.po: Updated Czech translation.
2005-07-14 09:06:43 +00:00
Elijah Newren
c635ac51cb Fix a slight bug (causing possible miscoloring of parts of the titlebar)
2005-07-13  Elijah Newren  <newren@gmail.com>

	Fix a slight bug (causing possible miscoloring of parts of the
	titlebar) introduced by the patch from #169982.

	* src/gradient.c:
	(meta_gradient_create_interwoven):
	(meta_gradient_create_multi_vertical):

	bitshifting operators do not take precedence over typecasting, so
	make sure to use parentheses to get the right operation order.
2005-07-13 18:24:56 +00:00
Marcel Telka
053c1b9d19 Updated Slovak translation.
2005-07-13  Marcel Telka  <marcel@telka.sk>

	* sk.po: Updated Slovak translation.
2005-07-13 05:11:19 +00:00
Elijah Newren
241a44e69c post-release version bump to 2.11.1
2005-07-12  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.11.1
2005-07-12 23:19:16 +00:00
Elijah Newren
b22e85f81a 2.11.0 release
2005-07-12  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.11.0 release
2005-07-12 23:18:04 +00:00
Elijah Newren
7bda73a415 Patch from Andrew Johnson to speed up vertical gradients. Fixes #169982.
2005-07-12  Elijah Newren  <newren@gmail.com>

	Patch from Andrew Johnson to speed up vertical gradients.  Fixes
	#169982.

	* src/gradient.c:
	(meta_gradient_create_interwoven):
	(meta_gradient_create_vertical):
	(meta_gradient_create_multi_vertical):

	use memcpy instead of really long loops to set values in memory to
	a given pattern.
2005-07-12 22:34:25 +00:00
Elijah Newren
0e956c674f Patch from Björn Lindqvist to split up main() into more manageable chunks
2005-07-12  Elijah Newren  <newren@gmail.com>

	Patch from Björn Lindqvist to split up main() into more manageable
	chunks and make use of GOpt.  Closes #305331.

	* src/main.c (usage): remove this function,
	(meta_print_compilation_info): new function taken from main(),
	(meta_print_self_identity): new function taken from main(),
	(struct MetaArguments) new struct to replace some free variables,
	(meta_parse_options): new funcion taken from main() but now using
	GOpt, (meta_select_display): new function taken from main()
2005-07-12 20:54:34 +00:00
Aivars Kalvans
d09fb9f806 free ->xinerama_infos Closes bug#307884
2005-07-12  Aivars Kalvans <aivars.kalvans@inbox.lv>

        * src/screen.c (meta_screen_free): free ->xinerama_infos
        Closes bug#307884
2005-07-12 19:01:38 +00:00
Priit Laes
61c6519798 Translation updated by Ivar Smolin.
2005-07-12  Priit Laes  <plaes@cvs.gnome.org>

	* et.po: Translation updated by Ivar Smolin.
2005-07-11 21:36:13 +00:00
Elijah Newren
786af7ea61 Stuff I forgot to do when I branched an hour or so ago before Matthias'
2005-07-11  Elijah Newren  <newren@gmail.com>

        Stuff I forgot to do when I branched an hour or so ago before
        Matthias' commit...

        * configure.in: bump version to 2.11.0.  Add UNSTABLE warning.
        * README: add 2.11.x to the list of unstable branches
2005-07-11 13:31:53 +00:00
Matthias Clasen
8ce054b21b React to cursor theme changes: (#308106)
2005-07-11  Matthias Clasen  <mclasen@redhat.com>

	React to cursor theme changes: (#308106)

	* src/prefs.h:
	* src/prefs.c: Expose the GConf keys for cursor theme
	and size as preferences META_PREF_CURSOR_THEME and
	META_PREF_CURSOR_SIZE with getters meta_prefs_get_cursor_theme()
	and meta_prefs_get_cursor_size().

	* src/display.c (meta_display_open): Initialize the cursor
	theme and size.

	* src/display.h:
	* src/display.c (meta_display_set_cursor_theme): New function
	to change the cursor theme and update all cursors.

	* src/screen.h
	* src/screen.c (meta_screen_update_cursor): New function to
	refesh the root cursor of a screen.

	* src/main.c (prefs_changed_callback): Update the cursor
	theme when the cursor preferences change.
2005-07-11 13:25:08 +00:00
Clytie Siddall
7335b44d3e vi.po: Updated Vietnamese translation.CVS: ---------------------------------------------------------------------- 2005-07-08 06:55:05 +00:00
Christian Rose
e4bd174a7b Updated Galician translation by Ignacio Casal Quinteiro
2004-07-06  Christian Rose  <menthos@menthos.com>

	* gl.po: Updated Galician translation by
	Ignacio Casal Quinteiro <nacho.resa@gmail.com>.
2005-07-06 06:24:12 +00:00
Hendrik Richter
3a6a4966e2 Fixed German translation by Jens Seidel <jensseidel@users.sf.net>.
2005-07-04  Hendrik Richter  <hendi@gnome-de.org>

	* de.po: Fixed German translation by
	Jens Seidel <jensseidel@users.sf.net>.
2005-07-04 18:03:31 +00:00
Ivan Stojmirov
14d54719d7 translated 98% 2005-07-03 11:52:06 +00:00
Elijah Newren
bd56f4ec07 post-release version bump to 2.10.3
2005-06-27  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.10.3
2005-06-27 23:27:33 +00:00
Elijah Newren
3b6f14fa6f 2.10.2 release
2005-06-27  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.10.2 release
2005-06-27 23:26:24 +00:00
Soeren Sandmann
947e45d27d Add a cache of pixmaps for recently exposed frame areas. Makes metacity a
Sun Jun 26 11:19:18 2005  Soeren Sandmann  <sandmann@redhat.com>

	* src/frames.c: Add a cache of pixmaps for recently exposed frame
	areas. Makes metacity a bit faster when dragging windows around.
	See bug 141813.
2005-06-26 21:58:37 +00:00
Rajesh Ranjan
a85aea8b18 updted by rranjan@redhat.com 2005-06-24 07:53:13 +00:00
Ignacio Casal Quinteiro
c35bc07c74 *** empty log message *** 2005-06-23 17:22:46 +00:00
Kwok-Koon Cheung
4f98706852 fix language team reference 2005-06-23 01:22:12 +00:00
Rajesh Ranjan
b5b0255e4c updtaed by rranjan@redhat.com 2005-06-15 06:09:12 +00:00
Ryan Lortie
e003ba87d1 Prevent using the address of a local variable as a hash key. (Bug #307209)
2005-06-10  Ryan Lortie  <desrt@desrt.ca>

        * src/frames.c: Prevent using the address of a local variable
          as a hash key.  (Bug #307209)

        * src/xprops.c (meta_prop_get_values): Fix a small leak in the
          case of a SYNC_COUNTER property value and HAVE_XSYNC not
          defined.  (Bug #307214)
2005-06-11 02:28:04 +00:00
Ray Strode
064a86e620 Cleanup font data when done with it (bug 306720).
2005-06-07  Ray Strode  <rstrode@redhat.com>

	Cleanup font data when done with it (bug 306720).

	* src/effects.c (draw_xor_rect): free font info structure.
	* src/screen.c (meta_screen_new): pass a 1 not a 0 to
	XFreeFontInfo to free font info structure.
	(meta_screen_free): call XUnloadFont on GC font before freeing
	the GC.
2005-06-07 15:52:56 +00:00
Theppitak Karoonboonyanan
1ff193b819 Updated Thai translation.
2005-06-05  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.
2005-06-05 16:26:46 +00:00
Elijah Newren
3fdf721286 If a window requests to be raised and is denied, set the demands attention
2005-06-02  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_configure_request): If a window
	requests to be raised and is denied, set the demands attention
	hint.  Fixes #305882.
2005-06-02 15:47:37 +00:00
Elijah Newren
90dc2116ad if the window has a modal transient which is being unmanaged, don't focus
2005-06-02  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_focus): if the window has a modal
	transient which is being unmanaged, don't focus it.  Fixes the
	Metacity issue reported in #305362.
2005-06-02 15:24:40 +00:00
Priit Laes
d5eaa386dd Translation updated.
2005-06-01  Priit Laes  <plaes@cvs.gnome.org>

	* et.po: Translation updated.
2005-06-01 20:10:27 +00:00
Ray Strode
14b8de3727 Bug 305564 again.
2005-05-30  Ray Strode  <rstrode@redhat.com>

	Bug 305564 again.

	When drawing XOR resize popup use "fixed" font instead of
	-misc-fixed-*-16-* xlfd.  Should work on more xservers.

	Also take steps to fail better if the xserver isn't
	cooperating.

	* src/effects.c (draw_xor_rect): if we can't draw font box
	for whatever reason, at least draw grid frames.

	* src/screen.c (meta_screen_new): use fixed alias instead
	of a xfld.  Don't pass GCFont to XCreateGC if font couldn't
	be loaded.  Print a warning if font couldn't be loaded.
2005-05-30 20:15:26 +00:00
Elijah Newren
1799ef6006 Add a clarification that METACITY_VERBOSE needs to be accompanied by
2005-05-26  Elijah Newren  <newren@gmail.com>

	* HACKING: Add a clarification that METACITY_VERBOSE needs to be
	accompanied by METACITY_USE_LOGFILE
2005-05-26 22:05:04 +00:00
Elijah Newren
be49961944 Patch from Greg Hudson to make sure window position is calculated
2005-05-26  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_configure_request): Patch from Greg
	Hudson to make sure window position is calculated correctly for
	reconfigure requests when part of the XWindowChanges structure is
	uninitialized.  Fixes #305257.
2005-05-26 20:14:15 +00:00
Ray Strode
7b416a0a2d Actually commit the stuff mentioned in the last ChangeLog entry.
2005-05-26  Ray Strode  <rstrode@redhat.com>

	Actually commit the stuff mentioned in the last
	ChangeLog entry.
2005-05-26 19:58:17 +00:00
Ray Strode
2e0d27d0f1 Add a resize popup when resizing constrained windows, (bug 305564).
2005-05-26  Ray Strode  <rstrode@redhat.com>

	Add a resize popup when resizing constrained
	windows, (bug 305564).

	* src/display.c:
	(meta_display_begin_grab_op),
	(meta_display_end_grab_op):
	* src/keybindings.c (process_keyboard_move_grab),
	(process_keyboard_resize_grab): Call
	meta_window_{begin,update,end}_wireframe convenience
	functions instead of the meta_effects counterparts.

	* src/display.h: keep track of old wireframe geometry to
	clean up xor popup on resize

	* src/effects.[ch] (meta_effects_begin_wireframe),
	(meta_effects_update_wireframe),
	(meta_effects_end_wireframe),
	(draw_xor_rect): take optional width and height arguments
	to show to user in resize popup. Draw resize popup if
	width and height >= 0 and wireframe isn't smaller than
	the popup would be.

	* src/screen.c (meta_screen_new): load a largish font for
	the resize popup

	* src/window.[ch]
	(meta_window_move_resize_internal): update
	wireframe resize popup when the window is resized.
	(meta_window_get_wireframe_geometry): new function to
	calculate the numbers to display in resize popup
	(meta_window_begin_wireframe),
	(meta_window_update_wireframe),
	(meta_window_end_wireframe): new functions to reduce
	repetitive wireframe code.  Functions handle updating
	wireframe and resize popup geometry.
	(update_move), (update_resize),
	(meta_window_refresh_resize_popup): remove fixme and
	add debug message.
2005-05-26 19:27:01 +00:00
Elijah Newren
e1891161d0 don't accidentally treat maximize vertically as maximize in both
2005-05-26  Elijah Newren  <newren@gmail.com>

	* src/window.c (check_maximize_to_work_area): don't accidentally
	treat maximize vertically as maximize in both directions.  Fixes
	#302204.
2005-05-26 18:42:55 +00:00
Elijah Newren
eb46b01e97 put all transients of the new window, if any exist, in the calc_showing
2005-05-26  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_new_with_attrs): put all transients
	of the new window, if any exist, in the calc_showing queue.  Fixes
	#303284.
2005-05-26 17:15:56 +00:00
Nikos Charonitakis
b71671f94f updated Greek translation 2005-05-19 20:35:22 +00:00
Kostas Papadimas
5f23d91c39 Updated Greek Translation. 2005-05-11 11:28:03 +00:00
Adi Attar
54f2bb3648 Updated Xhosa translation.
2005-05-10  Adi Attar  <aattar@cvs.gnome.org>

	* xh.po: Updated Xhosa translation.
2005-05-10 14:41:38 +00:00
Kostas Papadimas
4223bc53f8 Updated Greek Translation. 2005-04-28 11:17:20 +00:00
Priit Laes
7b1f4e8a8b Translation updated by Ivar Smolin.
2005-04-25  Priit Laes  <plaes@cvs.gnome.org>

	* et.po: Translation updated by Ivar Smolin.
2005-04-25 09:43:56 +00:00
Pauli Virtanen
18f7f5f76d Fix a small mistranslation.
2005-04-17  Pauli Virtanen <pauli.virtanen@hut.fi>

	 * fi.po: Fix a small mistranslation.
2005-04-17 17:30:58 +00:00
Søren Sandmann Pedersen
9c4d95d9c8 file lmctypes.h was initially added on branch spiffifity. 2005-04-13 19:04:26 +00:00
Søren Sandmann Pedersen
6f5fedcc7c file lmcbits.c was initially added on branch spiffifity. 2005-04-13 18:45:19 +00:00
Søren Sandmann Pedersen
da578b2e4a file lmcbits.h was initially added on branch spiffifity. 2005-04-13 18:45:19 +00:00
Søren Sandmann Pedersen
030ad7c7fc file lmctexture.c was initially added on branch spiffifity. 2005-04-13 18:45:19 +00:00
Søren Sandmann Pedersen
2876a8ea4d file lmctexture.h was initially added on branch spiffifity. 2005-04-13 18:45:19 +00:00
Elijah Newren
a11aaf96c7 post-release version bump to 2.10.2
2005-04-11  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.10.2
2005-04-11 22:29:44 +00:00
Elijah Newren
b49c0ec888 2.10.1 release
2005-04-11  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.10.1 release
2005-04-11 22:28:04 +00:00
Christopher Orr
1ba71ab9ff Updated British English translation.
2005-04-09  Christopher Orr  <chris@protactin.co.uk>

	* en_GB.po: Updated British English translation.
2005-04-09 14:13:24 +00:00
Dan Winship
82c8ca4588 Make sure the "Close" button has the focus, not the table. (#172703)
* src/metacity-dialog.c (warn_about_no_sm_support): Make sure the
        "Close" button has the focus, not the table. (#172703)
2005-04-08 14:49:01 +00:00
Roozbeh Pournader
7d9d9f52cd Updated Persian translation by Elnaz Sarbar <elnaz@farsiweb.info>.
2005-04-06  Roozbeh Pournader  <roozbeh@farsiweb.info>

	* fa.po: Updated Persian translation by
	  Elnaz Sarbar <elnaz@farsiweb.info>.
2005-04-06 14:52:45 +00:00
Pawan Chitrakar
9cb157caf8 Added Nepali Translation
2005-04-05  Pawan Chitrakar  <pawan@nplinux.org>

	* ne.po: Added Nepali Translation

	* configure.in: Added ne in ALL_LINGUAS
2005-04-05 04:12:43 +00:00
Gabor Kelemen
8eb38bb871 Hungarian translation updated.
2005-04-03  Gabor Kelemen  <kelemeng@gnome.hu>

	* hu.po: Hungarian translation updated.
2005-04-03 14:15:50 +00:00
Steven Michael Murphy
2b86f5d870 Added new Language, Kinyarwanda (rw), to this package 2005-04-01 01:32:22 +00:00
Adi Attar
0a7bbc9b06 Updated Xhosa translation.
2005-03-29  Adi Attar  <aattar@cvs.gnome.org>

	* xh.po: Updated Xhosa translation.
2005-03-29 13:47:28 +00:00
Adam Weinberger
16012cb7f2 Updated Canadian English translation.
* en_CA.po: Updated Canadian English translation.
2005-03-17 05:26:21 +00:00
Lex Hider
c9592c587e add doc/code-overview.txt and doc/how-to-get-focus-right.txt
2005-03-17  Lex Hider  <Lex.Hider@gmail.com>

	* doc/Makefile.am (EXTRA_DIST): add doc/code-overview.txt and
	doc/how-to-get-focus-right.txt
2005-03-17 00:01:15 +00:00
Baris Cicek
c48b52456b Updated Turkish Translation
* tr.po: Updated Turkish Translation
2005-03-13 01:35:40 +00:00
Adi Attar
48fa3d5fcb Added Xhosa translation. Added "xh" to ALL_LINGUAS.
2005-03-10  Adi Attar  <aattar@cvs.gnome.org>

	* xh.po: Added Xhosa translation.
	* configure.in: Added "xh" to ALL_LINGUAS.
2005-03-10 15:17:34 +00:00
Elijah Newren
5b2061b520 post-release version bump to 2.10.1
2005-03-07  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.10.1
2005-03-07 16:12:32 +00:00
Elijah Newren
c16108aba3 2.10.0 release
2005-03-07  Elijah Newren  <newren@gmail.com>

	* configure.in:
	* README:
	* NEWS:
	2.10.0 release
2005-03-07 16:11:28 +00:00
Vincent van Adrighem
de4ab5cede Translation updated by Reinout van Schouwen.
2005-03-07  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Reinout van Schouwen.
2005-03-07 13:14:14 +00:00
Mugurel Tudor
1a9d5ef701 Updated Romanian translation
2005-03-07  Mugurel Tudor  <mugurelu@go.ro>

        * ro.po: Updated Romanian translation
2005-03-06 22:07:39 +00:00
Laszlo Dvornik
4fd7ed876d Hungarian translation updated by Gabor Kelemen.
2005-03-04  Laszlo Dvornik  <dvornik@gnome.hu>

	* hu.po: Hungarian translation updated by Gabor Kelemen.
2005-03-04 15:10:20 +00:00
Alexander Shopov
8c2b7c174c Updated Bulgarian translation by Vladimir Petkov <vpetkov@i-space.org>
2005-03-03  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Vladimir Petkov <vpetkov@i-space.org>
2005-03-03 15:06:41 +00:00
Amanpreet Singh Alam
c56b7d8334 update by amanpreetalam@yahoo.com 2005-03-03 12:09:03 +00:00
Žygimantas Beručka
c897d3f17c Updated Lithuanian translation.
2005-03-03  Žygimantas Beručka  <uid0@akl.lt>

        * lt.po: Updated Lithuanian translation.
2005-03-03 11:41:59 +00:00
Danilo Šegan
f58cf15ac2 Updated Serbian translation. 2005-03-02 22:36:11 +00:00
Kwok-Koon Cheung
e881c2dbda Updated traditional Chinese translation from GNOME HK Team
* zh_TW.po: Updated traditional Chinese translation from GNOME HK Team
2005-03-02 13:58:09 +00:00
Elijah Newren
73b36aa64d post-release version bump to 2.9.55
2005-02-28  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.55
2005-02-28 21:54:29 +00:00
Elijah Newren
3b00d7a6a8 Metacity 2.9.34 unstable release
2005-02-21  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.34 unstable release
2005-02-28 21:53:19 +00:00
Elijah Newren
c7ebe972e6 Patch from Aidan Delaney to make sure that icons in the alt-tab popup are
2005-02-28  Elijah Newren  <newren@gmail.com>

	Patch from Aidan Delaney to make sure that icons in the alt-tab
	popup are dimmed for all hidden windows, not just minimized ones.
	Fixes #168455.

	* src/screen.c: (meta_screen_ensure_tab_popup): make use
	meta_window_showing_on_its_workspace() instead of just checking if
	the window is minimized.
2005-02-28 21:34:48 +00:00
Vincent van Adrighem
fae2f68f24 Translation updated by Reinout van Schouwen.
2005-02-28  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Reinout van Schouwen.
2005-02-28 01:19:22 +00:00
Alessio Frusciante
63d8f5faf6 Updated Italian translation. 2005-02-27 16:22:05 +00:00
Elijah Newren
bea407e309 Prevent the visual bell from changing the focus window. Fixes #123366.
2005-02-25  Elijah Newren  <newren@gmail.com>

	Prevent the visual bell from changing the focus window.  Fixes
	#123366.

	* src/bell.c: (meta_bell_flash_screen): if not in click-to-focus
	mode and mouse_mode is also false, increment the focus sentinel so
	that we can ignore spurious EnterNotify and LeaveNotify events.

	* src.display.c: (event_callback): make sure to also ignore
	LeaveNotify events when the focus sentinel isn't clear
2005-02-25 20:14:08 +00:00
Artur Flinta
6375bee8a2 Updated Polish translation by GNOME PL Team.
2005-02-24  Artur Flinta  <aflinta@cvs.gnome.org>

	* pl.po: Updated Polish translation by GNOME PL Team.
2005-02-24 16:21:39 +00:00
Ankitkumar Rameshchandra Patel
3c1a7cc190 ankit@redhat.com * Updated Gujarati Translation 2005-02-24 12:43:40 +00:00
Elijah Newren
ebae340a1e Fix crash that occurs when stupid apps claim that a window is its own
2005-02-23  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_new_with_attrs): Fix crash that
	occurs when stupid apps claim that a window is its own parent.
	#168207
2005-02-23 17:42:51 +00:00
Amanpreet Singh Alam
8ac94e45b5 update by amanpreetalam@yahoo.com 2005-02-23 09:38:17 +00:00
Vincent van Adrighem
3a0277561a Translation updated by Michiel Sikkes.
2005-02-23  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Michiel Sikkes.
2005-02-23 00:33:52 +00:00
Roozbeh Pournader
15e8482635 Updated Persian translation by Elnaz Sarbar <elnaz@farsiweb.info>.
2004-02-22  Roozbeh Pournader  <roozbeh@farsiweb.info>

	* fa.po: Updated Persian translation by
	  Elnaz Sarbar <elnaz@farsiweb.info>.
2005-02-22 18:26:49 +00:00
Raphael Higino
882432372a Updated pt_BR translation 2005-02-22 16:15:30 +00:00
Elijah Newren
0df4e194d3 post-release version bump to 2.9.34
2005-02-21  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.34
2005-02-22 02:48:45 +00:00
Elijah Newren
6e40e576a4 Metacity 2.9.21 unstable release
2005-02-21  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.21 unstable release
2005-02-22 02:47:08 +00:00
Elijah Newren
612507260a Handle keynav vs. mousenav in mouse and sloppy focus modes. Fixes #167545.
2005-02-21  Elijah Newren  <newren@gmail.com>

	Handle keynav vs. mousenav in mouse and sloppy focus modes.  Fixes
	#167545.

	* doc/how-to-get-focus-right.txt: Update due to this new method
	for handling keynav vs. mousenav, plus various other updates that
	I previously forgot.

	* src/display.h: (struct _MetaDisplay): add a mouse_mode boolean

	* src/display.c: (meta_display_open): initialize mouse_mode to
	true, (event_callback): have EnterNotify and LeaveNotify events
	set mouse_mode to true when focusing a window

	* src/keybindings.c: (process_tab_grab): set mouse_mode to false
	when using alt-tab/alt-esc, (do_choose_window): likewise,
	(do_handle_move_to_workspace): set mouse_mode to false on
	move-window-to-workspace-<n> keybindings

	* src/window.c (idle_calc_showing): if we're in keynav mode while
	using sloppy or mouse focus, use metacity_sentinel to avoid
	EnterNotify events being generated from events other than mouse
	movement.

	* src/workspace.c (meta_workspace_activate_with_focus): add a
	FIXME in a potentially duplicate section of code,
	(meta_workspace_focus_default_window): use the same focus choice
	as click-to-focus if in keynav mode.
2005-02-22 02:11:25 +00:00
Christophe Merlet
ad99427b49 Updated french translation. 2005-02-21 22:58:34 +00:00
Bastien Nocera
480c8bb085 the file is actually in UTF-8
2005-02-21  Bastien Nocera  <hadess@hadess.net>

	* en_GB.po: the file is actually in UTF-8
2005-02-21 22:04:09 +00:00
Leonid Kanter
53a6545b04 fixed typo 2005-02-21 13:35:57 +00:00
Martin Willemoes Hansen
84fe920ff1 Updated Danish translation.
* da.po: Updated Danish translation.
2005-02-21 13:11:11 +00:00
Priit Laes
987514c702 Translation updated by Tõivo Leedjärv.
2005-02-21  Priit Laes  <plaes@cvs.gnome.org>

	* et.po: Translation updated by Tõivo Leedjärv.
2005-02-21 07:10:35 +00:00
Elijah Newren
992f237090 Handle _NET_CURRENT_DESKTOP messages that come with timestamps. Fixes the
2005-02-20  Elijah Newren  <newren@gmail.com>

	* src/display.c: (event_callback): Handle _NET_CURRENT_DESKTOP
	messages that come with timestamps.  Fixes the metacity portion of
	#161361 other than the portion handled by #128380.
2005-02-20 23:38:31 +00:00
Elijah Newren
8de466b582 when receiving a _NET_ACTIVE_WINDOW message, switch to the desktop where
2005-02-20  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_activate): when receiving a
	_NET_ACTIVE_WINDOW message, switch to the desktop where the window
	is located before activating instead of moving the window to the
	current desktop.  Thanks to Lubos Lunak for catching this issue.
	Fixes #128380.
2005-02-20 22:44:15 +00:00
Elijah Newren
79f2b91679 Ignore all focus and focus-stealing-prevention code in meta_window_show
2005-02-20  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_show): Ignore all focus and
	focus-stealing-prevention code in meta_window_show when not
	showing the window for the first time.  Fixes #167199.
2005-02-20 22:40:08 +00:00
Elijah Newren
b93960ac9d Fix an obscure xinerama placement bug with windows that are too large to
2005-02-20  Elijah Newren  <newren@gmail.com>

	Fix an obscure xinerama placement bug with windows that are too
	large to fit in the workarea in both dimensions.  #166757

	* src/place.c: (meta_window_place): use the current xinerama
	instead of arbitrarily resetting to 0
2005-02-20 22:38:05 +00:00
Elijah Newren
1f0fd137f5 Patch from Joe Marcus Clarke to fix a possible crash on logout. #167935.
2005-02-20  Elijah Newren  <newren@gmail.com>

	Patch from Joe Marcus Clarke to fix a possible crash on logout.
	#167935.  Thanks for fixing my mistakes, Joe!

	* src/display.c: (meta_display_open): initialize
	display->grab_old_window_stacking to NULL.
2005-02-20 17:23:20 +00:00
Elijah Newren
50312dd0e8 Big patch to cover about 6 different issues in order to correct rare
2005-02-20  Elijah Newren  <newren@gmail.com>

	Big patch to cover about 6 different issues in order to correct
	rare problems with timestamps (make sure window selected in
	tasklist actually gets focus, sanity check timestamps to avoid
	rogue apps hosing the system, correct the updating of
	net_wm_user_time, correctly handle timestamps of 0 when comparing
	xserver timestamps for those who have had their systems up for
	over 25 days or so, add some debugging information to verbose
	logs, some code cleanups).  Fixes all issues listed in #167358.

	* src/display.h: (struct _MetaDisplay): clarify comment on
	last_focus_time, introduce a new variable--last_user_time,
	(XSERVER_TIME_IS_BEFORE macro): put this functionality into a
	separate macro and then introduce a new macro with this name that
	uses the old one but adds additional special-case checks for
	timestamps that are 0, (comment to
	meta_display_set_input_focus_window): add information about how
	last_user_time should be used in this function

	* src/display.c (santiy_check_timestamps): new function,
	(meta_display_open): intialize display->last_user_time,
	(meta_display_get_current_time_roundtrip): use the timestamp,
	which is known to be good, in order to sanity_check_timestamps,
	(event_callback): use the new meta_window_ste_user_time() function
	in order to correct problems, use the timestamp of KeyPress and
	ButtonPress events, which are known to be good, in order to
	sanity_check_timestamps, (timestamp_too_old): new function for
	common behavior of meta_display_focus_the_no_focus_window and
	meta_display_set_input_focus_window, with added checking for
	display->last_user_time in addition to display->last_focus_time,
	(meta_display_set_input_focus_window): replace some of the code
	with a call to timestamp_too_old(),
	(meta_display_focus_the_no_focus_window): replace some of th ecode
	with a call to timestamp_too_old()

	* src/window.h: (meta_window_set_user_time): new function to
	abstract the many things that need to be done when updating the
	net_wm_user_time of any window

	* src/window.c: (meta_window_activate): add debugging spew, make
	sure the comparison is made with last_user_time NOT
	last_focus_time, use meta_window_set_user_time() function in order
	to correct problems, (meta_window_client_message): add a newline
	to a debugging message to make them easier to read,
	(meta_window_set_user_time): new function

	* src/window-props.c (reload_net_wm_user_time): use the new
	meta_window_ste_user_time() function in order to correct problems
2005-02-20 17:14:16 +00:00
Changwoo Ryu
11508ce27e Updated Korean translation.
2005-02-18  Changwoo Ryu  <cwryu@debian.org>

	* ko.po: Updated Korean translation.
2005-02-18 13:24:11 +00:00
Duarte Loreto
0b3e902319 Updated Portuguese translation.
2005-02-18  Duarte Loreto <happyguy_pt@hotmail.com>

	* pt.po: Updated Portuguese translation.
2005-02-18 00:40:00 +00:00
Vincent van Adrighem
5e1b0c8764 Translation updated by Tino Meinen.
2005-02-17  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Tino Meinen.
2005-02-17 13:29:47 +00:00
Laurent Dhima
7d2f2fe632 Updated Albanian translation.
2005-02-17  Laurent Dhima  <laurenti@alblinux.net>

	* sq.po: Updated Albanian translation.
2005-02-17 10:00:48 +00:00
Elijah Newren
754a75546d trivial fix to a log message: change %d to %lu (see debugging log from bug
2005-02-16  Elijah Newren  <newren@gmail.com>

	* src/display.c: (event_callback): trivial fix to a log message:
	change %d to %lu (see debugging log from bug 167358).
2005-02-16 09:36:24 +00:00
Jordi Mallach
d1e630235d Updated Catalan translation. 2005-02-16 09:24:41 +00:00
Maxim Dziumanenko
37becd9a79 Update Ukrainian translation.
2005-02-15  Maxim Dziumanenko <mvd@mylinux.com.ua>

	* Update Ukrainian translation.
2005-02-15 19:21:52 +00:00
Kjartan Maraas
626c5fcf54 s/applikasjon/program Same
2005-02-15  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: s/applikasjon/program
	* no.po: Same
2005-02-15 16:42:33 +00:00
Marcel Telka
3fb2eb0856 Updated Slovak translation.
2005-02-12  Marcel Telka  <marcel@telka.sk>

	* sk.po: Updated Slovak translation.
2005-02-12 16:14:30 +00:00
Takeshi AIHANA
c729adfc5e Updated Japanese translation for v2.9.13.
2005-02-12  Takeshi AIHANA <aihana@gnome.gr.jp>
	* ja.po: Updated Japanese translation for v2.9.13.
2005-02-12 14:05:43 +00:00
Elijah Newren
0488efc8c1 Raise the ancestor of a window instead of the window itself. Fixes
2005-02-12  Elijah Newren  <newren@gmail.com>

	Raise the ancestor of a window instead of the window itself.
	Fixes #166894.

	* src/window.c: (find_root_ancestor): new function,
	(meta_window_raise): get the ancestor of the given window and
	raise it if possible instead of the window
2005-02-12 07:34:30 +00:00
Elijah Newren
9fa5c1d4b9 Don't unconditionally place splashscreens (and other not-to-befocused
2005-02-12  Elijah Newren  <newren@gmail.com>

	Don't unconditionally place splashscreens (and other
	not-to-befocused windows) below the focus window.  Fixes #167042.

	* src/window.c: (intervening_user_event_occurred): new function
	taken from the timestamp comparison portion of the old
	window_takes_focus_on_map function, (window_state_on_map): new
	function with remainder of old window_takes_focus_on_map function
	that determines both whether the window will take focus and
	whether it should be placed on top, (meta_window_show): use
	place_on_top_on_map to determine window stacking instead of trying
	to infer it from takes_focus_on_map
2005-02-12 07:19:41 +00:00
Elijah Newren
d31a0829be Avoid new windows being obscured by the focus window (and thus possibly
2005-02-11  Elijah Newren  <newren@gmail.com>

	Avoid new windows being obscured by the focus window (and thus
	possibly lost).  Fixes #166524.

	* src/place.c: new MetaWindowDirection enum,
	(find_most_freespace): new function to find where there is the
	most space available around the focused window,
	(meta_window_place): if a window is denied focus and the window
	overlaps the focused window, retry the first-fit algorithm only
	paying attention to the focus window position and if that fails
	just find the location on the screen with the most space
	available.

	* src/window.h: (struct MetaWindow): new
	denied_focus_and_not_transient bitfield

	* src/window.c: (meta_window_new_with_attrs): initialize
	denied_focus_and_not_transient, (meta_window_show): set and unset
	the denied_focus_and_not_transient field appropriately
2005-02-11 19:20:44 +00:00
Kostas Papadimas
f8c41ca016 Updated Greek Translation. 2005-02-11 10:49:47 +00:00
Francisco Javier F. Serrador
450cee78b5 Updated Spanish translation.
2005-02-10  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2005-02-10 11:43:28 +00:00
Aidan Delaney
f7aad0d647 Removed useless function call. #166730
2005-02-08  Aidan Delaney  <adelaney@cs.may.ie>

	Removed useless function call.  #166730

	* src/tabpopup.c: (outline_window_expose): Removed unused
	references to variables and an unnecessary function call to
	gdk_window_get_size().
2005-02-09 16:07:56 +00:00
Elijah Newren
fe1416c65f Avoid using CurrentTime when focusing, handle it better in case we miss
2005-02-08  Elijah Newren  <newren@gmail.com>

	Avoid using CurrentTime when focusing, handle it better in case we
	miss any cases.  Fixes #166732.

	* src/window.c: (meta_window_shade): use
	meta_display_get_current_time_roundtrip() to ensure we have a
	valid timestamp, (meta_window_unshade): same

	* src/display.c: (meta_display_set_input_focus_window): If
	CurrentTime was passed, get one from the XServer in addition to
	throwing a warning, (meta_display_focus_the_no_focus_window): same
2005-02-09 03:18:46 +00:00
Elijah Newren
454e595ef8 If we're not passed a timestamp, make sure to manually get one. Fixes
2005-02-08  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_activate): If we're not passed a
	timestamp, make sure to manually get one.  Fixes #166728.
2005-02-09 03:15:11 +00:00
Leonid Kanter
50596a6f97 Updated Russian translation 2005-02-08 15:06:49 +00:00
Kjartan Maraas
4726d89661 Update Update
2005-02-08  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Update
	* no.po: Update
2005-02-08 12:48:56 +00:00
Elijah Newren
ffceb7819f post-release version bump to 2.9.21
2005-02-07  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.21
2005-02-07 18:07:54 +00:00
Elijah Newren
249c105d01 Metacity 2.9.13 unstable release
2005-02-07  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.13 unstable release
2005-02-07 18:06:29 +00:00
David Lodge
a7116f94a6 Updated British translation.
2005-02-07  David Lodge <dave@cirt.net>

        * en_GB.po: Updated British translation.
2005-02-07 12:38:45 +00:00
Elijah Newren
0aa903f0d4 Set a _METACITY_VERSION property (a utf8 string) on the WM check window.
2005-02-06  Elijah Newren  <newren@gmail.com>

	Set a _METACITY_VERSION property (a utf8 string) on the WM check
	window.  #165350.

	* src/display.h: (struct MetaDisplay): add a atom_metacity_version
	field

	* src/display.c: (meta_display_open): initialize the
	_METACITY_VERSION property on the WM check window to the current
	version of Metacity.
2005-02-07 04:37:35 +00:00
Adam Weinberger
a0b192aa5e Updated Canadian English translation.
* en_CA.po: Updated Canadian English translation.
2005-02-06 23:27:09 +00:00
Elijah Newren
459c6668fb Ignore xconfigurerequest events for stacking when it should be safe to do
2005-02-06  Elijah Newren  <newren@gmail.com>

	Ignore xconfigurerequest events for stacking when it should be
	safe to do so.  Again, thanks to Crispin Flowerday for the test
	case.  Thanks to KWin for the inspiration (and to Google for
	indexing their source code).  Fixes the other half of #166395.

	* src/window.c: (meta_window_configure_request): if the
	active_window is from a separate application than the one getting
	the configure request and the net_wm_user_time of the active
	window is later than that of the window getting the configure
	request, then ignore the request.
2005-02-06 17:01:41 +00:00
Elijah Newren
d11681e505 If activation requests are too old, set the demands_attention hint instead
2005-02-06  Elijah Newren  <newren@gmail.com>

	If activation requests are too old, set the demands_attention hint
	instead of actually activating.  Thanks to Crispin Flowerday for
	the test case and for testing the patch.  Fixes half of #166395.

	* src/window.c: (meta_window_activate): if the request came before
	the last focus time, set the demands attention hint instead
2005-02-06 16:52:26 +00:00
Miloslav Trmac
114c7c0be5 Updated Czech translation.
2005-02-06  Miloslav Trmac  <mitr@volny.cz>

	* cs.po: Updated Czech translation.
2005-02-06 16:31:22 +00:00
Funda Wang
10c6e1de17 Updated Simplified Chinese translation 2005-02-06 16:15:29 +00:00
Alexander Shopov
0bde8fe275 Updated Bulgarian translation by Vladimir Petkov <vpetkov@i-space.org>
2005-02-06  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Vladimir Petkov <vpetkov@i-space.org>
2005-02-06 09:30:25 +00:00
Pauli Virtanen
2b2b70e80e Updated Finnish translation.
2005-02-06  Pauli Virtanen <pauli.virtanen@hut.fi>

	 * fi.po: Updated Finnish translation.
2005-02-06 01:15:51 +00:00
Frank Arnold
6679c6cd9c Updated German translation.
2005-02-05  Frank Arnold  <farnold@cvs.gnome.org>

	* de.po: Updated German translation.
2005-02-05 19:55:52 +00:00
Francisco Javier F. Serrador
7aab9f97d9 Updated Spanish translation.
2005-02-05  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2005-02-05 15:29:29 +00:00
Žygimantas Beručka
9057b7112e Updated Lithuanian translation.
2005-02-05  Žygimantas Beručka  <uid0@akl.lt>

        * lt.po: Updated Lithuanian translation.
2005-02-05 10:49:48 +00:00
Dave Ahlswede
959a997eba Add period to the end of reduced_resources' description. Fixes #165780.
2005-02-04  Dave Ahlswede  <mightyquinn@letterboxes.org>

	* src/metacity.schemas.in: Add period to the end of
	reduced_resources' description.  Fixes #165780.
2005-02-05 03:57:41 +00:00
Elijah Newren
84312194e8 Make sure window->border_only is initialized so we don't get random
2005-02-04  Elijah Newren  <newren@gmail.com>

	Make sure window->border_only is initialized so we don't get
	random windows without decorations.  Thanks to Sinisa Segvic and
	Owen Taylor for providing test cases.  Fixes #145131.

	* src/window.c: (update_mwm_hints): Be sure to call
	recalc_window_features even if no MWM hints are set
2005-02-05 03:02:42 +00:00
Francisco Javier F. Serrador
58b323e4cc Updated Spanish translation.
2005-02-04  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2005-02-04 21:01:51 +00:00
Changwoo Ryu
c39fb62e1d Updated Korean translation.
2005-02-04  Changwoo Ryu  <cwryu@debian.org>

	* ko.po: Updated Korean translation.
2005-02-03 22:07:29 +00:00
Miloslav Trmac
e25ed00bfb Updated Czech translation.
2005-02-02  Miloslav Trmac  <mitr@volny.cz>

	* cs.po: Updated Czech translation.
2005-02-02 20:37:27 +00:00
Elijah Newren
de5588c10e Focus parents of dismissed transient windows in preference to the window
2005-02-02  Elijah Newren  <newren@gmail.com>

	Focus parents of dismissed transient windows in preference to the
	window that most recently had keyboard focus.  Fixes #157360.

	* doc/how-to-get-focus-right.txt: Note the distinction between
	"most recently used window" and "most recent to have keyboard
	focus" that we are now making.

	* src/workspace.c: (focus_ancestor_or_mru_window): rename from
	meta_workspace_focus_mru_window, and first check whether we need
	to focus an ancestor window before looking for the mru window,
	(record_ancestor): helper function for
	focus_ancestor_or_mru_window,
	(meta_workspace_focus_default_window): update due to the function
	rename from meta_workspace_focus_mru_window to
	focus_ancestor_or_mru_window
2005-02-02 18:46:09 +00:00
Frank Arnold
03adcdac31 Updated German translation.
2005-02-02  Frank Arnold  <farnold@cvs.gnome.org>

	* de.po: Updated German translation.
2005-02-02 08:56:20 +00:00
Søren Sandmann Pedersen
36b0b6d4d5 file snow.c was initially added on branch spiffifity. 2005-02-01 21:26:19 +00:00
Søren Sandmann Pedersen
bb1783b999 file snow.h was initially added on branch spiffifity. 2005-02-01 21:26:19 +00:00
Kjartan Maraas
05928106c5 Update Update
2005-02-01  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Update
	* no.po: Update
2005-02-01 12:24:19 +00:00
Funda Wang
3489defbe8 Updated Simplified Chinese translation 2005-02-01 10:48:36 +00:00
Adam Weinberger
490fe640ab Updated Canadian English translation.
* en_CA.po: Updated Canadian English translation.
2005-02-01 07:40:38 +00:00
Žygimantas Beručka
017aa0dfd5 Updated Lithuanian translation.
2005-02-01  Žygimantas Beručka  <uid0@akl.lt>

        * lt.po: Updated Lithuanian translation.
2005-01-31 23:26:28 +00:00
Christian Rose
7961c987a7 Updated Swedish translation.
2005-01-31  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2005-01-31 22:19:14 +00:00
Elijah Newren
77854b808a Some dufus forgot to save the ChangeLog before committing... :-/ 2005-01-31 20:43:23 +00:00
Elijah Newren
e2eb979ecd Try 2 to correct misleading and inaccurate wording. Hopefully, really
2005-01-31  Elijah Newren  <newren@gmail.com>

	Try 2 to correct misleading and inaccurate wording.  Hopefully,
	really fixes #165380.

	* src/menu.c: Change wording of menu from "Always on Current
	Workspace" to "Always on Visible Workspace".  "Always on Current
	Workspace" could sound like a synonym of "Only on This Workspace"
	when it was supposed to be the opposite.
2005-01-31 20:41:33 +00:00
Elijah Newren
51bbd0e1a8 Correct the stacking when return from fullscreen mode. Fixes #165718.
2005-01-31  Elijah Newren  <newren@gmail.com>

	Correct the stacking when return from fullscreen mode.  Fixes
	#165718.

	* src/window.c: (meta_window_unmake_fullscreen): Update the layer
	after resizing the window
2005-01-31 16:49:23 +00:00
Miloslav Trmac
595c86f427 Updated Czech translation.
2005-01-31  Miloslav Trmac  <mitr@volny.cz>

	* cs.po: Updated Czech translation.
2005-01-31 10:00:59 +00:00
Muktha
a7c2bacd64 src/themes/Atlanta/metacity-theme-1.xml:
2005-01-31  Muktha  <muktha.narayan@wipro.com>

        src/themes/Atlanta/metacity-theme-1.xml:
        src/themes/Simple/metacity-theme-1.xml:
        src/themes/Bright/metacity-theme-1.xml:
        Make the unfocussed title bar distinguishable. Fixes #125291.
2005-01-31 09:54:34 +00:00
Christian Rose
dab5dc2c70 Updated Swedish translation.
2005-01-31  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2005-01-31 09:16:38 +00:00
Žygimantas Beručka
5d8da70f33 Updated Lithuanian translation.
2005-01-30  Žygimantas Beručka  <uid0@akl.lt>

        * lt.po: Updated Lithuanian translation.
2005-01-30 01:22:31 +00:00
Francisco Javier F. Serrador
2f0f36eea0 Updated Spanish translation.
2005-01-29  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2005-01-29 17:36:06 +00:00
Miloslav Trmac
4e3243b122 Updated Czech translation.
2005-01-29  Miloslav Trmac  <mitr@volny.cz>

	* cs.po: Updated Czech translation.
2005-01-29 14:47:28 +00:00
Marcel Telka
a1caa2ae9e Updated Slovak translation.
2005-01-29  Marcel Telka  <marcel@telka.sk>

	* sk.po: Updated Slovak translation.
2005-01-29 14:43:29 +00:00
Funda Wang
194eee175d Updated Simplified Chinese translation 2005-01-29 08:36:17 +00:00
Adam Weinberger
2aae99381f Updated Canadian English translation.
* en_CA.po: Updated Canadian English translation.
2005-01-29 05:08:11 +00:00
Elijah Newren
aa2da7d82e Patch from RHEL-3 (Havoc doesn't remember how it got there) that Havoc
2005-01-28  Elijah Newren  <newren@gmail.com>

	Patch from RHEL-3 (Havoc doesn't remember how it got there) that
	Havoc posted in bug 156511 to fix the problem with fullscreen
	windows on a different xinerama monitor not staying on top.  I
	updated to HEAD.  Should fix #156511.

	* src/stack.c: (windows_on_different_xinerama): new function,
	(get_standalone_layer): let windows on a different screen than the
	one with the focus window stay in the fullscreen layer
2005-01-28 18:42:14 +00:00
Elijah Newren
9221a550db make this dialog be sticky. Fixes #164745.
2005-01-28  Elijah Newren  <newren@gmail.com>

	* src/metacity-dialog.c: (warn_about_no_sm_support): make this
	dialog be sticky.  Fixes #164745.
2005-01-28 16:49:36 +00:00
Elijah Newren
c66adff00d Patch from Tim Herold to handle xcomposite pkgconfig version regression.
2005-01-28  Elijah Newren  <newren@gmail.com>

	Patch from Tim Herold to handle xcomposite pkgconfig version
	regression.  Fixes #149368.

	* configure.in: Change XCOMPOSITE_VERSION from 1.0 to 0.2
2005-01-28 16:45:48 +00:00
Elijah Newren
7d0ef20a9c Change wording of menu to "Always on Current Workspace" from "Put on All
2005-01-28  Elijah Newren  <newren@gmail.com>

	* src/menu.c: Change wording of menu to "Always on Current
	Workspace" from "Put on All Workspaces", remove a quick-key
	conflict between "On _Top" and "Only on _This Workspace" by
	switching the latter to "_Only on This Workspace"

	* src/window.c: Remove a comment that is no longer necessary
	(since bug 87531 has been fixed)
2005-01-28 16:36:14 +00:00
Kjartan Maraas
cabf4fc359 Update Update
2005-01-28  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Update
	* no.po: Update
2005-01-28 16:03:44 +00:00
Elijah Newren
5389f135ce Take into account the appropriate list of windows when placing a new one.
2005-01-28  Elijah Newren  <newren@gmail.com>

	Take into account the appropriate list of windows when placing a
	new one.  Fixes #165381.

	* src/place.c: (meta_window_place): use
	meta_window_showing_on_its_workspace(w) instead of !w->minimzed,
	also take into account sticky windows

	* src/window.[ch]: rename window_showing_on_its_workspace to
	meta_window_showing_on_its_workspace and export it
2005-01-28 14:48:47 +00:00
Elijah Newren
1e580d1e52 Plug a pair of leaks. Fixes #165378
2005-01-27  Elijah Newren  <newren@gmail.com>

	Plug a pair of leaks.  Fixes #165378

	* src/place.c: (meta_window_place, get_windows_on_same_workspace):
	free list returned by meta_display_list_windows.
2005-01-27 18:30:27 +00:00
Elijah Newren
d93d26aaeb Treat splashscreens same as other windows for stacking. Fixes #165243.
2005-01-27  Elijah Newren  <newren@gmail.com>

	Treat splashscreens same as other windows for stacking.  Fixes
	#165243.

	* src/stack.h: (MetaStackLayer enum): remove META_LAYER_SPLASH
	from the list

	* src/stack.c: (get_standalone_layer): remove the special casing
	of META_WINDOW_SPLASHSCREEN
2005-01-27 18:28:06 +00:00
Elijah Newren
0a95c706bf shaded windows should not show up in pagers. Fixes #165377.
2005-01-27  Elijah Newren  <newren@gmail.com>

	* src/window.c: (set_net_wm_state): shaded windows should not show
	up in pagers.  Fixes #165377.
2005-01-27 18:23:51 +00:00
Adam Weinberger
b0d15aa44f Updated Canadian English translation.
* en_CA.po: Updated Canadian English translation.
2005-01-27 03:25:26 +00:00
Elijah Newren
5fe06b5fff Stick and unstick transients with their parent automatically. Fixes
2005-01-26  Elijah Newren  <newren@gmail.com>

	Stick and unstick transients with their parent automatically.
	Fixes #152283.

	* src/window.c: (window_stick_impl, window_unstick_impl): rename
	from meta_window_stick and meta_window_unstick respectively,
	(stick_foreach_func): a function to assist calling
	window_(un)stick_impl on each transient, (meta_window_stick,
	meta_window_unstick): new functions that call window_stick_impl or
	window_unstick_impl for the window and each of its transients.
2005-01-26 23:25:05 +00:00
Francisco Javier F. Serrador
fa5bc6ff51 Updated Spanish translation.
2005-01-26  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2005-01-26 21:58:35 +00:00
Elijah Newren
893309b372 Patch from John Paul Wallington to keep tooltip on screen horizontally for
2005-01-26  Elijah Newren  <newren@gmail.com>

	Patch from John Paul Wallington to keep tooltip on screen
	horizontally for xinerama.  Fixes #165261.

	* src/fixedtip.c: (meta_fixed_tip_show): rename screen_width and
	screen_height to screen_right_edge and screen_bottom_edge, set
	them using xinerama info instead of just screen geometry, and use
	them to determine where to place the tooltip window.
2005-01-26 20:56:15 +00:00
Arvind Samptur
cf102c12f4 Don't wireframe when accessibility is on, it apparently causes a desktop
2005-01-26  Arvind Samptur  <arvind.samptur@wipro.com>

        Don't wireframe when accessibility is on, it apparently
        causes a desktop wide freeze.

        * src/prefs.[ch] (meta_prefs_init) (change_notify)
        (update_gnome_accessibility) (meta_preference_to_string)
        (meta_prefs_get_gnome_accessibility) : Add code to monitor
        accessibility status.

        * src/display.c (meta_display_begin_grab_op): Check
        accessibility status before going ahead with wireframe.
        Fixes #159538
2005-01-26 08:43:38 +00:00
Elijah Newren
ebaa77c312 ignore sticky windows for non-active workspaces. Fixes #165259.
2005-01-25  Elijah Newren  <newren@gmail.com>

	* src/tabpopup.c: (meta_select_workspace_expose_event): ignore
	sticky windows for non-active workspaces.  Fixes #165259.
2005-01-26 02:51:31 +00:00
Elijah Newren
bb03725397 set the window state hints _after_ applying session information. Fixes
2005-01-25  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_new_with_attrs): set the window state
	hints _after_ applying session information.  Fixes #164677.
2005-01-26 02:47:49 +00:00
Duarte Loreto
49479d9b67 Updated Portuguese translation.
2005-01-26  Duarte Loreto <happyguy_pt@hotmail.com>

	* pt.po: Updated Portuguese translation.
2005-01-26 01:02:23 +00:00
Elijah Newren
ea4d4b7b3e Add man pages for metacity-window-demo and metacity-theme-viewer. Man
2005-01-25  Elijah Newren  <newren@gmail.com>

	Add man pages for metacity-window-demo and metacity-theme-viewer.
	Man pages from Jose Moya, auto-fu from Dave Ahlswede. (#143513)

	* doc/man/metacity-theme-viewer.1:
	* doc/man/metacity-window-demo.1:

	New man pages

	* doc/man/Makefile.am:
	* doc/Makefile.am:
	* configure.in:

	Make sure to install the man pages

	* doc/man/.cvsignore:

	Silence cvs
2005-01-25 23:28:55 +00:00
Benjamin Kahn
f388d1111f New 48x48 default icon as specified in bug #160660 2005-01-25 18:47:57 +00:00
Elijah Newren
f5984f4365 Patch from Stephane LOEUILLET in bug #151850.
2005-01-25  Elijah Newren  <newren@math.utah.edu>

	Patch from Stephane LOEUILLET in bug #151850.

	* src/metacity.desktop.in: specify encoding
2005-01-25 18:27:43 +00:00
Balamurali Viswanathan
a8347dfd2f Get gconf to load the terminal dir so that we get the notifications when
2005-01-25  Balamurali Viswanathan <balamurali.viswanathan@wipro.com>

 	* src/prefs.c (meta_prefs_init): Get gconf to load the
 	terminal dir so that we get the notifications when
 	the command is changed. Fixes bug #160934
2005-01-25 18:02:39 +00:00
Elijah Newren
f31c57a049 Refuse to focus a window with a modal transient, and focus the transient
2005-01-25  Elijah Newren  <newren@gmail.com>

	Refuse to focus a window with a modal transient, and focus the
	transient instead.  Fixes #164716.

	* src/window.c: (get_modal_transient): new function,
	(meta_window_focus): if the window has a modal transient, make
	sure it is on the current workspace and then focus it instead.
2005-01-25 17:26:06 +00:00
Theppitak Karoonboonyanan
3afcb9c963 Updated Thai translation.
2005-01-25  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.
2005-01-25 13:42:35 +00:00
Elijah Newren
640d793ce4 post-release version bump to 2.9.13
2005-01-24  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.13
2005-01-24 18:10:54 +00:00
Elijah Newren
b5529bc5e8 Metacity 2.9.8 unstable release
2005-01-24  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.8 unstable release
2005-01-24 18:09:46 +00:00
Elijah Newren
2dcaa941b4 don't forget to initialize display->grab_old_window_stacking. Thanks to
2005-01-24  Elijah Newren  <newren@gmail.com>

	* src/display.c: (meta_display_begin_grab_op): don't forget to
	initialize display->grab_old_window_stacking.  Thanks to Sebastien
	Bacher and the bleeding edge Ubuntu users for catching the
	occasional crash this could cause so quickly, and for verifying
	that the patch worked (I couldn't duplicate).  Fixes #165093.
2005-01-24 17:39:26 +00:00
Elijah Newren
145d134095 post-release version bump to 2.9.8
2005-01-23  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.8
2005-01-24 06:55:48 +00:00
Elijah Newren
1a5d738e68 Metacity 2.9.5 unstable release there are more stable releases beyond
2005-01-23  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.5 unstable release
	* README: there are more stable releases beyond 2.8.6...
2005-01-24 06:44:16 +00:00
Elijah Newren
2d0d5e8cac Restore original stacking when aborting an alt-esc window switch
2005-01-23  Elijah Newren  <newren@gmail.com>

	Restore original stacking when aborting an alt-esc window switch
	operation.  Fixes #123576.

	* src/display.c: (GRAB_OP_IS_WINDOW_SWITCH): new macro,
	(meta_display_close): clear grab_old_window_stacking if non-NULL,
	(event_callback): restore stack positions if alt-esc op cancelled
	with button press, (meta_display_begin_grab_op): store the old
	stacking positions, (meta_display_end_grab_op): free the old stack
	positions

	* src/display.h: (struct _MetaDisplay): add a
	grab_old_window_stacking list

	* src/keybindings.c: (process_tab_grab): restore stack positions
	if alt-esc op cancelled with an errant key press

	* src/stack.c: (compare_just_window_stack_position): new
	GCompareFunc function, (meta_stack_get_positions): get current
	stack positions, (compare_pointers): new GCompareFunc function,
	(lists_contain_same_windows): simple utility func to see if two
	lists contains the same windows, (meta_stack_set_positions): new
	function to set the positions of all the windows in the stack

	* src/stack.h: (meta_stack_get_postions,
	meta_stack_set_positions): new functions
2005-01-24 05:58:30 +00:00
Elijah Newren
814cc4b698 Patch from John Paul Wallington to fix #163420.
2005-01-23  Elijah Newren  <newren@gmail.com>

	Patch from John Paul Wallington to fix #163420.

	* src/window.c: (check_maximize_to_work_area): fix vertical
	maximization for second screen
2005-01-24 04:21:14 +00:00
Funda Wang
6630963a1d Updated Simplified Chinese translation 2005-01-23 16:06:54 +00:00
Elijah Newren
667796d53b Add a tracker bug for modal dialog issues
2005-01-21  Elijah Newren  <newren@gmail.com>

	* rationales.txt: Add a tracker bug for modal dialog issues
2005-01-21 18:08:19 +00:00
Kjartan Maraas
686ce45a7b Update this too while we're at it.
2005-01-21  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Update this too while we're at it.
2005-01-21 12:54:55 +00:00
Kjartan Maraas
11dc788fbe Update
2005-01-21  Kjartan Maraas  <kmaraas@gnome.org>

	* nn.po: Update
2005-01-21 12:41:24 +00:00
Elijah Newren
a1cdbf6d03 use pixbuf, not dimmed_pixbuf (which isn't defined yet). Fixes crash from
2005-01-20  Elijah Newren  <newren@gmail.com>

	* src/tabpopup.c (dimm_icon): use pixbuf, not dimmed_pixbuf (which
	isn't defined yet).  Fixes crash from #136666.
2005-01-21 01:58:10 +00:00
Vincent Noel
46ededed08 Show labels in bold for windows that demand attention. Fixes #164590.
2005-01-20  Vincent Noel  <vnoel@cox.net>

	* src/screen.c: (meta_screen_ensure_tab_popup),
	(meta_screen_ensure_workspace_popup):
	* src/tabpopup.c: (meta_ui_tab_popup_new), (display_entry):
	* src/tabpopup.h: Show labels in bold for windows that demand
	attention. Fixes #164590.
2005-01-20 16:41:29 +00:00
Vincent Noel
47221dcce2 In the tab task switcher popup, dim the window icon and put its name
2005-01-18  Vincent Noel  <vnoel@cox.net>

	* src/screen.c: (meta_screen_ensure_tab_popup),
	(meta_screen_ensure_workspace_popup):
	* src/tabpopup.c: (dimm_icon), (meta_ui_tab_popup_new),
	(free_entry):
	* src/tabpopup.h: In the tab task switcher popup, dim the window
	icon and put its name between brackets when the window is
	minimized. Fixes #136666.
2005-01-18 16:48:53 +00:00
Frank Arnold
48a6dd603a Updated German translation.
2005-01-15  Frank Arnold  <farnold@cvs.gnome.org>

	* de.po: Updated German translation.
2005-01-15 22:11:17 +00:00
Søren Sandmann Pedersen
89dd94bf1e file cwindow.c was initially added on branch spiffifity. 2005-01-13 23:51:00 +00:00
Søren Sandmann Pedersen
b8c8000b44 file cwindow.h was initially added on branch spiffifity. 2005-01-13 23:51:00 +00:00
Søren Sandmann Pedersen
00f7c002ba file matrix.c was initially added on branch spiffifity. 2005-01-13 23:51:00 +00:00
Søren Sandmann Pedersen
7dce1a4b6f file matrix.h was initially added on branch spiffifity. 2005-01-13 23:51:00 +00:00
Elijah Newren
2e465de233 Correct highlighting of windows in workspace switcher popup. Fixes
2005-01-11  Elijah Newren  <newren@gmail.com>

	Correct highlighting of windows in workspace switcher popup.
	Fixes #163450.

	* src/tabpopup.c (meta_select_workspace_expose_event): Remove race
	between FocusIn/FocusOut events and the expose event by replacing
	window->has_focus with
	window==window->display->expected_focus_window.
2005-01-11 19:54:14 +00:00
Elijah Newren
1830a35000 post-release version bump to 2.9.5
2005-01-09  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.5
2005-01-10 05:10:33 +00:00
141 changed files with 70743 additions and 44659 deletions

View File

@@ -15,6 +15,7 @@ ltconfig
ltmain.sh
stamp-h
stamp-h.in
stamp-h1
stamp.h
version.h
config.h.in

1334
ChangeLog

File diff suppressed because it is too large Load Diff

23
HACKING
View File

@@ -69,16 +69,22 @@ Relevant standards and X properties
xprop
in a terminal and click on one of the windows on your screen. That gives
you the x properties for that window. Look through them and get a basic
idea of what's there for kicks. Next, try running
idea of what's there for kicks. Note that you can get rid of some of the
verboseness by grepping out the _NET_WM_ICON stuff, i.e.
xprop | grep -v _NET_WM_ICON
Next, try running
xprop -root
in a terminal. There's all the properties of the root window (which you
can think of as the "main" window). You can also manually specify
individual windows that you want the properties of with
can think of as the "main" Xserver window). You can also manually
specify individual windows that you want the properties of with
xprop -id <id>
if you know the id of the window in question (you can get this from the
_NET_CLIENT_STACKING property of the root window). Finally, it can also
be useful to add "-spy" (without the quotes) to the xprop command to get
it to continually monitor that window and report any changes to you.
if you know the id of the window in question. You can get the id of a
given window by either running xwininfo, e.g.
xwininfo | grep "Window id" | cut -f 4 -d ' '
or by looking at the _NET_CLIENT_STACKING property of the root
window. Finally, it can also be useful to add "-spy" (without the
quotes) to the xprop command to get it to continually monitor that
window and report any changes to you.
Debugging information
Trying to run a window manager under a typical debugger, such as gdb,
@@ -101,6 +107,9 @@ Debugging information
useful to get more information than just warnings. You can set
METACITY_VERBOSE to do that, like so:
METACITY_VERBOSE=1 METACITY_USE_LOGFILE=1 metacity --replace
(note that METACITY_VERBOSE=1 can be problematic without
METACITY_USE_LOGFILE=1; avoid it unless running in from something that
won't be managed by the new Metacity--see bug 305091 for more details).
There are also other flags, such as METACITY_DEBUG, most of which I
haven't tried and don't know what they do. Go to the source code
directory and run

505
NEWS
View File

@@ -1,3 +1,508 @@
2.13.2
==
This release just contains a merge of all the changes on the
constraints_experiments branch.
Thanks to Havoc Pennington for reviewing the gargantuan patch and
suggesting lots of little fixes for making it better, to Rob Adams and
Soeren Sandmann for grilling me on how some of the difficult internals work
-- allowing me to improve the documentation, to Olav Vitters for finding an
easy-to-fix crasher bug in early testing and for repeatedly extending my
deadline for switching from working on Metacity to Bugzilla, to Ray Strode
for finding two crashers and fixing one of them in early testing, to Bryan
Clark for usability advice, to Davyd Madeley and Christian Kellner for
testing Xinerama stuff, to Sebastien Bacher for packaging an early version
and finding some obscure bugs (that I unfortunately still can't duplicate
and will probably still need to fix once I can),
Bugs fixed:
unfiled - constraints.c is overly complicated[1]
unfiled - constraints.c is not robust when all constraints cannot
simultaneously be met (constraints need to be prioritized)
unfiled - keep-titlebar-onscreen constraint is decoration unaware (since
get_outermost_onscreen_positions() forgets to include
decorations)
unfiled - keyboard snap-moving and snap-resizing snap to hidden edges
109553 - gravity w/ simultaneous move & resize doesn't work
113601 - maximize vertical and horizontal should toggle and be
constrained
122196 - windows show up under vertical panels
122670 - jerky/random resizing of window via keyboard[2]
124582 - keyboard and mouse snap-resizing and snap-moving erroneously
moves the window multidimensionally
136307 - don't allow apps to resize themselves off the screen (*cough*
filechooser *cough*)
142016, 143784 - windows should not span multiple xineramas unless
placed there by the user
143145 - clamp new windows to screensize and force them onscreen, if
they'll fit
144126 - Handle pathological strut lists sanely[3]
149867 - fixed aspect ratio windows are difficult to resize[4]
152898 - make screen edges consistent; allow easy slamming of windows
into the left, right, and bottom edges of the screen too.
154706 - bouncing weirdness at screen edge with keyboard moving or
resizing
156699 - avoid struts when placing windows, if possible (nasty a11y
blocker)
302456 - dragging offscreen too restrictive
304857 - wireframe moving off the top of the screen is misleading
308521 - make uni-directional resizing easier with alt-middle-drag and
prevent the occasional super annoying resize-the-wrong-side(s)
behavior
312007 - snap-resize moves windows with a minimum size constraint
312104 - resizing the top of a window can cause the bottom to grow
319351 - don't instantly snap on mouse-move-snapping, remove
braindeadedness of having order of releasing shift and
releasing button press matter so much
[1] fixed in my opinion, anyway.
[2] Actually, it's not totally fixed--it's just annoying
instead of almost completely unusable. Matthias had a
suggestion that may fix the remainder of the problems (see
http://tinyurl.com/bwzuu).
[3] This bug was originally about not-quite-so-pathological
cases but was left open for the worse cases. The code from
the branch handles the remainder of the cases mentioned in
this bug.
[4] Actually, although it's far better there's still some minor
issues left: a slight drift that's only noticeable after
lots of resizing, and potential problems with partially
onscreen constraints due to not clearing any
fixed_directions flags (aspect ratio windows get resized in
both directions and thus aren't fixed in one of them)
New feature:
81704 - edge resistance for user move and resize operations; in
particular 3 different kinds of resistance are implemented:
Pixel-Distance: window movement is resisted when it aligns with an
edge unless the movement is greater than a threshold number of
pixels
Timeout: window movement past an edge is prevented until a certain
amount of time has elapsed during the operation since the first
request to move it past that edge
Keyboard-Buildup: when moving or resizing with the keyboard, once a
window is aligned with a certain edge it cannot move past until the
correct direction has been pressed enough times (e.g. 2 or 3 times)
Major code changes:
- constraints.c has been rewritten; very few lines of code from the old
version remain. There is a comment near the top of the function
explaining the basics of how the new framework works. A more detailed
explanation can be found in doc/how-constraints-works.txt
- edge-resistance.[ch] are new files implementing edge-resistance.
- boxes.[ch] are new files containing low-level error-prone functions
used heavily in constraints.c and edge-resistance.c, among various
places throughout the code. testboxes.c contains a thorough testsuite
for the boxes.[ch] functions compiled into a program, testboxes.
- meta_window_move_resize_internal() *must* be told the gravity of the
associated operation (if it's just a move operation, the gravity will
be ignored, but for resize and move+resize the correct value is needed)
- the craziness of different values that
meta_window_move_resize_internal() accepts has been documented in a
large comment at the beginning of the function. It may be possible to
clean this up some, but until then things will remain as they were
before--caller beware.
- screen and xinerama usable areas (i.e. places not covered by
e.g. panels) are cached in the workspace now, as are the screen and
xinerama edges. These get updated with the workarea in
src/workspace.c:ensure_work_areas_validated()
Translation
Michiel Sikkes (nl)
2.13.1
==
Thanks to Philip O'Brien, Kjartan Maraas, and Aidan Delaney for
improvements in this release.
- add handling for META_PREF_CURSOR_THEME and META_PREF_CURSOR_SIZE
for more complete debug info (Philip) [#318976]
- Remove possible g_source leak in #ifdef'd out code, in case anyone uses
it in the future (Kjartan) [#320050]
- Changed the 'minimized' field of the MetaTabEntry struct to 'hidden'
(Aidan) [#168455]
Translations
Miloslav Trmac (cs), Francisco Javier F. Serrador (es), Takeshi AIHANA (ja),
Erdal Ronahi (ku), Theppitak Karoonboonyanan (th)
2.13.0
==
Thanks to Bj<42>rn Lindqvist, Kjartan Maraas, S<>ren Sandmann,
Elijah Newren, Ross Cohen, and Muktha for improvements in this release
since 2.12.1.
- Mave ancestors come along with the transient when moving the window from
one workspace to another (Bj<42>rn) [#314977]
- Fix the workspace switcher tabpopup to display the right windows and to
fix the pick-a-new-window-to-focus algorithm in order to not select
windows that aren't showing (Bj<42>rn) [#170475]
- Fix a couple memory leaks (Kjartan, S<>ren, Elijah) [#313030]
- Make alt-esc (the "switch between windows immediately" keybinding)
actually show minimized windows too (Ross) [#107072]
- Make alt-esc consistent with alt-tab by leaving stacking of unselected
windows unchanged (Ross) [#314285]
- Clarify the meaning of the auto_raise preference (Elijah) [#312421]
- Fix a crash that occurs when removing some virtual desktops and windows
happen to be on those desktops (Elijah) [#318306]
- Make the unfocussed Simple window border visible with high contrast
inverse theme (Muktha) [#121361]
- Fix edge snapping for multi-screen (non-xinerama) setups (Elijah)
[#319425]
Translations
Vladimir Petkov (bg), Kostas Papadimas (el), Adam Weinberger (en_CA),
Ivar Smolin (et), Michiel Sikkes (nl), Marcel Telka (sk), Funda
Wang (zh_CN)
2.12.1
==
Thanks to Ray Strode, Havoc Pennington, and Elijah Newren for
improvements in this release.
- Truncate ridiculously long titles to avoid crashing or letting the
pager crash (Ray, Havoc, Elijah) [#315070]
- Get the tabbing window outline to work with gtk+ 2.8.4 again
(Elijah) [#317528]
Translations
Mahay Alam Khan (bn), Francisco Javier F. Serrador (es), Ivar Smolin (et),
I<>aki Larra<72>aga Murgoitio (eu), Luca Ferretti (it), Christian Rose (sv),
Clytie Siddall (vi), Funda Wang (zh_CN)
2.12.0
==
Thanks to Brent Smith for finding the crasher in the release candidate!
- Fix an uninitialized variable problem causing crashes (Brent) [#315000]
Translations
Bryn Salisbury (cy), Hendrik Richter (de), Christophe Merlet (RedFox) (fr),
Ignacio Casal Quinteiro (gl), Norayr Chilingaryan (hy), Young-Ho Cha (ko),
<20>ygimantas Berucka (lt), Michiel Sikkes (nl), Leonid Kanter (ru), Danilo
<1B>egan(sr), Baris Cicek (tr)
2.11.3
==
Thanks to Bj<42>rn Lindqvist and Elijah Newren for improvements in
this release.
- Check for the right versions of glib and gtk+ (Bj<42>rn) [#314116]
- Avoid obscuring centered-on-desktop windows which are denied focus
(Elijah) [#313234]
Translations
Vladimir Petkov (bg), Jordi Mallach (ca), Kostas Papadimas (el),
Ivar Smolin (et), Gabor Kelemen (hu), Mohammad DAMT (id), Duarte
Loreto (pt), Mugurel Tudor (ro), Laurent Dhima (sq), Maxim
Dziumanenko (uk)
2.11.2
==
Thanks to Elijah Newren, Jaap Haitsma, Ray Strode, and Brent Smith for
improvements in this release.
- Fix an easy to trigger crasher in 2.11.1 caused by unneeded
debugging spew (Elijah) [#311819]
- Make sure that Metacity dialogs have icons (Jaap) [#309876]
- Fix an infinite restacking flicker loop in sloppy and mouse focus
with fullscreen windows (Elijah) [#311400]
- Change default theme from Simple to Clearlooks (Elijah)
- Vastly improve the behavior of keyboard move/resize and edge
snapping (Ray) [#310888]
- Remove a duplicate string (Brent) [#309774]
Translations
Yuval Tanny (he), Gnome PL Team (pl), Raphael Higino (pt_BR),
Chao-Hsiung Liao (zh_TW)
2.11.1
==
Thanks to Elijah Newren, Ken Harris, Matthias Clasen, Christian
Persch, and Billy Biggs for improvements in this release.
- Fix a miscoloring of parts of the titlebar introduced in the last
unstable release (Elijah) [follow-up to #169982]
- Provide a more lenient threshold for drawing rounded corners (Ken)
[#122065]
- Make the Xcursor changes in the last unstable release effective
(Matthias) [follow-up to #308106]
- Revert the _NET_ACTIVE_WINDOW behavior change made in the 2.9.x
unstable series; activation includes changing a window to the
current workspace again (Elijah) [reversion of #128380]
- Restore original window size if the window was maximized upon
withdrawing it (Elijah, Christian) [#137185]
- Fix a raising bug with a window that has more than one child window
(Elijah, Billy) [part of #307875]
- Try to place windows denied focus near the focus window and fix a
xinerama bug with the placement (Elijah) [part of #307875]
- Avoid modal dialogs being obscured in somewhat pathologically
strange circumstances that Eclipse seems to be good at triggering
(Elijah) [part of #307875]
Translations
Miloslav Trmac (cs), Kostas Papadimas (el), Adam Weinberger (en_CA),
Francisco Javier F. Serrador (es), Ilkka Tuohela (fi), Christophe
Merlet (RedFox) (fr), Ignacio Casal Quinteiro (gl), Ankit
Patel (gu), Yair Hershkovitz (he), Takeshi AIHANA (ja), Kjartan
Maraas (nb), Kjartan Maraas (no), Marcel Telka (sk), Theppitak
Karoonboonyanan (th), Clytie Siddall (vi), Funda Wang (zh_CN)
2.11.0
==
This release contains all fixes up to Metacity 2.10.2 plus some new goodies.
Thanks to Matthias Clasen, Aivars Kalvans, Bj<42>rn Lindqvist, and
Andrew Johnson for improvements in this release.
- React to cursor theme changes (Matthias) [#308106]
- Plug a small leak with xinerama information (Aivars) [#307884]
- Split up main() into more manageable chunks and make use of GOpt
(Bj<42>rn) [#305331]
- Speed up vertical gradients (Andrew) [#169982]
Translations
Hendrik Richter (de), Ivar Smolin (et), Ignacio Casal
Quinteiro (gl), Clytie Siddall (vi)
2.10.2
==
Thanks to Billy Biggs, Greg Hudson, Elijah Newren, Ray Strode, Ryan
Lortie, and Soeren Sandmann for improvements in this release.
- Makes metacity a bit faster when dragging windows around (Soeren) [#141813]
- Fix simple memory error, using the address of a local variable as a
hash key (Ryan) [#307209]
- Fix a small leak in the case of a SYNC_COUNTER property value and
HAVE_XSYNC not defined (Ryan) [#307214]
- Cleanup font data when done with it (Ray) [#306720]
- If the window has a modal transient which is being unmanaged, don't
focus it (Elijah) [#305362]
- Make sure window position is calculated correctly for reconfigure
requests when part of the XWindowChanges structure is uninitialized
(Greg) [#305257]
- Add a resize popup when resizing constrained windows (Ray) [#305564]
- Don't accidentally treat maximize vertically as maximize in both
directions (Elijah) [#302204]
- Put all transients of the new window, if any exist, in the
calc_showing queue (Elijah, Billy) [#303284]
Translations
Kostas Papadimas (el), Priit Laes (et), Pauli Virtanen (fi), Ignacio
Casal Quinteiro (gl), Theppitak Karoonboonyanan (th), Canonical
Ltd (xh), Woodman Tuen (zh_TW)
2.10.1
==
This is a stable release to coincide with the release of Gnome 2.10.0.
Thanks to Dan Winship and Lex Hider for fixes in this release.
- Make sure the "Close" button has the focus in the
buggy-session-management-applications-warning dialog instead of the
table (Dan) [#172703]
- add doc/code-overview.txt and doc/how-to-get-focus-right.txt to the
distributed files (Lex) [#170519]
Translations
Adam Weinberger (en_CA), Christopher Orr (en_GB), Elnaz Sarbar (fa),
Gabor Kelemen (hu), Jyotsna Shrestha (ne), Steve Murphy (rw),
Baris Cicek (tr), Canonical Ltd (xh)
2.10.0
==
This is a stable release to coincide with the release of Gnome 2.10.0.
The only difference between this version and 2.9.34 is some
translation updates.
Translations
Vladimir Petkov (bg), Gabor Kelemen (hu), <20>ygimantas Berucka (lt),
Reinout van Schouwen (nl), Mugurel Tudor (ro), Danilo <20>egan (sr),
Woodman Tuen (zh_TW)
2.9.34
==
This is an unstable release to coincide with the release of Gnome
2.10.0 release candidate 1 (2.9.92).
Thanks to Aidan Delaney, Elijah Newren, and Joe Marcus Clarke for
fixes in this release.
- Fix crash that occurs when stupid apps claim that a window is its
own parent (Elijah, Joe) [#168207]
- Prevent the visual bell from changing the focus window (Elijah)
[#123366]
- Make sure that icons in the alt-tab popup are dimmed for all hidden
windows, not just minimized ones (Aidan) [#168455]
Translations
Elnaz Sarbar (fa), Ankit Patel (gu), Luca Ferretti (it),
Reinout van Schouwen (nl), Gnome PL Team (pl),
Alexandre Folle de Menezes (pt_BR)
2.9.21
==
This is an unstable release heading towards Gnome 2.10. Since there
have been an awful lot of fixes since Gnome 2.10 Beta 2, we are hoping
to get an extra week of wider testing of all these changes before hard
code freeze.
Thanks to Aidan Delaney, Crispin Flowerday, Elijah Newren, and Joe
Marcus Clarke for fixes in this release.
- Make sure we get a valid timestamp if one doesn't come with the
_NET_ACTIVE_WINDOW message (Elijah, Crispin) [#166728]
- Avoid sending CurrentTime to our XSetInputFocus wrappers, but
handle it better in case we miss any cases (Elijah) [#166732]
- Remove useless function call (Aidan) [#166730]
- Avoid new windows being obscured by the focus window and thus
possibly lost (Elijah) [#166524]
- Don't unconditionally place not-to-be-focused windows, such as
splashscreens, below the focus window (Elijah) [#167042]
- Raise the ancestor of a window instead of the window itself
(Elijah) [#166894]
- Cover half a dozen issues needed to fix a variety of rare timestamp
bugs (Elijah) [#167358]
- Fix a possible crash on logout (Joe) [#167935]
- Fix an obscure xinerama placement bug with windows that are too
large to fit in the workarea in both dimensions (Elijah) [#166757]
- Ignore all focus and focus-stealing-prevention code in
meta_window_show when not showing the window for the first time
(Elijah) [#167199]
- when receiving a _NET_ACTIVE_WINDOW message, switch to the desktop
where the window is located before activating instead of moving the
window to the current desktop (Elijah) [#128380]
- Handle _NET_CURRENT_DESKTOP messages that come with timestamps
(Elijah) [#161361]
- Handle keynav vs. mousenav in mouse and sloppy focus modes (Elijah)
[#167545]
Translations
Jordi Mallach (ca), Martin Willemoes Hansen (da),
Kostas Papadimas (el), David Lodge (en_GB),
Francisco Javier F. Serrador (es), T<>ivo Leedj<64>rv (et),
Christophe Merlet (RedFox) (fr), Takeshi AIHANA (ja),
Young-Ho, Cha (ko), Kjartan Maraas (nb), Michiel Sikkes (nl),
Kjartan Maraas (no), Duarte Loreto (pt), Leonid Kanter (ru),
Marcel Telka (sk), Laurent Dhima (sq), Maxim Dziumanenko (uk)
2.9.13
==
This is an unstable release to coincide with the release of Gnome
2.10.0 Beta 2 (2.9.91).
Thanks to Elijah Newren, Balamurali Viswanathan, Stephane Loeuillet,
Benjamin Kahn, Garrett (LeSage?), Jose Moya, Dave Ahlswede, Arvind
Samptur, John Paul Wallington, Tim Herold, Muktha Narayan, Sinisa
Segvic, Owen Taylor, Crispin Flowerday, "RHEL-3", KWin, and Google for
improvements in this release.
- Refuse to focus a window with a modal transient, and focus the
transient instead (Elijah) [#164716]
- Make sure we get gconf notifications about the terminal command
changing (Balamurali) [#160934]
- Specify encoding of src/metacity.desktop.in (Stephane) [#151850]
- New 48x48 default icon (Benjamin, Garrett) [#160660]
- Add man pages for metacity-window-demo and metacity-theme-viewer
(Jose, Dave) [#143513]
- Fix minimized window display in workspace switcher after relogin
with a saved session (Elijah) [#164677]
- Ignore sticky windows for non-active workspaces (Elijah) [#165259]
- Don't wireframe when accessibility is on, it apparently causes a
desktop wide freeze. (Arvind) [#159538]
- Keep tooltip on screen horizontally for xinerama (John) [#165261]
- Stick and unstick transients with their parent automatically
(Elijah) [#152283]
- Shaded windows should not show up in pagers (Elijah) [#165377]
- Treat splashscreens same as other windows for stacking (Elijah)
[#165243]
- Plug a pair of leaks (Elijah) [#165378]
- Take into account the appropriate list of windows when placing a
new one (Elijah) [#165381]
- Correct misleading and inaccurate wording (Elijah) [#165380]
- Handle xcomposite pkgconfig version regression (Tim) [#149368]
- Make the warn-about-buggy-session-management-apps dialog be sticky
(Elijah) [#164745]
- Fix the problem with fullscreen windows on a different xinerama
monitor not staying on top ("RHEL-3") [#156511]
- Make the unfocussed title bar distinguishable in cases where it
otherwise isn't for the Atlanta, Simple, and Bright themes (Muktha)
[#125291]
- Correct the stacking when returning from fullscreen mode (Elijah)
[#165718]
- Focus parents of dismissed transient windows in preference to the
window that most recently had keyboard focus (Elijah) [#157360]
- Make sure window->border_only is initialized so we don't get random
windows without decorations (Elijah, Sinisa, Owen) [#145131]
- Add period to the end of reduced_resources' description (Dave)
[#165780]
- If activation requests are too old, set the demands_attention hint
instead of actually activating (Elijah, Crispin) [#166395]
- Ignore xconfigurerequest events for stacking when it should be safe
to do so (Elijah, Crispin, KWin, Google) [#166395]
- Set a _METACITY_VERSION property (a utf8 string) on the WM check
window (Elijah) [#165350]
Translations
Vladimir Petkov (bg), Miloslav Trmac (cs), Frank Arnold (de),
Adam Weinberger (en_CA), David Lodge (en_GB),
Francisco Javier F. Serrador (es), Pauli Virtanen (fi),
Young-Ho, Changwoo Ryu (ko), <20>ygimantas Berucka (lt),
Kjartan Maraas (nb), Kjartan Maraas (no), Duarte Loreto (pt),
Marcel Telka (sk), Christian Rose (sv),
Theppitak Karoonboonyanan (th)
2.9.8
==
This is a brown paper bag release to cover up the crash I introduced
in version 2.9.5. Thanks to Sebastien Bacher and the bleeding edge
Ubuntu users for quickly catching the occasional crash that my fix in
#123576 could cause, and for verifying that the patch I made fixed
this issue (I couldn't duplicate).
- Don't forget to initialize display->grab_old_window_stacking
[#165093]
2.9.5
==
This is an unstable release to coincide with the release of Gnome
2.10.0 Beta 1 (2.9.90).
Thanks to Vincent Noel, Elijah Newren, and John Paul Wallington for
fixes in this release.
- Restore original stacking when aborting an alt-esc window switch
operation (Elijah) [#123576]
- Fix vertical maximization for second screen (John) [#163420]
- Show labels in bold for windows that demand attention (Vincent)
[#164590]
- In the tab task switcher popup, dim the window icon and put its
name between brackets when the window is minimized (Vincent)
[#136666]
- Correct highlighting of windows in workspace switcher popup
(Elijah) [#163450]
Translations
zh_CN (Funda Wang), nb (Kjartan Maraas), nn (Kjartan Maraas), de
(Frank Arnold)
2.9.3
==

5
README
View File

@@ -6,9 +6,10 @@ on UNIX keyboards.
The first release of Metacity was version 2.3. Metacity has no need for
your petty hangups about version numbers.
The stable releases so far are 2.4.x, 2.6.x, 2.8.0, 2.8.1, 2.8.1.x, 2.8.5-6
The stable releases so far are 2.4.x, 2.6.x, 2.8.[01], 2.8.1.x, 2.8.5-, 2.10.x,
2.12.x.
Unstable branches are 2.3.x, 2.5.x, 2.8.2-4, 2.9.x)
Unstable branches are 2.3.x, 2.5.x, 2.8.2-4, 2.9.x, 2.11.x, 2.13.x
COMPILING METACITY
===

View File

@@ -2,7 +2,7 @@ AC_PREREQ(2.50)
# Fibonacci sequence for micro version numbering:
# 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987
AC_INIT([metacity], [2.9.3],
AC_INIT([metacity], [2.13.2],
[http://bugzilla.gnome.org/enter_bug.cgi?product=metacity])
AC_CONFIG_SRCDIR(src/display.c)
@@ -155,12 +155,15 @@ AC_ARG_ENABLE(shape,
## try definining HAVE_BACKTRACE
AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
ALL_LINGUAS="am ar az be bg bn bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu id is it ja ko lt lv mk ml mn ms nb nl nn no or pa pl pt pt_BR ro ru sl sk sq sr sr@Latn sv ta th tk tr uk vi wa zh_CN zh_TW"
ALL_LINGUAS="am ar az be bg bn bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu hy id is it ja ko ku lt lv mk ml mn ms nb ne nl nn no or pa pl pt pt_BR ro ru rw sl sk sq sr sr@Latn sv ta th tk tr uk vi wa xh zh_CN zh_TW"
AM_GLIB_GNU_GETTEXT
## here we get the flags we'll actually use
PKG_CHECK_MODULES(METACITY_MESSAGE, gtk+-2.0 >= 2.2.0)
PKG_CHECK_MODULES(METACITY_WINDOW_DEMO, gtk+-2.0 >= 2.2.0)
# GOptionEntry requires glib-2.6.0
PKG_CHECK_MODULES(ALL, glib-2.0 >= 2.6.0)
# gtk_window_set_icon_name requires gtk2+-2.60
PKG_CHECK_MODULES(METACITY_MESSAGE, gtk+-2.0 >= 2.6.0)
PKG_CHECK_MODULES(METACITY_WINDOW_DEMO, gtk+-2.0 >= 2.6.0)
if $PKG_CONFIG --atleast-version 1.2.0 pangoxft; then
echo "pangoxft found"
@@ -198,7 +201,7 @@ fi
## or the render-specific check later
have_xrender=no
XCOMPOSITE_VERSION=1.0
XCOMPOSITE_VERSION=0.2
AC_MSG_CHECKING([Xcomposite >= $XCOMPOSITE_VERSION])
if $PKG_CONFIG --atleast-version $XCOMPOSITE_VERSION xcomposite; then
have_xcomposite=yes
@@ -258,6 +261,20 @@ if test x$have_xrender = xyes; then
AC_DEFINE(HAVE_RENDER, , [Building with Render extension support])
fi
AC_MSG_CHECKING([Xcursor])
if $PKG_CONFIG xcursor; then
have_xcursor=yes
else
have_xcursor=no
fi
AC_MSG_RESULT($have_xcursor)
if test x$have_xcursor = xyes; then
echo "Building with Xcursor"
METACITY_PC_MODULES="$METACITY_PC_MODULES xcursor"
AC_DEFINE(HAVE_XCURSOR, , [Building with Xcursor support])
fi
PKG_CHECK_MODULES(METACITY, $METACITY_PC_MODULES)
AC_PATH_XTRA
@@ -451,6 +468,7 @@ fi
AC_CONFIG_FILES([
Makefile
doc/Makefile
doc/man/Makefile
src/Makefile
src/wm-tester/Makefile
src/libmetacity-private.pc
@@ -497,6 +515,7 @@ metacity-$VERSION:
Resize-and-rotate: ${found_randr}
Xsync: ${found_xsync}
Render: ${have_xrender}
Xcursor: ${have_xcursor}
"
echo "This is the UNSTABLE branch of metacity"
echo "Use 2.8.x (where x > 5) for stable (gnome-2-8 branch in CVS)"
echo "Use 2.12.x for stable (gnome-2-12 branch in CVS)"

View File

@@ -1,2 +1,4 @@
SUBDIRS = man
EXTRA_DIST=theme-format.txt metacity-theme.dtd dialogs.txt
EXTRA_DIST=theme-format.txt metacity-theme.dtd dialogs.txt code-overview.txt \
how-to-get-focus-right.txt

View File

@@ -0,0 +1,283 @@
File contents:
Basic Ideas
Important points to remember
Explanation of fields in the ConstraintInfo struct
Gory details of resize_gravity vs. fixed_directions
IMPORTANT NOTE: There's a big comment at the top of constraints.c
explaining how to add extra constraints or tweak others. Read it. I put
that information there because it may be enough information by itself for
people to hack on constraints.c. I won't duplicate that information in
this file; this file is for deeper details.
---------------------------------------------------------------------------
Basic Ideas
---------------------------------------------------------------------------
There are a couple basic ideas behind how this constraints.c code works and
why it works that way:
1) Split the low-level error-prone operations into a special file
2) Add robustness by prioritizing constraints
3) Make use of a minimal spanning set of rectangles for the
"onscreen region" (screen minus struts).
4) Constraints can be user-action vs app-action oriented
5) Avoid over-complification ;-)
Some more details explaining these basic ideas:
1) Split tedious operations out
boxes.[ch] have been added which contain many common, tedious, and
error-prone operations. I find that this separation helps a lot for
managing the complexity and ensuring that things work correctly.
Also, note that testboxes.c thoroughly tests all functionality in
boxes.[ch] and a testboxes program is automatically compiled.
Note that functions have also been added to this file to handle some
of the tedium necessary for edge resistance as well.
2) Prioritize constraints
In the old code, if each and every constraint could not be
simultaneously satisfied, then it would result in some
difficult-to-predict set of constraints being violated. This was
because constraints were applied in order, with the possibility for
each making changes that violated previous constraints, with no
checking done at the end.
Now, all constraints have an associated priority, defined in the
ConstraintPriority enum near the top of constraints.c. The
constraints are all applied, and then are all checked; if not all are
satisfied then the least important constraints are dropped and the
process is repeated. This ensures that the most important constraints
are satisfied.
A special note to make here is that if any one given constraint is
impossible to satisfy even individually (e.g. if minimum size hints
specify a larger window than the screen size, making the
fully-onscreen constraint impossible to satisfy) then we treat the
constraint as being satisfied. This sounds counter-intuitive, but the
idea is that we want to satisfy as many constraints as possible and if
we treat it as a violation then all constraints with a lesser priority
also get dropped along with the impossible to satisfy one.
3) Using maximal/spanning rectangles
The constraints rely heavily on something I call spanning rectangles
(which Soeren referred to as maximal rectangles, a name which I think
I like better but I don't want to go change all the code now). These
spanning rectangles have the property that a window will fit on the
screen if and only if it fits within at least one of the rectangles.
Soeren had an alternative way of describing these rectangles, namely
that they were rectangles with the property that if you made any of
them larger in any direction, they would overlap with struts or be
offscreen (with the implicit assumption that there are enough of these
rectangles that combined they cover all relevant parts of the screen).
Note that, by necessity, these spanning/maximal rectangles will often
overlap each other.
Such a list makes it relatively easy to define operations like
window-is-onscreen or clamp-window-to-region or
shove-window-into-region. Since we have a on-single-xinerama
constraint in addition to the onscreen constraint(s), we cache
number_xineramas + 1 of these lists in the workspace. These lists
then only need to be updated whenever the workarea is (e.g. when strut
list change or screen or xinerama size changes).
4) Constraints can be user-action vs app-action oriented
Such differentiation requires special care for the constraints to be
consistent; e.g. if the user does something and one constraint
applies, then the app does something you have to be careful that the
constraint on the app action doesn't result in some jarring motion.
In particular, the constraints currently allow offscreen movement or
resizing for user actions only. The way consistency is handled is
that at the end of the constraints, update_onscreen_requirements()
checks to see if the window is offscreen or split across xineramas and
updates window->require_fully_onscreen and
window->require_on_single_xinerama appropriately.
5) Avoid over-complification
The previous code tried to reform the constraints into terms of a
single variable. This made the code rather difficult to
understand. ("This is a rather complicated fix for an obscure bug
that happened when resizing a window and encountering a constraint
such as the top edge of the screen.") It also failed, even on the
very example for which it used as justification for the complexity
(bug 312104 -- when keyboard resizing the top of the window,
Metacity extends the bottom once the titlebar hits the top panel),
though the reason why it failed is somewhat mysterious as it should
have worked. Further, it didn't really reform the constraints in
terms of a single variable -- there was both an x_move_delta and an
x_resize_delta, and the existence of both caused bug 109553
(gravity with simultaneous move and resize doesn't work)
---------------------------------------------------------------------------
Important points to remember
---------------------------------------------------------------------------
- Inner vs Outer window
Note that because of how configure requests work and
meta_window_move_resize_internal() and friends are set up, that the
rectangles passed to meta_window_constrain() are with respect to inner
window positions instead of outer window positions (meaning that window
manager decorations are not included in the position/size). For the
constraints that need to be enforced with respect to outer window
positions, you'll need to make use of the extend_by_frame() and
unextend_by_frame() functions.
- meta_window_move_resize_internal() accepts a really hairy set of
inputs. See the huge comment at the beginning of that function.
constraints gets screwed up if that function can't sanitize the input,
so be very careful about that. It used to be pretty busted.
---------------------------------------------------------------------------
Explanation of fields in the ConstraintInfo strut
---------------------------------------------------------------------------
As of the time of this writing, ConstraintInfo had the following fields:
orig
current
fgeom
action_type
is_user_action
resize_gravity
fixed_directions
work_area_xinerama
entire_xinerama
usable_screen_region
usable_xinerama_region
A brief description of each and/or pointers to more information are found
below:
orig
The previous position and size of the window, ignoring any window
decorations
current
The requested position and size of the window, ignoring any window
decorations. This rectangle gets modified by the various constraints
to specify the allowed position closest to the requested position.
fgeom
The geometry of the window frame (i.e. "decorations"), if it exists.
Otherwise, it's a dummy 0-size frame for convenience (i.e. this pointer
is guaranteed to be non-NULL so you don't have to do the stupid check).
action_type
Whether the action being constrained is a move, resize, or a combined
move and resize. Some constraints can run faster with this information
(e.g. constraining size increment hints or min size hints don't need to
do anything for pure move operations). This may also be used for
providing slightly different behavior (e.g. clip-to-region instead of
shove-into-region for resize vs. moving operations), but doesn't
currently have a lot of use for this.
is_user_action
Used to determine whether the action being constrained is a user
action. If so, certain parts of the constraint may be relaxed. Note
that this requires care to get right; see item 4 of the basic ideas
section for more details.
resize_gravity
The gravity used in the resize operation, used in order to make sure
windows are resized correctly if constraints specify that their size
must be modified. Explained further in the resize_gravity
vs. fixed_directions section.
fixed_directions
There may be multiple solutions to shoving a window back onscreen.
Typically, the shortest distance used is the solution picked, but if
e.g. an application only moved its window in a single direction, it's
more desirable that the window is shoved back in that direction than in
a different one. fixed_directions facilitates that. Explained further
in the resize_gravity vs. fixed_directions section.
work_area_xinerama
This region is defined in the workspace and just cached here for
convenience. It is basically the area obtained by taking the current
xinerama, treating all partial struts as full struts, and then
subtracting all struts from the current xinerama region. Useful
e.g. for enforcing maximization constraints.
entire_xinerama
Just a cache of the rectangle corresponding to the entire current
xinerama, including struts. Useful e.g. for enforcing fullscreen
constraints.
usable_screen_region
The set of maximal/spanning rectangles for the entire screen; this
region doesn't overlap with any struts and helps to enforce
e.g. onscreen constraints.
usable_xinerama_region
The set of maximal/spanning rectangles for the current xinerama; this
region doesn't overlap with any struts on the xinerama and helps to
enforce e.g. the on-single-xinerama constraint.
---------------------------------------------------------------------------
Gory details of resize_gravity vs. fixed_directions
---------------------------------------------------------------------------
Note that although resize_gravity and fixed_directions look similar, they
are used for different purposes:
- resize_gravity is only for resize operations and is used for
constraints unrelated to keeping a window within a certain region
- fixed_directions is for both move and resize operations and is
specifically for keeping a window within a specified region.
Examples of where each are used:
- If a window is simultaneously moved and resized to the southeast corner
with SouthEastGravity, but it turns out that the window was sized to
something smaller than the minimum size hint, then the size_hints
constraint should resize the window using the resize_gravity to ensure
that the southeast corner doesn't move.
- If an application resizes itself so that it grows downward only (which
I note could be using any of three different gravities, most likely
NorthWest), and happens to put the southeast part of the window under a
partial strut, then the window needs to be forced back on screen.
(Yes, shoved onscreen and not clipped; see bug 136307). It may be the
case that moving the window to the left results in less movement of the
window than moving the window up, which, in the absence of fixed
directions would cause us to chose moving to the left. But since the
user knows that only the height of the window is changing, they would
find moving to the left weird (especially if this were a dialog that
had been centered on its parent). It'd be better to shove the window
upwards so we make sure to keep the left and right sides fixed in this
case. Note that moving the window upwards (or leftwards) is probably
totally against the gravity in this case; but that's okay because
gravity typically assumes there's more than enough onscreen space for
the resize and we only override the gravity when that assumption is
wrong.
For the paranoid, a fixed directions might give an impossible to fulfill
constraint (I don't think that's true currently in the code, but I haven't
thought it through in a while). If this ever becomes a problem, it should
be relatively simple to throw out the fixed directions when this happens
and rerun the constraint. Of course, it might be better to rethink things
to just avoid such a problem.
The nitty gritty of what gets fixed:
User move:
in x direction - y direction fixed
in y direction - x direction fixed
in both dirs. - neither direction fixed
User resize: (note that for clipping, only 1 side ever changed)
in x direction - y direction fixed (technically opposite x side fixed too)
in y direction - x direction fixed (technically opposite y side fixed too)
in both dirs. - neither direction fixed
App move:
in x direction - y direction fixed
in y direction - x direction fixed
in both dirs. - neither direction fixed
App resize
in x direction - y direction fixed
in y direction - x direction fixed
in 2 parallel directions (center side gravity) - other dir. fixed
in 2 orthogonal directions (corner gravity) - neither dir. fixed
in 3 or 4 directions (a center-like gravity) - neither dir. fixed
Move & resize
Treat like resize case though this will usually mean all four sides
change and result in neither direction being fixed
Note that in all cases, if neither direction moves it is likely do to a
change in struts and thus neither direction should be fixed despite the
lack of movement.

View File

@@ -37,6 +37,14 @@ Focus method Behavior
mouse Focus the window containing the pointer if there is one,
otherwise focus the designated "no_focus_window".
Note that "most recently used window", as used here, has a slightly
different connotation than "most recent to have keyboard focus". This
is because when a user activates a window that is a transient, its
ancestor(s) should be considered to be more recently used than other
windows that have had the keyboard focus more recently. (See bug
157360; this may mean that the alt-tab order should also change
simultaneously, although the current implementation does not do that.)
Also, sometimes a new window will be mapped (e.g. unminimizing a
window or launching a new application). Most users want to interact
with new windows right away, so these should typically be focused.
@@ -71,9 +79,26 @@ to alert the user that there is a window to work with:
Additionally, the user may decide to use the keyboard instead of the mouse
to navigate between windows (referred to as "keynav"). This poses no
problems for click-to-focus (because the same invariant can be
maintained), but for sloppy and mouse focus it means that EnterNotify
and LeaveNotify events should be ignored (they can be generated
without using the mouse, for example, by grabs).
maintained), but for sloppy and mouse focus it requires extra work to
attempt to handle the INHERENTLY CONFLICTING CONSTRAINTS. Metacity does
this by having a mouse_mode boolean used to determine which of the two
sets of invariants holds. This mode is set according to which method was
most recently used to choose a focus window:
1) When receiving EnterNotify/LeaveNotify events from mouse movement, set
mouse_mode to TRUE.
2) When using keynav to choose a focus window (e.g. alt-tab, alt-esc,
move-window-to-workspace keybindings), set mouse_mode to FALSE.
3) When handling events that don't choose a focus window but rather need
a focus_window chosen for them (e.g. switch-to-workspace keybindings),
don't change the mouse_mode and just use the current value.
Note that grabs present a special case since they can generate EnterNotify
and LeaveNotify events without using the mouse, thus these events should be
ignored when the crossing mode is NotifyGrab or NotifyUngrab. THIS
MOUSENAV/KEYNAV MODERATION METHOD IS NOT PERFECT--there are corner cases
when trying to mix-and-match between mousenav and keynav simultaneously
that cause problems; but it appears to be the most reasonable tradeoff and
works well in most cases, especially if the user sticks to just mousenav
for a long time or just keynav for a long time.
Finally, windows of type WM_DOCK or WM_DESKTOP (e.g. the desktop and
the panel) present a special case, at least partially due to the lack
@@ -95,7 +120,8 @@ To read more about the bugs that inspired these choices:
Also, the EWMH spec, especially the parts relating to _NET_WM_USER_TIME
- Modal vs. non-modal dialogs that get denied focus when mapped
http://bugzilla.gnome.org/show_bug.cgi?id=151996
- Ignoring EnterNotify and LeaveNotify events during keynav
- Mousenav vs. Keynav in mouse and sloppy focus modes
http://bugzilla.gnome.org/show_bug.cgi?id=167545
http://bugzilla.gnome.org/show_bug.cgi?id=101190
- Not focusing panels
http://bugzilla.gnome.org/show_bug.cgi?id=160470
@@ -113,6 +139,7 @@ the ones I'm the most familiar with):
bug 95747 should ignore EnterNotify events with NotifyInferior detail set
bug 97635 sticky windows always keep focus when switching workspaces
bug 102665 a window unminimized from the tasklist should be focused
bug 107347 focus windows that manually position themselves too
bug 108643 focus in MRU order instead of stack order
bug 110970 moving a window to another workspace loses focus
bug 112031 closing a dialog can result in a strange focus window
@@ -120,6 +147,7 @@ the ones I'm the most familiar with):
bug 120100 panel shouldn't be focused after workspace applet usage
bug 123803 need final EnterNotify after workspace switch (see also 124798)
bug 124981 focus clicked window in pager only if on current workspace
bug 125492 catch the xserver unfocusing everything and fix its braindeadedness
bug 128200 focus correct window on libwnck window minimize (see 107681 too)
bug 131582 fix race condition on window minimize/close
bug 133120 wrong window focused when changing workspaces
@@ -140,6 +168,18 @@ the ones I'm the most familiar with):
bug 151990 prevent focus inconsistencies by only providing one focus method
bug 151996 modal dialogs denied focus should not be lowered
bug 152000 fix race on window close followed by rapid mouse movement
bug 152004 ways to handle new window versus mouse invariants
bug 153220 catch the root window getting focus and reset to default window
bug 157360 focus parents of dismissed transient windows in preference to
the window that most recently had focus
bug 159257 focus the desktop when showing it
bug 160470 don't focus panels on click
bug 163450 correct highlighting in workspace switcher popup
bug 164716 refuse to focus a window with a modal transient, and focus
the transient instead
bug 166524 avoid new windows being obscured by the focus window
bug 167545 mousenav vs. keynav in mouse and sloppy focus modes
<a massive heap of bugs relating to focus stealing prevention...>
Addendum on sloppy and mouse focus
@@ -148,7 +188,7 @@ Addendum on sloppy and mouse focus
1) Keynav doesn't maintain the same invariants as mouse navigation
for these focus modes; switching back and forth between
navigation methods, therefore, may appear to have
navigation methods, therefore, may have or appear to have
inconsistencies. Examples:
a) If the user uses Alt-Tab to change the window with focus, then
starts to move the mouse, at that moment the window where the
@@ -174,6 +214,15 @@ Addendum on sloppy and mouse focus
containing the menu) but is one of those hard-to-get-right
keynav and mouse focus mixture cases. (See bug 101190 for
more details)
d) Similar to (c), moving the mouse off the menu doesn't immediately
focus the window that the mouse goes over, due to an application
grab (we couldn't change this and wouldn't want to, but
technically it does break the invariant).
e) If mouse_mode is off and the user does something to cause focus to
change (e.g. switch workspaces, close or minimize a window, etc.)
and simultaneously tries to move the mouse, the choice of which
window to focus is inherently race-y. (You probably can't satisfy
both keynav and mousenav invariants simultaneously...)
2) The sloppy/mouse invariants are often not strictly maintained;
for example, we provide an exception to the invariant for newly
mapped windows. (Most find that not allowing this exception is

2
doc/man/.cvsignore Normal file
View File

@@ -0,0 +1,2 @@
Makefile
Makefile.in

3
doc/man/Makefile.am Normal file
View File

@@ -0,0 +1,3 @@
man_MANS = metacity-theme-viewer.1 metacity-window-demo.1
EXTRA_DIST = $(man_MANS)

View File

@@ -0,0 +1,43 @@
.\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection
.\" other parms are allowed: see man(7), man(1)
.\"
.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
.\"
.TH METACITY-THEME-VIEWER 1 "1 June 2004"
.SH NAME
metacity-theme-viewer \- view metacity themes
.SH SYNOPSIS
.B metacity-theme-viewer
[
.I THEMENAME
]
.SH DESCRIPTION
.\" Putting a newline after each sentence can generate better output.
.B metacity-theme-viewer
allows you to preview any installed Metacity theme.
.PP
When designing a new Metacity theme, you can use
.B metacity-theme-viewer
to measure the performance of a window frame option, and to preview
the option.
.SH OPTIONS
.TP
.I THEMENAME
Name of the theme to be shown (\fIAtlanta\fR by default).
It is case-sensitive.
.SH FILES
.br
.nf
.TP
.I /usr/share/themes
system themes directory
.TP
.I /usr/share/themes/*/metacity-1/metacity-theme-1.xml
theme specification file
.SH AUTHOR
This manual page was written by Jose M. Moya <josem@die.upm.es>, for
the Debian GNU/Linux system (but may be used by others).
.SH "SEE ALSO"
.\" Always quote multiple words for .SH
.BR metacity (1),
.BR metacity-window-demo (1).

View File

@@ -0,0 +1,25 @@
.\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection
.\" other parms are allowed: see man(7), man(1)
.\"
.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
.\"
.TH METACITY-WINDOW-DEMO 1 "1 June 2004"
.SH NAME
metacity-window-demo \- demo of window features
.SH SYNOPSIS
.B metacity-window-demo
.SH DESCRIPTION
.\" Putting a newline after each sentence can generate better output.
This program demonstrates various kinds of windows that window
managers and window manager themes should handle.
.PP
Be sure to tear off the menu and toolbar, those are also a special
kind of window.
.SH AUTHOR
This manual page was written by Jose M. Moya <josem@die.upm.es>, for
the Debian GNU/Linux system (but may be used by others).
.SH "SEE ALSO"
.\" Always quote multiple words for .SH
.BR x-window-manager (1),
.BR metacity (1),
.BR metacity-theme-viewer (1).

View File

@@ -1,3 +1,623 @@
2005-11-17 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Wouter Bolsterlee.
2005-11-13 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2005-11-03 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation.
2005-10-28 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2005-10-28 Takeshi AIHANA <aihana@gnome.gr.jp>
* ja.po: Updated Japanese translation.
2005-10-27 Erdal Ronahi <erdal.ronahi@gmail.com>
* ku.po: Added Kurdish translation.
2005-10-17 Marcel Telka <marcel@telka.sk>
* sk.po: Updated Slovak translation.
2005-10-15 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated.
2005-10-14 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated.
2005-10-14 Kostas Papadimas <pkst@gnome.org>
* el.po: Updated Greek translation.
2005-10-10 Priit Laes <plaes@cvs.gnome.org>
* et.po: Translation updated by Ivar Smolin.
2005-10-04 Alexander Shopov <ash@contact.bg>
* bg.po: Updated Bulgarian translation by
Alexander Shopov <ash@contact.bg>
2005-10-04 Funda Wang <fundawang@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation.
2005-10-04 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2005-10-03 Runa Bhattacharjee <runa@bengalinux.org>
* bn.po: Updated Bengali Translation by Mahay Alam Khan <makl10n@yahoo.com>
2005-10-02 Christian Rose <menthos@menthos.com>
* sv.po: Reverted unauthorized changes made by
user 'kloczek'.
2005-09-26 Alessio Frusciante <algol@firenze.linux.it>
* it.po: Updated Italian translation by
Luca Ferretti <elle.uca@infinito.it>.
2005-09-24 Funda Wang <fundawang@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation.
2005-09-21 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2005-09-20 Christian Rose <menthos@menthos.com>
* sv.po: Updated Swedish translation.
2005-09-16 Clytie Siddall <clytie@riverland.net.au>
* vi.po: Updated Vietnamese translation.
2005-09-08 Inaki Larranaga <dooteo@euskalgnu.org>
* eu.po: Updated Basque translation.
2005-09-07 Priit Laes <plaes@cvs.gnome.org>
* et.po: Translation updated by Ivar Smolin.
2005-09-04 Danilo Šegan <danilo@gnome.org>
* hy.po: Added Armenian translation by Norayr Chilingaryan
<asprayama@yahoo.com>.
2005-09-04 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician Translation.
2005-09-03 Danilo Šegan <danilo@gnome.org>
* sr.po, sr@Latn.po: Updated.
2005-09-02 Leonid Kanter <leon@asplinux.ru>
* ru.po: Updated Russian translation
2005-09-01 Baris Cicek <baris@teamforce.name.tr>
* tr.po: Updated Turkish Translation
2005-08-31 Žygimantas Beručka <zygis@gnome.org>
* lt.po: Updated Lithuanian translation.
2005-08-30 Hendrik Richter <hendi@gnome-de.org>
* de.po: Updated German translation.
2005-08-30 Changwoo Ryu <cwryu@debian.org>
* ko.po: Updated Korean translation by Young-Ho Cha.
2005-08-29 Telsa Gwynne <hobbit@aloss.ukuu.org.uk>
* cy.po: Updated Welsh translation.
2005-08-28 Christophe Merlet <redfox@redfoxcenter.org>
* fr.po: Updated French translation.
2005-08-25 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Michiel Sikkes.
2005-08-20 Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>
* ca.po: Updated Catalan translation.
2005-08-19 Priit Laes <plaes@cvs.gnome.org>
* et.po: Translation updated by Ivar Smolin.
2005-08-17 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Updated Albanian translation.
2005-08-15 Maxim Dziumanenko <mvd@mylinux.ua>
* uk.po: Updated Ukrainian translation.
2005-08-15 Gabor Kelemen <kelemeng@gnome.hu>
* hu.po: Hungarian translation updated.
2005-08-15 Mugurel Tudor <mugurelu@gnome.ro>
* ro.po: Updated Romanian translation
2005-08-14 Mohammad DAMT <mdamt@gnome.org>
* id.po: Updated Indonesian translation
2005-08-13 Kostas Papadimas <pkst@gnome.org>
* el.po: Updated Greek translation.
2005-08-11 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Updated Portuguese translation.
2005-08-10 Alexander Shopov <ash@contact.bg>
* bg.po: Updated Bulgarian translation by
Rostislav Raykov <zbrox@i-space.org>
2005-08-02 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
* zh_TW.po: Updated Traditional Chinese translation.
2005-07-31 Yair Hershkovitz <yairhr@gmail.com>
* he.po: Updated Hebrew translation by Yuval Tanai.
2005-07-28 Artur Flinta <aflinta@cvs.gnome.org>
* pl.po: Updated Polish translation by GNOME PL Team.
2005-07-26 Raphael Higino <raphaelh@cvs.gnome.org>
* pt_BR.po: Converted to UTF-8.
2005-07-26 Raphael Higino <raphaelh@cvs.gnome.org>
* pt_BR.po: Updated Brazilian Portuguese translation.
2005-07-24 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation.
2005-07-24 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
* no.po: Same
2005-07-23 Clytie Siddall <clytie@riverland.net.au>
* vi.po: Updated Vietnamese translation.
2005-07-23 Funda Wang <fundawang@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation.
2005-07-21 Ankit Patel <ankit644@yahoo.com>
* gu.po: Updated Gujarati Translation.
2005-07-20 Marcel Telka <marcel@telka.sk>
* sk.po: Updated Slovak translation.
2005-07-18 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2005-07-17 Christophe Merlet <redfox@redfoxcenter.org>
* fr.po: Updated French translation.
2005-07-17 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2005-07-17 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2005-07-17 Nikos Charonitakis <charosn@her.forthenet.gr>
* el.po: Updated Greek translation.
2005-07-16 Takeshi AIHANA <aihana@gnome.gr.jp>
* ja.po: Updated Japanese translation.
2005-07-15 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician Translation.
2005-07-14 Yair Hershkovitz <yairhr@gmail.com>
* he.po: Updated Hebrew translation.
2005-07-14 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation.
2005-07-13 Marcel Telka <marcel@telka.sk>
* sk.po: Updated Slovak translation.
2005-07-12 Priit Laes <plaes@cvs.gnome.org>
* et.po: Translation updated by Ivar Smolin.
2005-07-08 Clytie Siddall <clytie@riverland.net.au>
* vi.po: Updated Vietnamese translation.
2004-07-06 Christian Rose <menthos@menthos.com>
* gl.po: Updated Galician translation by
Ignacio Casal Quinteiro <nacho.resa@gmail.com>.
2005-07-04 Hendrik Richter <hendi@gnome-de.org>
* de.po: Fixed German translation by
Jens Seidel <jensseidel@users.sf.net>.
2005-06-23 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician translation.
2005-06-22 Abel Cheung <maddog@linuxhall.org>
* zh_TW.po: Fix language team reference.
2005-06-05 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2005-06-01 Priit Laes <plaes@cvs.gnome.org>
* et.po: Translation updated.
2005-05-19 Nikos Charonitakis <charosn@her.forthnet.gr>
* el.po: Updated Greek translation.
2005-05-11 Kostas Papadimas <pkst@gnome.org>
* el.po: Updated Greek Translation.
2005-05-10 Adi Attar <aattar@cvs.gnome.org>
* xh.po: Updated Xhosa translation.
2005-04-28 Kostas Papadimas <pkst@gnome.org>
* el.po: Updated Greek translation
2005-04-25 Priit Laes <plaes@cvs.gnome.org>
* et.po: Translation updated by Ivar Smolin.
2005-04-17 Pauli Virtanen <pauli.virtanen@hut.fi>
* fi.po: Fix a small mistranslation.
2005-04-09 Christopher Orr <chris@protactin.co.uk>
* en_GB.po: Updated British English translation.
2005-04-06 Roozbeh Pournader <roozbeh@farsiweb.info>
* fa.po: Updated Persian translation by
Elnaz Sarbar <elnaz@farsiweb.info>.
2005-04-05 Pawan Chitrakar <pawan@nplinux.org>
* ne.po: Added Nepali Translation.
2005-04-03 Gabor Kelemen <kelemeng@gnome.hu>
* hu.po: Hungarian translation updated.
2005-03-31 Steve Murphy <murf@e-tools.com>
* rw.po: Added Kinyarwanda translation.
2005-03-29 Adi Attar <aattar@cvs.gnome.org>
* xh.po: Updated Xhosa translation.
2005-03-17 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2005-03-12 Baris Cicek <baris@teamforce.name.tr>
* tr.po: Updated Turkish Translation
2005-03-10 Adi Attar <aattar@cvs.gnome.org>
* xh.po: Added Xhosa translation.
2005-03-07 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Reinout van Schouwen.
2005-03-07 Mugurel Tudor <mugurelu@go.ro>
* ro.po: Updated Romanian translation.
2005-03-04 Laszlo Dvornik <dvornik@gnome.hu>
* hu.po: Hungarian translation updated by Gabor Kelemen.
2005-03-03 Alexander Shopov <ash@contact.bg>
* bg.po: Updated Bulgarian translation by
Vladimir Petkov <vpetkov@i-space.org>
2005-03-03 Žygimantas Beručka <uid0@akl.lt>
* lt.po: Updated Lithuanian translation.
2005-03-02 Danilo Šegan <dsegan@gmx.net>
* sr.po, sr@Latn.po: Updated Serbian translation.
2005-03-02 Abel Cheung <maddog@linuxhall.org>
* zh_TW.po: Updated traditional Chinese translation from GNOME HK Team
2005-02-28 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Reinout van Schouwen.
2005-02-27 Alessio Frusciante <algol@firenze.linux.it>
* it.po: Updated Italian translation by
Luca Ferretti <elle.uca@infinito.it>.
2005-02-24 Artur Flinta <aflinta@cvs.gnome.org>
* pl.po: Updated Polish translation by GNOME PL Team.
2005-02-24 Ankit Patel <ankit644@yahoo.com>
* gu.po: Updated Gujarati Translation.
2005-02-23 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Michiel Sikkes.
2004-02-22 Roozbeh Pournader <roozbeh@farsiweb.info>
* fa.po: Updated Persian translation by
Elnaz Sarbar <elnaz@farsiweb.info>.
2005-02-22 Raphael Higino <raphaelh@cvs.gnome.org>
* pt_BR.po: Updated Brazilian Portuguese translation.
2005-02-21 Christophe Merlet <redfox@redfoxcenter.org>
* fr.po: Updated French translation.
2005-02-21 Bastien Nocera <hadess@hadess.net>
* en_GB.po: the file is actually in UTF-8
2005-02-21 Martin Willemoes Hansen <mwh@sysrq.dk>
* da.po: Updated Danish translation.
2005-02-21 Priit Laes <plaes@cvs.gnome.org>
* et.po: Translation updated by Tõivo Leedjärv.
2005-02-18 Changwoo Ryu <cwryu@debian.org>
* ko.po: Updated Korean translation.
2005-02-18 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Updated Portuguese translation.
2005-02-17 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Tino Meinen.
2005-02-17 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Updated Albanian translation.
2005-02-16 Jordi Mallach <jordi@sindominio.net>
* ca.po: Updated Catalan translation.
2005-02-15 Maxim Dziumanenko <mvd@mylinux.com.ua>
* uk.po: Updated Ukrainian translation.
2005-02-15 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: s/applikasjon/program
* no.po: Same
2005-02-12 Marcel Telka <marcel@telka.sk>
* sk.po: Updated Slovak translation.
2005-02-12 Takeshi AIHANA <aihana@gnome.gr.jp>
* ja.po: Updated Japanese translation.
2005-02-11 Kostas Papadimas <pkst@gnome.org>
* el.po: Updated Greek translation.
2005-02-10 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2005-02-08 Leonid Kanter <leon@asplinux.ru>
* ru.po: Updated Russian translation
2005-02-08 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Update
* no.po: Update
2005-02-07 David Lodge <dave@cirt.net>
* en_GB.po: Updated British translation.
2005-02-06 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2005-02-06 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation.
2005-02-06 Alexander Shopov <ash@contact.bg>
* bg.po: Updated Bulgarian translation by
Vladimir Petkov <vpetkov@i-space.org>
2005-02-06 Pauli Virtanen <pauli.virtanen@hut.fi>
* fi.po: Updated Finnish translation.
2005-02-05 Frank Arnold <farnold@cvs.gnome.org>
* de.po: Updated German translation.
2005-02-05 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2005-02-05 Žygimantas Beručka <uid0@akl.lt>
* lt.po: Updated Lithuanian translation.
2005-02-04 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2005-02-04 Changwoo Ryu <cwryu@debian.org>
* ko.po: Updated Korean translation.
2005-02-02 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation.
2005-02-02 Frank Arnold <farnold@cvs.gnome.org>
* de.po: Updated German translation.
2005-02-01 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Update
* no.po: Update
2005-02-01 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2005-02-01 Žygimantas Beručka <uid0@akl.lt>
* lt.po: Updated Lithuanian translation.
2005-01-31 Christian Rose <menthos@menthos.com>
* sv.po: Updated Swedish translation.
2005-01-31 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation.
2005-01-31 Christian Rose <menthos@menthos.com>
* sv.po: Updated Swedish translation.
2005-01-30 Žygimantas Beručka <uid0@akl.lt>
* lt.po: Updated Lithuanian translation.
2005-01-29 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2005-01-29 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation.
2005-01-29 Marcel Telka <marcel@telka.sk>
* sk.po: Updated Slovak translation.
2005-01-29 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2005-01-28 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Update
* no.po: Update
2005-01-26 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2005-01-26 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2005-01-26 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Updated Portuguese translation.
2005-01-25 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2005-01-23 Funda Wang <fundawang@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation.
2005-01-21 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Update this too while we're at it.
2005-01-21 Kjartan Maraas <kmaraas@gnome.org>
* nn.po: Update
2005-01-15 Frank Arnold <farnold@cvs.gnome.org>
* de.po: Updated German translation.
2005-01-01 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.

1054
po/am.po

File diff suppressed because it is too large Load Diff

1063
po/ar.po

File diff suppressed because it is too large Load Diff

1063
po/az.po

File diff suppressed because it is too large Load Diff

1087
po/be.po

File diff suppressed because it is too large Load Diff

2005
po/bg.po

File diff suppressed because it is too large Load Diff

1912
po/bn.po

File diff suppressed because it is too large Load Diff

1063
po/bs.po

File diff suppressed because it is too large Load Diff

1639
po/ca.po

File diff suppressed because it is too large Load Diff

1097
po/cs.po

File diff suppressed because it is too large Load Diff

1101
po/cy.po

File diff suppressed because it is too large Load Diff

1105
po/da.po

File diff suppressed because it is too large Load Diff

1092
po/de.po

File diff suppressed because it is too large Load Diff

1292
po/el.po

File diff suppressed because it is too large Load Diff

View File

@@ -1,17 +1,17 @@
# English/Canada translation of metacity.
# Copyright (C) 2004 Adam Weinberger and the GNOME Foundation
# Copyright (C) 2004-2005 Adam Weinberger and the GNOME Foundation
# This file is distributed under the same licence as the metacity package.
# Maintainer: Adam Weinberger <adamw@gnome.org>.
# Adam Weinberger <adamw@gnome.org>, 2004, 2005.
#
#
msgid ""
msgstr ""
"Project-Id-Version: metacity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-01-09 21:23-0700\n"
"PO-Revision-Date: 2004-12-20 18:28-0400\n"
"POT-Creation-Date: 2005-10-04 00:04-0400\n"
"PO-Revision-Date: 2005-07-18 18:28-0400\n"
"Last-Translator: Adam Weinberger <adamw@gnome.org>\n"
"Language-Team: English/Canada <adamw@FreeBSD.org>\n"
"Language-Team: Canadian English <adamw@gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -59,7 +59,7 @@ msgstr ""
msgid "Failed to get hostname: %s\n"
msgstr "Failed to get hostname: %s\n"
#: src/display.c:306
#: src/display.c:307
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Failed to open X Window System display '%s'\n"
@@ -80,23 +80,23 @@ msgstr ""
msgid "Fatal IO error %d (%s) on display '%s'.\n"
msgstr "Fatal IO error %d (%s) on display '%s'.\n"
#: src/frames.c:1020
#: src/frames.c:1122
msgid "Close Window"
msgstr "Close Window"
#: src/frames.c:1023
#: src/frames.c:1125
msgid "Window Menu"
msgstr "Window Menu"
#: src/frames.c:1026
#: src/frames.c:1128
msgid "Minimize Window"
msgstr "Minimize Window"
#: src/frames.c:1029
#: src/frames.c:1131
msgid "Maximize Window"
msgstr "Maximize Window"
#: src/frames.c:1032
#: src/frames.c:1134
msgid "Unmaximize Window"
msgstr "Unmaximize Window"
@@ -109,30 +109,22 @@ msgstr ""
"Some other program is already using the key %s with modifiers %x as a "
"binding\n"
#: src/keybindings.c:2554
#: src/keybindings.c:2654
#, c-format
msgid "Error launching metacity-dialog to print an error about a command: %s\n"
msgstr ""
"Error launching metacity-dialogue to print an error about a command: %s\n"
#: src/keybindings.c:2659
#: src/keybindings.c:2759
#, c-format
msgid "No command %d has been defined.\n"
msgstr "No command %d has been defined.\n"
#: src/keybindings.c:3489
#: src/keybindings.c:3609
msgid "No terminal command has been defined.\n"
msgstr "No terminal command has been defined.\n"
#: src/main.c:69
msgid ""
"metacity [--sm-disable] [--sm-client-id=ID] [--sm-save-file=FILENAME] [--"
"display=DISPLAY] [--replace] [--version]\n"
msgstr ""
"metacity [--sm-disable] [--sm-client-id=ID] [--sm-save-file=FILENAME] [--"
"display=DISPLAY] [--replace] [--version]\n"
#: src/main.c:76
#, c-format
msgid ""
"metacity %s\n"
@@ -147,19 +139,43 @@ msgstr ""
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A "
"PARTICULAR PURPOSE.\n"
#: src/main.c:443
#: src/main.c:257
msgid "Disable connection to session manager"
msgstr "Disable connection to session manager"
#: src/main.c:263
msgid "Replace the running window manager with Metacity"
msgstr "Replace the running window manager with Metacity"
#: src/main.c:269
msgid "Specify session management ID"
msgstr "Specify session management ID"
#: src/main.c:274
msgid "X Display to use"
msgstr "X Display to use"
#: src/main.c:280
msgid "Initialize session from savefile"
msgstr "Initialize session from savefile"
#: src/main.c:286
msgid "Print version"
msgstr "Print version"
#: src/main.c:440
#, c-format
msgid "Failed to scan themes directory: %s\n"
msgstr "Failed to scan themes directory: %s\n"
#: src/main.c:459
#: src/main.c:456
#, c-format
msgid ""
"Could not find a theme! Be sure %s exists and contains the usual themes."
msgstr ""
"Could not find a theme! Be sure %s exists and contains the usual themes."
#: src/main.c:521
#: src/main.c:518
#, c-format
msgid "Failed to restart: %s\n"
msgstr "Failed to restart: %s\n"
@@ -203,12 +219,12 @@ msgstr "_Close"
#. separator
#: src/menu.c:66
msgid "Put on _All Workspaces"
msgstr "Put on _All Workspaces"
msgid "_Always on Visible Workspace"
msgstr "_Always on Visible Workspace"
#: src/menu.c:67
msgid "Only on _This Workspace"
msgstr "Only on _This Workspace"
msgid "_Only on This Workspace"
msgstr "_Only on This Workspace"
#: src/menu.c:68
msgid "Move to Workspace _Left"
@@ -226,7 +242,7 @@ msgstr "Move to Workspace _Up"
msgid "Move to Workspace _Down"
msgstr "Move to Workspace _Down"
#: src/menu.c:162 src/prefs.c:1942
#: src/menu.c:162 src/prefs.c:2106
#, c-format
msgid "Workspace %d"
msgstr "Workspace %d"
@@ -345,19 +361,19 @@ msgid ""
msgstr ""
"Forcing this application to quit will cause you to lose any unsaved changes."
#: src/metacity-dialog.c:128
#: src/metacity-dialog.c:129
msgid "_Force Quit"
msgstr "_Force Quit"
#: src/metacity-dialog.c:225
#: src/metacity-dialog.c:226
msgid "Title"
msgstr "Title"
#: src/metacity-dialog.c:237
#: src/metacity-dialog.c:238
msgid "Class"
msgstr "Class"
#: src/metacity-dialog.c:262
#: src/metacity-dialog.c:264
msgid ""
"These windows do not support \"save current setup\" and will have to be "
"restarted manually next time you log in."
@@ -365,7 +381,7 @@ msgstr ""
"These windows do not support \"save current setup\" and will have to be "
"restarted manually next time you log in."
#: src/metacity-dialog.c:323
#: src/metacity-dialog.c:330
#, c-format
msgid ""
"There was an error running \"%s\":\n"
@@ -483,11 +499,25 @@ msgstr "Hide all windows and focus desktop"
msgid ""
"If true, and the focus mode is either \"sloppy\" or \"mouse\" then the "
"focused window will be automatically raised after a delay (the delay is "
"specified by the auto_raise_delay key)."
"specified by the auto_raise_delay key). This preference is poorly named, but "
"kept for backwards compatibility. To try to be more clear (at least to the "
"technically inclined), its meaning is \"automatically raise the window "
"following a timeout which is triggered by non-grabbed mouse entry in sloppy "
"or mouse focus modes\". It is unrelated to clicking behavior (i.e. this is "
"not related to raise-on-click/orthogonal-raise). It is unrelated to entering "
"a window during drag and drop (because that results in the application "
"grabbing the mouse)"
msgstr ""
"If true, and the focus mode is either \"sloppy\" or \"mouse\" then the "
"If true, and the focus mode is either \"sloppy\" or \"mouse\", then the "
"focused window will be automatically raised after a delay (the delay is "
"specified by the auto_raise_delay key)."
"specified by the auto_raise_delay key). This preference is poorly named, but "
"kept for backwards compatibility. To try to be more clear (at least to the "
"technically inclined), its meaning is \"automatically raise the window "
"following a timeout which is triggered by non-grabbed mouse entry in sloppy "
"or mouse focus modes\". It is unrelated to clicking behaviour (i.e. this is "
"not related to raise-on-click/orthogonal-raise). It is unrelated to entering "
"a window during drag and drop (because that results in the application "
"grabbing the mouse)"
#: src/metacity.schemas.in.h:18
msgid ""
@@ -503,13 +533,15 @@ msgid ""
"\"direct manipulation\", by using wireframes, avoiding animations, or other "
"means. This is a significant reduction in usability for many users, but may "
"allow legacy applications and terminal servers to function when they would "
"otherwise be impractical."
"otherwise be impractical. However, the wireframe feature is disabled when "
"accessibility is on to avoid weird desktop breakages."
msgstr ""
"If true, metacity will give the user less feedback and less sense of "
"\"direct manipulation\", by using wireframes, avoiding animations, or other "
"means. This is a significant reduction in usability for many users, but may "
"allow legacy applications and terminal servers to function when they would "
"otherwise be impractical."
"otherwise be impractical. However, the wireframe feature is disabled when "
"accessibility is on to avoid weird desktop breakages."
#: src/metacity.schemas.in.h:20
msgid ""
@@ -1921,17 +1953,17 @@ msgstr "Window focus mode"
msgid "Window title font"
msgstr "Window title font"
#: src/prefs.c:476 src/prefs.c:492 src/prefs.c:508 src/prefs.c:524
#: src/prefs.c:540 src/prefs.c:560 src/prefs.c:576 src/prefs.c:592
#: src/prefs.c:608 src/prefs.c:624 src/prefs.c:640 src/prefs.c:656
#: src/prefs.c:672 src/prefs.c:689 src/prefs.c:705 src/prefs.c:721
#: src/prefs.c:737 src/prefs.c:753 src/prefs.c:768 src/prefs.c:783
#: src/prefs.c:798
#: src/prefs.c:528 src/prefs.c:544 src/prefs.c:560 src/prefs.c:576
#: src/prefs.c:592 src/prefs.c:612 src/prefs.c:628 src/prefs.c:644
#: src/prefs.c:660 src/prefs.c:676 src/prefs.c:692 src/prefs.c:708
#: src/prefs.c:724 src/prefs.c:741 src/prefs.c:757 src/prefs.c:773
#: src/prefs.c:789 src/prefs.c:805 src/prefs.c:820 src/prefs.c:835
#: src/prefs.c:850 src/prefs.c:866 src/prefs.c:882 src/prefs.c:898
#, c-format
msgid "GConf key \"%s\" is set to an invalid type\n"
msgstr "GConf key \"%s\" is set to an invalid type\n"
#: src/prefs.c:843
#: src/prefs.c:943
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for mouse button "
@@ -1940,17 +1972,17 @@ msgstr ""
"\"%s\" found in configuration database is not a valid value for mouse button "
"modifier\n"
#: src/prefs.c:867 src/prefs.c:1277
#: src/prefs.c:967 src/prefs.c:1428
#, c-format
msgid "GConf key '%s' is set to an invalid value\n"
msgstr "GConf key '%s' is set to an invalid value\n"
#: src/prefs.c:994
#: src/prefs.c:1145
#, c-format
msgid "Could not parse font description \"%s\" from GConf key %s\n"
msgstr "Could not parse font description \"%s\" from GConf key %s\n"
#: src/prefs.c:1179
#: src/prefs.c:1330
#, c-format
msgid ""
"%d stored in GConf key %s is not a reasonable number of workspaces, current "
@@ -1959,7 +1991,7 @@ msgstr ""
"%d stored in GConf key %s is not a reasonable number of workspaces, current "
"maximum is %d\n"
#: src/prefs.c:1239
#: src/prefs.c:1390
msgid ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
@@ -1967,17 +1999,17 @@ msgstr ""
"Workarounds for broken applications disabled. Some applications may not "
"behave properly.\n"
#: src/prefs.c:1304
#: src/prefs.c:1455
#, c-format
msgid "%d stored in GConf key %s is out of range 0 to %d\n"
msgstr "%d stored in GConf key %s is out of range 0 to %d\n"
#: src/prefs.c:1425
#: src/prefs.c:1589
#, c-format
msgid "Error setting number of workspaces to %d: %s\n"
msgstr "Error setting number of workspaces to %d: %s\n"
#: src/prefs.c:1669
#: src/prefs.c:1833
#, c-format
msgid ""
"\"%s\" found in configuration database is not a valid value for keybinding "
@@ -1986,7 +2018,7 @@ msgstr ""
"\"%s\" found in configuration database is not a valid value for keybinding "
"\"%s\"\n"
#: src/prefs.c:2023
#: src/prefs.c:2187
#, c-format
msgid "Error setting name for workspace %d to \"%s\": %s\n"
msgstr "Error setting name for workspace %d to \"%s\": %s\n"
@@ -2022,7 +2054,7 @@ msgstr ""
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "Screen %d on display \"%s\" already has a window manager\n"
#: src/screen.c:699
#: src/screen.c:716
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "Could not release screen %d on display \"%s\"\n"
@@ -2153,15 +2185,11 @@ msgstr ""
"Invalid title scale \"%s\" (must be one of xx-small,x-small,small,medium,"
"large,x-large,xx-large)\n"
#: src/theme-parser.c:729 src/theme-parser.c:737 src/theme-parser.c:2936
#: src/theme-parser.c:3025 src/theme-parser.c:3032 src/theme-parser.c:3039
#, c-format
msgid "No \"%s\" attribute on element <%s>"
msgstr "No \"%s\" attribute on element <%s>"
#: src/theme-parser.c:807 src/theme-parser.c:897 src/theme-parser.c:935
#: src/theme-parser.c:1012 src/theme-parser.c:1062 src/theme-parser.c:1070
#: src/theme-parser.c:1126 src/theme-parser.c:1134
#: src/theme-parser.c:729 src/theme-parser.c:737 src/theme-parser.c:807
#: src/theme-parser.c:897 src/theme-parser.c:935 src/theme-parser.c:1012
#: src/theme-parser.c:1062 src/theme-parser.c:1070 src/theme-parser.c:1126
#: src/theme-parser.c:1134 src/theme-parser.c:2936 src/theme-parser.c:3025
#: src/theme-parser.c:3032 src/theme-parser.c:3039
#, c-format
msgid "No \"%s\" attribute on <%s> element"
msgstr "No \"%s\" attribute on <%s> element"
@@ -2848,11 +2876,11 @@ msgstr "Button aspect ratio %g is not reasonable"
msgid "Frame geometry does not specify size of buttons"
msgstr "Frame geometry does not specify size of buttons"
#: src/theme.c:849
#: src/theme.c:843
msgid "Gradients should have at least two colors"
msgstr "Gradients should have at least two colours"
#: src/theme.c:975
#: src/theme.c:969
#, c-format
msgid ""
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
@@ -2861,7 +2889,7 @@ msgstr ""
"GTK colour specification must have the state in brackets, e.g. gtk:fg"
"[NORMAL] where NORMAL is the state; could not parse \"%s\""
#: src/theme.c:989
#: src/theme.c:983
#, c-format
msgid ""
"GTK color specification must have a close bracket after the state, e.g. gtk:"
@@ -2870,17 +2898,17 @@ msgstr ""
"GTK colour specification must have a close bracket after the state, e.g. gtk:"
"fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
#: src/theme.c:1000
#: src/theme.c:994
#, c-format
msgid "Did not understand state \"%s\" in color specification"
msgstr "Did not understand state \"%s\" in colour specification"
#: src/theme.c:1013
#: src/theme.c:1007
#, c-format
msgid "Did not understand color component \"%s\" in color specification"
msgstr "Did not understand colour component \"%s\" in colour specification"
#: src/theme.c:1043
#: src/theme.c:1037
#, c-format
msgid ""
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
@@ -2889,44 +2917,44 @@ msgstr ""
"Blend format is \"blend/bg_colour/fg_colour/alpha\", \"%s\" does not fit the "
"format"
#: src/theme.c:1054
#: src/theme.c:1048
#, c-format
msgid "Could not parse alpha value \"%s\" in blended color"
msgstr "Could not parse alpha value \"%s\" in blended colour"
#: src/theme.c:1064
#: src/theme.c:1058
#, c-format
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
msgstr "Alpha value \"%s\" in blended colour is not between 0.0 and 1.0"
#: src/theme.c:1111
#: src/theme.c:1105
#, c-format
msgid ""
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
msgstr ""
"Shade format is \"shade/base_colour/factor\", \"%s\" does not fit the format"
#: src/theme.c:1122
#: src/theme.c:1116
#, c-format
msgid "Could not parse shade factor \"%s\" in shaded color"
msgstr "Could not parse shade factor \"%s\" in shaded colour"
#: src/theme.c:1132
#: src/theme.c:1126
#, c-format
msgid "Shade factor \"%s\" in shaded color is negative"
msgstr "Shade factor \"%s\" in shaded colour is negative"
#: src/theme.c:1161
#: src/theme.c:1155
#, c-format
msgid "Could not parse color \"%s\""
msgstr "Could not parse colour \"%s\""
#: src/theme.c:1423
#: src/theme.c:1417
#, c-format
msgid "Coordinate expression contains character '%s' which is not allowed"
msgstr "Coordinate expression contains character '%s' which is not allowed"
#: src/theme.c:1450
#: src/theme.c:1444
#, c-format
msgid ""
"Coordinate expression contains floating point number '%s' which could not be "
@@ -2935,12 +2963,12 @@ msgstr ""
"Coordinate expression contains floating point number '%s' which could not be "
"parsed"
#: src/theme.c:1464
#: src/theme.c:1458
#, c-format
msgid "Coordinate expression contains integer '%s' which could not be parsed"
msgstr "Coordinate expression contains integer '%s' which could not be parsed"
#: src/theme.c:1531
#: src/theme.c:1525
#, c-format
msgid ""
"Coordinate expression contained unknown operator at the start of this text: "
@@ -2949,36 +2977,36 @@ msgstr ""
"Coordinate expression contained unknown operator at the start of this text: "
"\"%s\""
#: src/theme.c:1588
#: src/theme.c:1582
msgid "Coordinate expression was empty or not understood"
msgstr "Coordinate expression was empty or not understood"
#: src/theme.c:1731 src/theme.c:1741 src/theme.c:1775
#: src/theme.c:1725 src/theme.c:1735 src/theme.c:1769
msgid "Coordinate expression results in division by zero"
msgstr "Coordinate expression results in division by zero"
#: src/theme.c:1783
#: src/theme.c:1777
msgid ""
"Coordinate expression tries to use mod operator on a floating-point number"
msgstr ""
"Coordinate expression tries to use mod operator on a floating-point number"
#: src/theme.c:1840
#: src/theme.c:1834
#, c-format
msgid ""
"Coordinate expression has an operator \"%s\" where an operand was expected"
msgstr ""
"Coordinate expression has an operator \"%s\" where an operand was expected"
#: src/theme.c:1849
#: src/theme.c:1843
msgid "Coordinate expression had an operand where an operator was expected"
msgstr "Coordinate expression had an operand where an operator was expected"
#: src/theme.c:1857
#: src/theme.c:1851
msgid "Coordinate expression ended with an operator instead of an operand"
msgstr "Coordinate expression ended with an operator instead of an operand"
#: src/theme.c:1867
#: src/theme.c:1861
#, c-format
msgid ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
@@ -2987,7 +3015,7 @@ msgstr ""
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
"operand in between"
#: src/theme.c:1986
#: src/theme.c:1980
msgid ""
"Coordinate expression parser overflowed its buffer, this is really a "
"Metacity bug, but are you sure you need a huge expression like that?"
@@ -2995,30 +3023,30 @@ msgstr ""
"Coordinate expression parser overflowed its buffer, this is really a "
"Metacity bug, but are you sure you need a huge expression like that?"
#: src/theme.c:2015
#: src/theme.c:2009
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
msgstr "Coordinate expression had a close parenthesis with no open parenthesis"
#: src/theme.c:2078
#: src/theme.c:2072
#, c-format
msgid "Coordinate expression had unknown variable or constant \"%s\""
msgstr "Coordinate expression had unknown variable or constant \"%s\""
#: src/theme.c:2135
#: src/theme.c:2129
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
msgstr ""
"Coordinate expression had an open parenthesis with no close parenthesis"
#: src/theme.c:2146
#: src/theme.c:2140
msgid "Coordinate expression doesn't seem to have any operators or operands"
msgstr "Coordinate expression doesn't seem to have any operators or operands"
#: src/theme.c:2390 src/theme.c:2412 src/theme.c:2433
#: src/theme.c:2384 src/theme.c:2406 src/theme.c:2427
#, c-format
msgid "Theme contained an expression \"%s\" that resulted in an error: %s\n"
msgstr "Theme contained an expression \"%s\" that resulted in an error: %s\n"
#: src/theme.c:3919
#: src/theme.c:3913
#, c-format
msgid ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
@@ -3027,25 +3055,25 @@ msgstr ""
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
"specified for this frame style"
#: src/theme.c:4369 src/theme.c:4401
#: src/theme.c:4363 src/theme.c:4395
#, c-format
msgid ""
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
msgstr ""
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
#: src/theme.c:4452
#: src/theme.c:4446
#, c-format
msgid "Failed to load theme \"%s\": %s\n"
msgstr "Failed to load theme \"%s\": %s\n"
#: src/theme.c:4598 src/theme.c:4605 src/theme.c:4612 src/theme.c:4619
#: src/theme.c:4626
#: src/theme.c:4592 src/theme.c:4599 src/theme.c:4606 src/theme.c:4613
#: src/theme.c:4620
#, c-format
msgid "No <%s> set for theme \"%s\""
msgstr "No <%s> set for theme \"%s\""
#: src/theme.c:4636
#: src/theme.c:4630
#, c-format
msgid ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
@@ -3054,7 +3082,7 @@ msgstr ""
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
"type=\"%s\" style_set=\"whatever\"/> element"
#: src/theme.c:4658
#: src/theme.c:4652
#, c-format
msgid ""
"<menu_icon function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
@@ -3063,14 +3091,14 @@ msgstr ""
"<menu_icon function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
"specified for this theme"
#: src/theme.c:5047 src/theme.c:5109
#: src/theme.c:5041 src/theme.c:5103
#, c-format
msgid ""
"User-defined constants must begin with a capital letter; \"%s\" does not"
msgstr ""
"User-defined constants must begin with a capital letter; \"%s\" does not"
#: src/theme.c:5055 src/theme.c:5117
#: src/theme.c:5049 src/theme.c:5111
#, c-format
msgid "Constant \"%s\" has already been defined"
msgstr "Constant \"%s\" has already been defined"
@@ -3090,19 +3118,19 @@ msgstr "Failed to fdopen() log file %s: %s\n"
msgid "Opened log file %s\n"
msgstr "Opened log file %s\n"
#: src/util.c:203
#: src/util.c:217
msgid "Window manager: "
msgstr "Window manager: "
#: src/util.c:349
#: src/util.c:363
msgid "Bug in window manager: "
msgstr "Bug in window manager: "
#: src/util.c:378
#: src/util.c:392
msgid "Window manager warning: "
msgstr "Window manager warning: "
#: src/util.c:402
#: src/util.c:416
msgid "Window manager error: "
msgstr "Window manager error: "
@@ -3112,7 +3140,7 @@ msgid "Application set a bogus _NET_WM_PID %ld\n"
msgstr "Application set a bogus _NET_WM_PID %ld\n"
#. first time through
#: src/window.c:4829
#: src/window.c:5208
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@@ -3128,7 +3156,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: src/window.c:5500
#: src/window.c:5879
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"

File diff suppressed because it is too large Load Diff

1826
po/es.po

File diff suppressed because it is too large Load Diff

1283
po/et.po

File diff suppressed because it is too large Load Diff

1106
po/eu.po

File diff suppressed because it is too large Load Diff

2374
po/fa.po

File diff suppressed because it is too large Load Diff

1102
po/fi.po

File diff suppressed because it is too large Load Diff

1110
po/fr.po

File diff suppressed because it is too large Load Diff

1048
po/ga.po

File diff suppressed because it is too large Load Diff

2493
po/gl.po

File diff suppressed because it is too large Load Diff

1463
po/gu.po

File diff suppressed because it is too large Load Diff

1151
po/he.po

File diff suppressed because it is too large Load Diff

1170
po/hi.po

File diff suppressed because it is too large Load Diff

1070
po/hr.po

File diff suppressed because it is too large Load Diff

2073
po/hu.po

File diff suppressed because it is too large Load Diff

2853
po/hy.po Normal file

File diff suppressed because it is too large Load Diff

1604
po/id.po

File diff suppressed because it is too large Load Diff

1062
po/is.po

File diff suppressed because it is too large Load Diff

1089
po/it.po

File diff suppressed because it is too large Load Diff

1086
po/ja.po

File diff suppressed because it is too large Load Diff

1164
po/ko.po

File diff suppressed because it is too large Load Diff

2668
po/ku.po Normal file

File diff suppressed because it is too large Load Diff

1167
po/lt.po

File diff suppressed because it is too large Load Diff

1088
po/lv.po

File diff suppressed because it is too large Load Diff

1338
po/mk.po

File diff suppressed because it is too large Load Diff

1057
po/ml.po

File diff suppressed because it is too large Load Diff

1070
po/mn.po

File diff suppressed because it is too large Load Diff

1069
po/ms.po

File diff suppressed because it is too large Load Diff

1600
po/nb.po

File diff suppressed because it is too large Load Diff

3133
po/ne.po Normal file

File diff suppressed because it is too large Load Diff

1168
po/nl.po

File diff suppressed because it is too large Load Diff

1083
po/nn.po

File diff suppressed because it is too large Load Diff

1600
po/no.po

File diff suppressed because it is too large Load Diff

1063
po/or.po

File diff suppressed because it is too large Load Diff

1787
po/pa.po

File diff suppressed because it is too large Load Diff

1110
po/pl.po

File diff suppressed because it is too large Load Diff

1102
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1993
po/ro.po

File diff suppressed because it is too large Load Diff

1139
po/ru.po

File diff suppressed because it is too large Load Diff

3240
po/rw.po Normal file

File diff suppressed because it is too large Load Diff

1802
po/sk.po

File diff suppressed because it is too large Load Diff

1093
po/sl.po

File diff suppressed because it is too large Load Diff

1079
po/sq.po

File diff suppressed because it is too large Load Diff

1094
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1081
po/sv.po

File diff suppressed because it is too large Load Diff

1063
po/ta.po

File diff suppressed because it is too large Load Diff

1125
po/th.po

File diff suppressed because it is too large Load Diff

1033
po/tk.po

File diff suppressed because it is too large Load Diff

1072
po/tr.po

File diff suppressed because it is too large Load Diff

1427
po/uk.po

File diff suppressed because it is too large Load Diff

2267
po/vi.po

File diff suppressed because it is too large Load Diff

1068
po/wa.po

File diff suppressed because it is too large Load Diff

3294
po/xh.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -59,3 +59,4 @@ Tracking bugs
moving/resizing (constraints): http://bugzilla.gnome.org/show_bug.cgi?id=155458
window placement: http://bugzilla.gnome.org/show_bug.cgi?id=155460
logout/system-monitor keys: http://bugzilla.gnome.org/show_bug.cgi?id=155462
modal dialogs: http://bugzilla.gnome.org/show_bug.cgi?id=164841

View File

@@ -5,6 +5,7 @@ Makefile
metacity
metacity-theme-viewer
metacity-dialog
testboxes
testgradient
inlinepixbufs.h
metacity.desktop

View File

@@ -13,6 +13,8 @@ metacity_SOURCES= \
async-getprop.h \
bell.h \
bell.c \
boxes.h \
boxes.c \
common.h \
compositor.c \
compositor.h \
@@ -25,6 +27,8 @@ metacity_SOURCES= \
display.h \
draw-workspace.c \
draw-workspace.h \
edge-resistance.c \
edge-resistance.h \
effects.c \
effects.h \
errors.c \
@@ -133,11 +137,13 @@ metacity_LDADD=@METACITY_LIBS@ $(EFENCE)
metacity_theme_viewer_LDADD= @METACITY_LIBS@ libmetacity-private.la
metacity_dialog_LDADD=@METACITY_LIBS@
testboxes_SOURCES=util.h util.c boxes.h boxes.c testboxes.c
testgradient_SOURCES=gradient.h gradient.c testgradient.c
testasyncgetprop_SOURCES=async-getprop.h async-getprop.c testasyncgetprop.c
noinst_PROGRAMS=testgradient testasyncgetprop
noinst_PROGRAMS=testboxes testgradient testasyncgetprop
testboxes_LDADD= @METACITY_LIBS@
testgradient_LDADD= @METACITY_LIBS@
testasyncgetprop_LDADD= @METACITY_LIBS@

View File

@@ -2,6 +2,7 @@
/*
* Copyright (C) 2002 Sun Microsystems Inc.
* Copyright (C) 2005 Elijah Newren
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -29,8 +30,8 @@ meta_bell_flash_screen (MetaDisplay *display,
MetaScreen *screen)
{
Window root = screen->xroot;
int width = screen->width;
int height = screen->height;
int width = screen->rect.width;
int height = screen->rect.height;
if (screen->flash_window == None)
{
@@ -77,7 +78,12 @@ meta_bell_flash_screen (MetaDisplay *display,
XFlush (display->xdisplay);
XSync (display->xdisplay, False);
XUnmapWindow (display->xdisplay, screen->flash_window);
XFreeGC (display->xdisplay, gc);
}
if (meta_prefs_get_focus_mode () != META_FOCUS_MODE_CLICK &&
!display->mouse_mode)
meta_display_increment_focus_sentinel (display);
XFlush (display->xdisplay);
}

1745
src/boxes.c Normal file

File diff suppressed because it is too large Load Diff

239
src/boxes.h Normal file
View File

@@ -0,0 +1,239 @@
/* Simple box operations */
/*
* Copyright (C) 2005 Elijah Newren
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/
#ifndef META_BOXES_H
#define META_BOXES_H
#include <glib.h>
#include "common.h"
typedef struct _MetaRectangle MetaRectangle;
struct _MetaRectangle
{
int x;
int y;
int width;
int height;
};
#define BOX_LEFT(box) ((box).x) /* Leftmost pixel of rect */
#define BOX_RIGHT(box) ((box).x + (box).width) /* One pixel past right */
#define BOX_TOP(box) ((box).y) /* Topmost pixel of rect */
#define BOX_BOTTOM(box) ((box).y + (box).height) /* One pixel past bottom */
typedef enum
{
FIXED_DIRECTION_X = 1 << 0,
FIXED_DIRECTION_Y = 1 << 1,
} FixedDirections;
typedef enum
{
META_EDGE_WINDOW,
META_EDGE_XINERAMA,
META_EDGE_SCREEN
} MetaEdgeType;
typedef struct _MetaEdge MetaEdge;
struct _MetaEdge
{
MetaRectangle rect; /* width or height should be 1 */
MetaDirection side_type; /* should only have 1 of the 4 directions set */
MetaEdgeType edge_type;
};
/* Output functions -- note that the output buffer had better be big enough:
* rect_to_string: RECT_LENGTH
* region_to_string: (RECT_LENGTH+strlen(separator_string)) *
* g_list_length (region)
* edge_to_string: EDGE_LENGTH
* edge_list_to_...: (EDGE_LENGTH+strlen(separator_string)) *
* g_list_length (edge_list)
*/
#define RECT_LENGTH 27
#define EDGE_LENGTH 37
char* meta_rectangle_to_string (const MetaRectangle *rect,
char *output);
char* meta_rectangle_region_to_string (GList *region,
const char *separator_string,
char *output);
char* meta_rectangle_edge_to_string (const MetaEdge *edge,
char *output);
char* meta_rectangle_edge_list_to_string (
GList *edge_list,
const char *separator_string,
char *output);
/* Function to make initializing a rect with a single line of code easy */
MetaRectangle meta_rect (int x, int y, int width, int height);
/* Basic comparison functions */
int meta_rectangle_area (const MetaRectangle *rect);
gboolean meta_rectangle_intersect (const MetaRectangle *src1,
const MetaRectangle *src2,
MetaRectangle *dest);
gboolean meta_rectangle_equal (const MetaRectangle *src1,
const MetaRectangle *src2);
/* overlap is similar to intersect but doesn't provide location of
* intersection information.
*/
gboolean meta_rectangle_overlap (const MetaRectangle *rect1,
const MetaRectangle *rect2);
/* vert_overlap means ignore the horizontal location and ask if the
* vertical parts overlap. An alternate way to think of it is "Does there
* exist a way to shift either rect horizontally so that the two rects
* overlap?" horiz_overlap is similar.
*/
gboolean meta_rectangle_vert_overlap (const MetaRectangle *rect1,
const MetaRectangle *rect2);
gboolean meta_rectangle_horiz_overlap (const MetaRectangle *rect1,
const MetaRectangle *rect2);
/* could_fit_rect determines whether "outer_rect" is big enough to contain
* inner_rect. contains_rect checks whether it actually contains it.
*/
gboolean meta_rectangle_could_fit_rect (const MetaRectangle *outer_rect,
const MetaRectangle *inner_rect);
gboolean meta_rectangle_contains_rect (const MetaRectangle *outer_rect,
const MetaRectangle *inner_rect);
/* Resize old_rect to the given new_width and new_height, but store the
* result in rect. NOTE THAT THIS IS RESIZE ONLY SO IT CANNOT BE USED FOR
* A MOVERESIZE OPERATION (that simplies the routine a little bit as it
* means there's no difference between NorthWestGravity and StaticGravity.
* Also, I lied a little bit--technically, you could use it in a MoveResize
* operation if you muck with old_rect just right).
*/
void meta_rectangle_resize_with_gravity (const MetaRectangle *old_rect,
MetaRectangle *rect,
int gravity,
int new_width,
int new_height);
/* find a list of rectangles with the property that a window is contained
* in the given region if and only if it is contained in one of the
* rectangles in the list.
*
* In this case, the region is given by taking basic_rect, removing from
* it the intersections with all the rectangles in the all_struts list,
* then expanding all the rectangles in the resulting list by the given
* amounts on each side.
*
* See boxes.c for more details.
*/
GList* meta_rectangle_get_minimal_spanning_set_for_region (
const MetaRectangle *basic_rect,
const GSList *all_struts);
GList* meta_rectangle_expand_region (GList *region,
const int left_expand,
const int right_expand,
const int top_expand,
const int bottom_expand);
/* Free the list created by
* meta_rectangle_get_minimal_spanning_set_for_region()
* or
* meta_rectangle_find_onscreen_edges ()
* or
* meta_rectangle_find_nonintersected_xinerama_edges()
*/
void meta_rectangle_free_list_and_elements (GList *filled_list);
/* could_fit_in_region determines whether one of the spanning_rects is
* big enough to contain rect. contained_in_region checks whether one
* actually contains it.
*/
gboolean meta_rectangle_could_fit_in_region (
const GList *spanning_rects,
const MetaRectangle *rect);
gboolean meta_rectangle_contained_in_region (
const GList *spanning_rects,
const MetaRectangle *rect);
/* Make the rectangle small enough to fit into one of the spanning_rects,
* but make it no smaller than min_size.
*/
void meta_rectangle_clamp_to_fit_into_region (
const GList *spanning_rects,
FixedDirections fixed_directions,
MetaRectangle *rect,
const MetaRectangle *min_size);
/* Clip the rectangle so that it fits into one of the spanning_rects, assuming
* it overlaps with at least one of them
*/
void meta_rectangle_clip_to_region (const GList *spanning_rects,
FixedDirections fixed_directions,
MetaRectangle *rect);
/* Shove the rectangle into one of the spanning_rects, assuming it fits in
* one of them.
*/
void meta_rectangle_shove_into_region(
const GList *spanning_rects,
FixedDirections fixed_directions,
MetaRectangle *rect);
/* Finds the point on the line connecting (x1,y1) to (x2,y2) which is closest
* to (px, py). Useful for finding an optimal rectangle size when given a
* range between two sizes that are all candidates.
*/
void meta_rectangle_find_linepoint_closest_to_point (double x1, double y1,
double x2, double y2,
double px, double py,
double *valx, double *valy);
/***************************************************************************/
/* */
/* Switching gears to code for edges instead of just rectangles */
/* */
/***************************************************************************/
/* Compare two edges, so that sorting functions can put a list of edges in
* canonical order.
*/
gint meta_rectangle_edge_cmp (gconstpointer a, gconstpointer b);
/* Removes an parts of edges in the given list that intersect any box in the
* given rectangle list. Returns the result.
*/
GList* meta_rectangle_remove_intersections_with_boxes_from_edges (
GList *edges,
const GSList *rectangles);
/* Finds all the edges of an onscreen region, returning a GList* of
* MetaEdgeRect's.
*/
GList* meta_rectangle_find_onscreen_edges (const MetaRectangle *basic_rect,
const GSList *all_struts);
/* Finds edges between adjacent xineramas which are not covered by the given
* struts.
*/
GList* meta_rectangle_find_nonintersected_xinerama_edges (
const GList *xinerama_rects,
const GSList *all_struts);
#endif /* META_BOXES_H */

View File

@@ -2,6 +2,7 @@
/*
* Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2005 Elijah Newren
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -64,7 +65,8 @@ typedef enum
META_MENU_OP_MOVE_LEFT = 1 << 13,
META_MENU_OP_MOVE_RIGHT = 1 << 14,
META_MENU_OP_MOVE_UP = 1 << 15,
META_MENU_OP_MOVE_DOWN = 1 << 16
META_MENU_OP_MOVE_DOWN = 1 << 16,
META_MENU_OP_RECOVER = 1 << 17
} MetaMenuOp;
typedef struct _MetaWindowMenu MetaWindowMenu;
@@ -184,6 +186,22 @@ typedef enum
META_VIRTUAL_MOD5_MASK = 1 << 14
} MetaVirtualModifier;
/* Relative directions or sides seem to come up all over the place... */
/* FIXME: Replace
* place.[ch]:MetaWindowEdgePosition,
* screen.[ch]:MetaScreenDirection,
* workspace.[ch]:MetaMotionDirection,
* with the use of MetaDirection.
*/
typedef enum
{
META_DIRECTION_LEFT = 1 << 0,
META_DIRECTION_RIGHT = 1 << 1,
META_DIRECTION_TOP = 1 << 2,
META_DIRECTION_BOTTOM = 1 << 3,
META_DIRECTION_UP = 1 << 2, /* Alternate name for TOP */
META_DIRECTION_DOWN = 1 << 3 /* Alternate name for BOTTOM */
} MetaDirection;
/* Function a window button can have. Note, you can't add stuff here
* without extending the theme format to draw a new function and
@@ -226,7 +244,3 @@ struct _MetaButtonLayout
(ycoord) < ((rect).y + (rect).height))
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -2,6 +2,7 @@
/*
* Copyright (C) 2002 Red Hat, Inc.
* Copyright (C) 2005 Elijah Newren
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -28,32 +29,18 @@
typedef enum
{
META_RESIZE_LEFT_OR_TOP,
META_RESIZE_CENTER,
META_RESIZE_RIGHT_OR_BOTTOM
} MetaResizeDirection;
META_IS_CONFIGURE_REQUEST = 1 << 0,
META_DO_GRAVITY_ADJUST = 1 << 1,
META_IS_USER_ACTION = 1 << 2,
META_IS_MOVE_ACTION = 1 << 3,
META_IS_RESIZE_ACTION = 1 << 4
} MetaMoveResizeFlags;
void meta_window_constrain (MetaWindow *window,
MetaFrameGeometry *fgeom,
MetaFrameGeometry *orig_fgeom,
MetaMoveResizeFlags flags,
int resize_gravity,
const MetaRectangle *orig,
int x_move_delta,
int y_move_delta,
MetaResizeDirection x_direction,
int x_delta,
MetaResizeDirection y_direction,
int y_delta,
MetaRectangle *new);
MetaResizeDirection meta_x_direction_from_gravity (int gravity);
MetaResizeDirection meta_y_direction_from_gravity (int gravity);
#endif /* META_CONSTRAINTS_H */

View File

@@ -3,6 +3,7 @@
/*
* Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2003 Rob Adams
* Copyright (C) 2004, 2005 Elijah Newren
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -47,6 +48,23 @@ meta_core_get_client_size (Display *xdisplay,
*height = window->rect.height;
}
gboolean
meta_core_titlebar_is_onscreen (Display *xdisplay,
Window frame_xwindow)
{
MetaDisplay *display;
MetaWindow *window;
display = meta_display_for_x_display (xdisplay);
window = meta_display_lookup_x_window (display, frame_xwindow);
if (window == NULL || window->frame == NULL)
meta_bug ("No such frame window 0x%lx!\n", frame_xwindow);
return meta_window_titlebar_is_onscreen (window);
}
Window
meta_core_get_client_xwindow (Display *xdisplay,
Window frame_xwindow)
@@ -370,7 +388,8 @@ meta_core_maximize (Display *xdisplay,
if (window == NULL || window->frame == NULL)
meta_bug ("No such frame window 0x%lx!\n", frame_xwindow);
meta_window_maximize (window);
meta_window_maximize (window,
META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_VERTICAL);
}
void
@@ -386,10 +405,12 @@ meta_core_toggle_maximize (Display *xdisplay,
if (window == NULL || window->frame == NULL)
meta_bug ("No such frame window 0x%lx!\n", frame_xwindow);
if (window->maximized)
meta_window_unmaximize (window);
if (META_WINDOW_MAXIMIZED (window))
meta_window_unmaximize (window,
META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_VERTICAL);
else
meta_window_maximize (window);
meta_window_maximize (window,
META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_VERTICAL);
}
void
@@ -405,7 +426,8 @@ meta_core_unmaximize (Display *xdisplay,
if (window == NULL || window->frame == NULL)
meta_bug ("No such frame window 0x%lx!\n", frame_xwindow);
meta_window_unmaximize (window);
meta_window_unmaximize (window,
META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_VERTICAL);
}
void
@@ -690,6 +712,9 @@ meta_core_get_menu_accelerator (MetaMenuOp menu_op,
case META_MENU_OP_MOVE_DOWN:
name = META_KEYBINDING_MOVE_WORKSPACE_DOWN;
break;
case META_MENU_OP_RECOVER:
/* No keybinding for this one */
break;
}
if (name)
@@ -851,9 +876,9 @@ meta_core_get_screen_size (Display *xdisplay,
meta_bug ("No such frame window 0x%lx!\n", frame_on_screen);
if (width)
*width = window->screen->width;
*width = window->screen->rect.width;
if (height)
*height = window->screen->height;
*height = window->screen->rect.height;
}
void

View File

@@ -2,6 +2,7 @@
/*
* Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2005 Elijah Newren
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -31,6 +32,9 @@ void meta_core_get_client_size (Display *xdisplay,
int *width,
int *height);
gboolean meta_core_titlebar_is_onscreen (Display *xdisplay,
Window frame_xwindow);
Window meta_core_get_client_xwindow (Display *xdisplay,
Window frame_xwindow);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 B

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -2,6 +2,7 @@
/*
* Copyright (C) 2001, 2002 Havoc Pennington
* Copyright (C) 2004 Elijah Newren
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as

View File

@@ -4,6 +4,7 @@
* Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
* Copyright (C) 2003, 2004 Rob Adams
* Copyright (C) 2004, 2005 Elijah Newren
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -59,10 +60,19 @@
#ifdef HAVE_XKB
#include <X11/XKBlib.h>
#endif
#ifdef HAVE_XCURSOR
#include <X11/Xcursor/Xcursor.h>
#endif
#include <string.h>
#define USE_GDK_DISPLAY
#define GRAB_OP_IS_WINDOW_SWITCH(g) \
(g == META_GRAB_OP_KEYBOARD_TABBING_NORMAL || \
g == META_GRAB_OP_KEYBOARD_TABBING_DOCK || \
g == META_GRAB_OP_KEYBOARD_ESCAPING_NORMAL || \
g == META_GRAB_OP_KEYBOARD_ESCAPING_DOCK)
typedef struct
{
MetaDisplay *display;
@@ -109,19 +119,8 @@ static void update_window_grab_modifiers (MetaDisplay *display);
static void prefs_changed_callback (MetaPreference pref,
void *data);
static void
set_utf8_string_hint (MetaDisplay *display,
Window xwindow,
Atom atom,
const char *val)
{
meta_error_trap_push (display);
XChangeProperty (display->xdisplay,
xwindow, atom,
display->atom_utf8_string,
8, PropModeReplace, (guchar*) val, strlen (val));
meta_error_trap_pop (display, FALSE);
}
static void sanity_check_timestamps (MetaDisplay *display,
Time known_good_timestamp);
static void
ping_data_free (MetaPingData *ping_data)
@@ -289,7 +288,10 @@ meta_display_open (const char *name)
"_NET_RESTACK_WINDOW",
"_NET_MOVERESIZE_WINDOW",
"_NET_DESKTOP_GEOMETRY",
"_NET_DESKTOP_VIEWPORT"
"_NET_DESKTOP_VIEWPORT",
"_METACITY_VERSION",
"_NET_WM_VISIBLE_NAME",
"_NET_WM_VISIBLE_ICON_NAME"
};
Atom atoms[G_N_ELEMENTS(atom_names)];
@@ -331,6 +333,9 @@ meta_display_open (const char *name)
display->autoraise_window = NULL;
display->focus_window = NULL;
display->expected_focus_window = NULL;
display->grab_old_window_stacking = NULL;
display->mouse_mode = TRUE; /* Only relevant for mouse or sloppy focus */
#ifdef HAVE_XSYNC
display->grab_sync_request_alarm = None;
@@ -443,6 +448,9 @@ meta_display_open (const char *name)
display->atom_net_moveresize_window = atoms[88];
display->atom_net_desktop_geometry = atoms[89];
display->atom_net_desktop_viewport = atoms[90];
display->atom_metacity_version = atoms[91];
display->atom_net_wm_visible_name = atoms[92];
display->atom_net_wm_visible_icon_name = atoms[93];
display->prop_hooks = NULL;
meta_display_init_window_prop_hooks (display);
@@ -511,6 +519,8 @@ meta_display_open (const char *name)
display->grab_screen = NULL;
display->grab_resize_popup = NULL;
display->grab_edge_resistance_data = NULL;
#ifdef HAVE_XSYNC
{
int major, minor;
@@ -595,7 +605,16 @@ meta_display_open (const char *name)
#else /* HAVE_RENDER */
meta_verbose ("Not compiled with Render support\n");
#endif /* !HAVE_RENDER */
#ifdef HAVE_XCURSOR
{
XcursorSetTheme (display->xdisplay, meta_prefs_get_cursor_theme ());
XcursorSetDefaultSize (display->xdisplay, meta_prefs_get_cursor_size ());
}
#else /* HAVE_XCURSOR */
meta_verbose ("Not compiled with Xcursor support\n");
#endif /* !HAVE_XCURSOR */
/* Create the leader window here. Set its properties and
* use the timestamp from one of the PropertyNotify events
* that will follow.
@@ -611,11 +630,16 @@ meta_display_open (const char *name)
display->leader_window = meta_create_offscreen_window (display->xdisplay,
DefaultRootWindow (display->xdisplay));
set_utf8_string_hint (display,
display->leader_window,
display->atom_net_wm_name,
"Metacity");
meta_prop_set_utf8_string_hint (display,
display->leader_window,
display->atom_net_wm_name,
"Metacity");
meta_prop_set_utf8_string_hint (display,
display->leader_window,
display->atom_metacity_version,
VERSION);
data[0] = display->leader_window;
XChangeProperty (display->xdisplay,
display->leader_window,
@@ -632,6 +656,7 @@ meta_display_open (const char *name)
}
display->last_focus_time = timestamp;
display->last_user_time = timestamp;
display->compositor = meta_compositor_new (display);
screens = NULL;
@@ -790,6 +815,9 @@ meta_display_close (MetaDisplay *display)
meta_prefs_remove_listener (prefs_changed_callback, display);
meta_display_remove_autoraise_callback (display);
if (display->grab_old_window_stacking)
g_list_free (display->grab_old_window_stacking);
#ifdef USE_GDK_DISPLAY
/* Stop caring about events */
@@ -1130,6 +1158,8 @@ meta_display_get_current_time_roundtrip (MetaDisplay *display)
timestamp = property_event.xproperty.time;
}
sanity_check_timestamps (display, timestamp);
return timestamp;
}
@@ -1308,6 +1338,15 @@ handle_net_moveresize_window (MetaDisplay* display,
if (window)
{
/* FIXME!!!! I'm pretty sure this is wrong except _maybe_ for the
* resize-only case; see comment at beginning of
* meta_window_move_resize_internal(). Basically, this should act
* like a configure request--meaning that it should count as an app
* specified change instead of a user one, and the position needs to
* be fixed up with adjust_for_gravity(). In particular,
* meta_window_resize_with_gravity(), meta_window_resize(), and
* meta_window_move_resize() should probably NOT be called.
*/
meta_window_get_gravity_position (window, &x, &y);
width = window->rect.width;
height = window->rect.height;
@@ -1363,10 +1402,14 @@ handle_net_restack_window (MetaDisplay* display,
if (window)
{
/*
* The EWMH includes a sibling for the restack request, but we
* don't currently support these types of raises.
/* FIXME: The EWMH includes a sibling for the restack request, but we
* (stupidly) don't currently support these types of raises.
*
* Also, unconditionally following these is REALLY stupid--we should
* combine this code with the stuff in
* meta_window_configure_request() which is smart about whether to
* follow the request or do something else (though not smart enough
* and is also too stupid to handle the sibling stuff).
*/
switch (event->xclient.data.l[2])
{
@@ -1547,11 +1590,8 @@ event_callback (XEvent *event,
if (window && ((event->type == KeyPress) || (event->type == ButtonPress)))
{
g_assert (CurrentTime != display->current_time);
meta_topic (META_DEBUG_WINDOW_STATE,
"Metacity set %s's net_wm_user_time to %d.\n",
window->desc, display->current_time);
window->net_wm_user_time_set = TRUE;
window->net_wm_user_time = display->current_time;
meta_window_set_user_time (window, display->current_time);
sanity_check_timestamps (display, display->current_time);
}
switch (event->type)
@@ -1574,6 +1614,16 @@ event_callback (XEvent *event,
(display->grab_window ?
display->grab_window->desc :
"none"));
if (GRAB_OP_IS_WINDOW_SWITCH (display->grab_op))
{
MetaScreen *screen;
meta_topic (META_DEBUG_WINDOW_OPS,
"Syncing to old stack positions.\n");
screen =
meta_display_screen_for_root (display, event->xany.window);
meta_stack_set_positions (screen->stack,
display->grab_old_window_stacking);
}
meta_display_end_grab_op (display,
event->xbutton.time);
}
@@ -1635,36 +1685,49 @@ event_callback (XEvent *event,
{
if (window->has_resize_func)
{
gboolean north;
gboolean west;
gboolean north, south;
gboolean west, east;
int root_x, root_y;
MetaGrabOp op;
meta_window_get_position (window, &root_x, &root_y);
west = event->xbutton.x_root < (root_x + window->rect.width / 2);
north = event->xbutton.y_root < (root_y + window->rect.height / 2);
west = event->xbutton.x_root < (root_x + 1 * window->rect.width / 3);
east = event->xbutton.x_root > (root_x + 2 * window->rect.width / 3);
north = event->xbutton.y_root < (root_y + 1 * window->rect.height / 3);
south = event->xbutton.y_root > (root_y + 2 * window->rect.height / 3);
if (west && north)
if (north && west)
op = META_GRAB_OP_RESIZING_NW;
else if (west)
op = META_GRAB_OP_RESIZING_SW;
else if (north)
else if (north && east)
op = META_GRAB_OP_RESIZING_NE;
else
else if (south && west)
op = META_GRAB_OP_RESIZING_SW;
else if (south && east)
op = META_GRAB_OP_RESIZING_SE;
else if (north)
op = META_GRAB_OP_RESIZING_N;
else if (west)
op = META_GRAB_OP_RESIZING_W;
else if (east)
op = META_GRAB_OP_RESIZING_E;
else if (south)
op = META_GRAB_OP_RESIZING_S;
else /* Middle region is no-op to avoid user triggering wrong action */
op = META_GRAB_OP_NONE;
meta_display_begin_grab_op (display,
window->screen,
window,
op,
TRUE,
event->xbutton.serial,
event->xbutton.button,
0,
event->xbutton.time,
event->xbutton.x_root,
event->xbutton.y_root);
if (op != META_GRAB_OP_NONE)
meta_display_begin_grab_op (display,
window->screen,
window,
op,
TRUE,
event->xbutton.serial,
event->xbutton.button,
0,
event->xbutton.time,
event->xbutton.x_root,
event->xbutton.y_root);
}
}
else if (event->xbutton.button == 3)
@@ -1755,10 +1818,15 @@ event_callback (XEvent *event,
window->type != META_WINDOW_DESKTOP)
{
meta_topic (META_DEBUG_FOCUS,
"Focusing %s due to enter notify with serial %lu\n",
window->desc, event->xany.serial);
"Focusing %s due to enter notify with serial %lu "
"at time %lu, and setting display->mouse_mode to "
"TRUE.\n",
window->desc,
event->xany.serial,
event->xcrossing.time);
meta_window_focus (window, event->xcrossing.time);
display->mouse_mode = TRUE;
meta_window_focus (window, event->xcrossing.time);
/* stop ignoring stuff */
reset_ignores (display);
@@ -1792,16 +1860,29 @@ event_callback (XEvent *event,
switch (meta_prefs_get_focus_mode ())
{
case META_FOCUS_MODE_MOUSE:
if (window == display->expected_focus_window &&
(window->frame == NULL || frame_was_receiver) &&
event->xcrossing.mode != NotifyGrab &&
event->xcrossing.mode != NotifyUngrab &&
event->xcrossing.detail != NotifyInferior)
if ((window->frame == NULL || frame_was_receiver) &&
event->xcrossing.mode != NotifyGrab &&
event->xcrossing.mode != NotifyUngrab &&
event->xcrossing.detail != NotifyInferior &&
meta_display_focus_sentinel_clear (display))
{
meta_verbose ("Unsetting focus from %s due to LeaveNotify\n",
window->desc);
meta_display_focus_the_no_focus_window (display,
event->xcrossing.time);
if (window == display->expected_focus_window)
{
meta_topic (META_DEBUG_FOCUS,
"Unsetting focus from %s due to LeaveNotify\n",
window->desc);
meta_display_focus_the_no_focus_window (display,
event->xcrossing.time);
}
if (window->type != META_WINDOW_DOCK &&
window->type != META_WINDOW_DESKTOP)
{
meta_topic (META_DEBUG_FOCUS,
"Setting display->mouse_mode to TRUE due to "
"LeaveNotify at time %lu.\n",
event->xcrossing.time);
display->mouse_mode = TRUE;
}
}
break;
case META_FOCUS_MODE_SLOPPY:
@@ -2124,18 +2205,25 @@ event_callback (XEvent *event,
{
int space;
MetaWorkspace *workspace;
guint32 time;
space = event->xclient.data.l[0];
time = event->xclient.data.l[1];
meta_verbose ("Request to change current workspace to %d\n",
space);
meta_verbose ("Request to change current workspace to %d with "
"specified timestamp of %lu\n",
space, (unsigned long)time);
workspace =
meta_screen_get_workspace_by_index (screen,
space);
/* Handle clients using the older version of the spec... */
if (time == 0 && workspace)
time = meta_display_get_current_time_roundtrip (display);
if (workspace)
meta_workspace_activate (workspace, meta_display_get_current_time_roundtrip (display));
meta_workspace_activate (workspace, time);
else
meta_verbose ("Don't know about workspace %d\n", space);
}
@@ -3181,8 +3269,10 @@ meta_display_begin_grab_op (MetaDisplay *display,
display->grab_last_moveresize_time.tv_sec = 0;
display->grab_last_moveresize_time.tv_usec = 0;
display->grab_motion_notify_time = 0;
display->grab_old_window_stacking = NULL;
#ifdef HAVE_XSYNC
display->grab_sync_request_alarm = None;
display->grab_last_user_action_was_snap = FALSE;
#endif
display->grab_was_cancelled = FALSE;
@@ -3201,29 +3291,14 @@ meta_display_begin_grab_op (MetaDisplay *display,
display->grab_anchor_window_pos = display->grab_initial_window_pos;
display->grab_wireframe_active =
meta_prefs_get_reduced_resources () &&
(meta_prefs_get_reduced_resources () && !meta_prefs_get_gnome_accessibility ()) &&
(meta_grab_op_is_resizing (display->grab_op) ||
meta_grab_op_is_moving (display->grab_op));
if (display->grab_wireframe_active)
{
MetaRectangle xor_rect;
display->grab_wireframe_rect = window->rect;
if (window->frame)
{
display->grab_wireframe_rect.x += window->frame->rect.x;
display->grab_wireframe_rect.y += window->frame->rect.y;
}
meta_window_calc_showing (display->grab_window);
meta_window_get_xor_rect (window, &display->grab_wireframe_rect,
&xor_rect);
meta_effects_begin_wireframe (display->grab_window->screen,
&xor_rect);
display->grab_wireframe_last_xor_rect = xor_rect;
meta_window_begin_wireframe (window);
}
#ifdef HAVE_XSYNC
@@ -3289,6 +3364,28 @@ meta_display_begin_grab_op (MetaDisplay *display,
g_assert (display->grab_window != NULL || display->grab_screen != NULL);
g_assert (display->grab_op != META_GRAB_OP_NONE);
/* If this is a move or resize, cache the window edges for
* resistance/snapping
*/
if (meta_grab_op_is_resizing (display->grab_op) ||
meta_grab_op_is_moving (display->grab_op))
{
meta_topic (META_DEBUG_WINDOW_OPS,
"Computing edges to resist-movement or snap-to for %s.\n",
window->desc);
meta_display_compute_resistance_and_snapping_edges (display);
}
/* Save the old stacking */
if (GRAB_OP_IS_WINDOW_SWITCH (display->grab_op))
{
meta_topic (META_DEBUG_WINDOW_OPS,
"Saving old stack positions; old pointer was %p.\n",
display->grab_old_window_stacking);
display->grab_old_window_stacking =
meta_stack_get_positions (screen->stack);
}
/* Do this last, after everything is set up. */
switch (op)
{
@@ -3340,10 +3437,7 @@ meta_display_end_grab_op (MetaDisplay *display,
if (display->grab_window != NULL)
display->grab_window->shaken_loose = FALSE;
if (display->grab_op == META_GRAB_OP_KEYBOARD_TABBING_NORMAL ||
display->grab_op == META_GRAB_OP_KEYBOARD_TABBING_DOCK ||
display->grab_op == META_GRAB_OP_KEYBOARD_ESCAPING_NORMAL ||
display->grab_op == META_GRAB_OP_KEYBOARD_ESCAPING_DOCK ||
if (GRAB_OP_IS_WINDOW_SWITCH (display->grab_op) ||
display->grab_op == META_GRAB_OP_KEYBOARD_WORKSPACE_SWITCHING)
{
meta_ui_tab_popup_free (display->grab_screen->tab_popup);
@@ -3355,11 +3449,29 @@ meta_display_end_grab_op (MetaDisplay *display,
display->ungrab_should_not_cause_focus_window = display->grab_xwindow;
}
/* If this was a move or resize clear out the edge cache */
if (meta_grab_op_is_resizing (display->grab_op) ||
meta_grab_op_is_moving (display->grab_op))
{
meta_topic (META_DEBUG_WINDOW_OPS,
"Clearing out the edges for resistance/snapping");
meta_display_cleanup_edges (display);
}
if (display->grab_old_window_stacking != NULL)
{
meta_topic (META_DEBUG_WINDOW_OPS,
"Clearing out the old stack position, which was %p.\n",
display->grab_old_window_stacking);
g_list_free (display->grab_old_window_stacking);
display->grab_old_window_stacking = NULL;
}
if (display->grab_wireframe_active)
{
display->grab_wireframe_active = FALSE;
meta_effects_end_wireframe (display->grab_window->screen,
&display->grab_wireframe_last_xor_rect);
meta_window_end_wireframe (display->grab_window);
if (!display->grab_was_cancelled)
meta_window_move_resize (display->grab_window,
TRUE,
@@ -3703,6 +3815,36 @@ meta_display_retheme_all (void)
}
}
void
meta_display_set_cursor_theme (const char *theme,
int size)
{
#ifdef HAVE_XCURSOR
GSList *tmp, *tmp2;
tmp = meta_displays_list ();
while (tmp != NULL)
{
MetaDisplay *display = tmp->data;
XcursorSetTheme (display->xdisplay, theme);
XcursorSetDefaultSize (display->xdisplay, size);
tmp2 = display->screens;
while (tmp2 != NULL)
{
MetaScreen *screen = tmp2->data;
meta_screen_update_cursor (screen);
tmp2 = tmp2->next;
}
tmp = tmp->next;
}
#endif
}
static gboolean is_syncing = FALSE;
gboolean
@@ -4184,53 +4326,6 @@ meta_resize_gravity_from_grab_op (MetaGrabOp op)
return gravity;
}
gboolean
meta_rectangle_intersect (MetaRectangle *src1,
MetaRectangle *src2,
MetaRectangle *dest)
{
int dest_x, dest_y;
int dest_w, dest_h;
int return_val;
g_return_val_if_fail (src1 != NULL, FALSE);
g_return_val_if_fail (src2 != NULL, FALSE);
g_return_val_if_fail (dest != NULL, FALSE);
return_val = FALSE;
dest_x = MAX (src1->x, src2->x);
dest_y = MAX (src1->y, src2->y);
dest_w = MIN (src1->x + src1->width, src2->x + src2->width) - dest_x;
dest_h = MIN (src1->y + src1->height, src2->y + src2->height) - dest_y;
if (dest_w > 0 && dest_h > 0)
{
dest->x = dest_x;
dest->y = dest_y;
dest->width = dest_w;
dest->height = dest_h;
return_val = TRUE;
}
else
{
dest->width = 0;
dest->height = 0;
}
return return_val;
}
gboolean
meta_rectangle_equal (const MetaRectangle *src1,
const MetaRectangle *src2)
{
return ((src1->x == src2->x) &&
(src1->y == src2->y) &&
(src1->width == src2->width) &&
(src1->height == src2->height));
}
static MetaScreen*
find_screen_for_selection (MetaDisplay *display,
Window owner,
@@ -4605,20 +4700,114 @@ meta_display_focus_sentinel_clear (MetaDisplay *display)
return (display->sentinel_counter == 0);
}
static void
sanity_check_timestamps (MetaDisplay *display,
Time timestamp)
{
if (XSERVER_TIME_IS_BEFORE (timestamp, display->last_focus_time))
{
meta_warning ("last_focus_time (%lu) is greater than comparison "
"timestamp (%lu). This most likely represents a buggy "
"client sending inaccurate timestamps in messages such as "
"_NET_ACTIVE_WINDOW. Trying to work around...\n",
display->last_focus_time, (unsigned long)timestamp);
display->last_focus_time = timestamp;
}
if (XSERVER_TIME_IS_BEFORE (timestamp, display->last_user_time))
{
GSList *windows;
GSList *tmp;
meta_warning ("last_user_time (%lu) is greater than comparison "
"timestamp (%lu). This most likely represents a buggy "
"client sending inaccurate timestamps in messages such as "
"_NET_ACTIVE_WINDOW. Trying to work around...\n",
display->last_user_time, (unsigned long)timestamp);
display->last_user_time = timestamp;
windows = meta_display_list_windows (display);
tmp = windows;
while (tmp != NULL)
{
MetaWindow *window = tmp->data;
if (XSERVER_TIME_IS_BEFORE (timestamp, window->net_wm_user_time))
{
meta_warning ("%s appears to be one of the offending windows "
"with a timestamp of %lu. Working around...\n",
window->desc, window->net_wm_user_time);
window->net_wm_user_time = timestamp;
}
tmp = tmp->next;
}
g_slist_free (windows);
}
}
static gboolean
timestamp_too_old (MetaDisplay *display,
MetaWindow *window,
Time *timestamp)
{
/* FIXME: If Soeren's suggestion in bug 151984 is implemented, it will allow
* us to sanity check the timestamp here and ensure it doesn't correspond to
* a future time (though we would want to rename to
* timestamp_too_old_or_in_future).
*/
MetaWindow *focus_window;
focus_window = display->focus_window;
if (*timestamp == CurrentTime)
{
meta_warning ("Got a request to focus %s with a timestamp of 0. This "
"shouldn't happen!\n",
window ? window->desc : "the no_focus_window");
meta_print_backtrace ();
*timestamp = meta_display_get_current_time_roundtrip (display);
return FALSE;
}
else if (XSERVER_TIME_IS_BEFORE (*timestamp, display->last_focus_time))
{
if (XSERVER_TIME_IS_BEFORE (*timestamp, display->last_user_time))
{
meta_topic (META_DEBUG_FOCUS,
"Ignoring focus request for %s since %lu "
"is less than %lu and %lu.\n",
window ? window->desc : "the no_focus_window",
*timestamp,
(unsigned long) display->last_user_time,
(unsigned long) display->last_focus_time);
return TRUE;
}
else
{
meta_topic (META_DEBUG_FOCUS,
"Received focus request for %s which is newer than most "
"recent user_time, but less recent than "
"last_focus_time (%lu < %lu < %lu); adjusting "
"accordingly. (See bug 167358)\n",
window ? window->desc : "the no_focus_window",
display->last_user_time,
*timestamp,
display->last_focus_time);
*timestamp = display->last_focus_time;
return FALSE;
}
}
return FALSE;
}
void
meta_display_set_input_focus_window (MetaDisplay *display,
MetaWindow *window,
gboolean focus_frame,
Time timestamp)
{
if (timestamp == CurrentTime)
{
meta_warning ("meta_display_set_input_focus_window called with a "
"timestamp of 0 for window %s. This shouldn't happen!\n",
window->desc);
meta_print_backtrace ();
}
else if (XSERVER_TIME_IS_BEFORE (timestamp, display->last_focus_time))
if (timestamp_too_old (display, window, &timestamp))
return;
XSetInputFocus (display->xdisplay,
@@ -4636,17 +4825,8 @@ void
meta_display_focus_the_no_focus_window (MetaDisplay *display,
Time timestamp)
{
if (timestamp == CurrentTime)
{
meta_warning ("meta_display_focus_the_no_focus_window called with a "
"timestamp of 0. This shouldn't happen!\n");
meta_print_backtrace ();
}
else if (XSERVER_TIME_IS_BEFORE (timestamp, display->last_focus_time))
{
meta_warning ("Ignoring focus request for no_focus_window since %lu is less than %lu.\n", timestamp, display->last_focus_time);
if (timestamp_too_old (display, NULL, &timestamp))
return;
}
XSetInputFocus (display->xdisplay,
display->no_focus_window,

View File

@@ -4,6 +4,7 @@
* Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2002 Red Hat, Inc.
* Copyright (C) 2003 Rob Adams
* Copyright (C) 2004, 2005 Elijah Newren
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -32,6 +33,7 @@
#include <X11/Xlib.h>
#include "eventqueue.h"
#include "common.h"
#include "boxes.h"
#ifdef HAVE_STARTUP_NOTIFICATION
#include <libsn/sn.h>
@@ -43,17 +45,6 @@
#define meta_XFree(p) do { if ((p)) XFree ((p)); } while (0)
/* this doesn't really belong here, oh well. */
typedef struct _MetaRectangle MetaRectangle;
struct _MetaRectangle
{
int x;
int y;
int width;
int height;
};
typedef struct MetaCompositor MetaCompositor;
typedef struct _MetaDisplay MetaDisplay;
typedef struct _MetaFrame MetaFrame;
@@ -67,6 +58,8 @@ typedef struct _MetaWorkspace MetaWorkspace;
typedef struct _MetaWindowPropHooks MetaWindowPropHooks;
typedef struct _MetaGroupPropHooks MetaGroupPropHooks;
typedef struct MetaEdgeResistanceData MetaEdgeResistanceData;
typedef void (* MetaWindowPingFunc) (MetaDisplay *display,
Window xwindow,
Time timestamp,
@@ -182,6 +175,9 @@ struct _MetaDisplay
Atom atom_net_moveresize_window;
Atom atom_net_desktop_geometry;
Atom atom_net_desktop_viewport;
Atom atom_metacity_version;
Atom atom_net_wm_visible_name;
Atom atom_net_wm_visible_icon_name;
/* This is the actual window from focus events,
* not the one we last set
@@ -197,9 +193,17 @@ struct _MetaDisplay
*/
MetaWindow *expected_focus_window;
/* last timestamp that a window was focused */
/* last timestamp passed to XSetInputFocus */
Time last_focus_time;
/* last user interaction time in any app */
Time last_user_time;
/* whether we're using mousenav (only relevant for sloppy&mouse focus modes;
* !mouse_mode means "keynav mode")
*/
guint mouse_mode : 1;
guint static_gravity_works : 1;
/*< private-ish >*/
@@ -265,6 +269,10 @@ struct _MetaDisplay
MetaResizePopup *grab_resize_popup;
GTimeVal grab_last_moveresize_time;
Time grab_motion_notify_time;
int grab_wireframe_last_display_width;
int grab_wireframe_last_display_height;
GList* grab_old_window_stacking;
MetaEdgeResistanceData *grab_edge_resistance_data;
/* we use property updates as sentinels for certain window focus events
* to avoid some race conditions on EnterNotify events
@@ -335,6 +343,7 @@ struct _MetaDisplay
int render_error_base;
#endif
#ifdef HAVE_XSYNC
unsigned int grab_last_user_action_was_snap;
unsigned int have_xsync : 1;
#define META_DISPLAY_HAS_XSYNC(display) ((display)->have_xsync)
#else
@@ -359,11 +368,21 @@ struct _MetaDisplay
* has occurred, this is equivalent to
* time1 < time2
* Of course, the rest of the ugliness of this macro comes from accounting
* for the fact that wraparound can occur.
* for the fact that wraparound can occur and the fact that a timestamp of
* 0 must be special-cased since it means older than anything else.
*
* Note that this is NOT an equivalent for time1 <= time2; if that's what
* you need then you'll need to swap the order of the arguments and negate
* the result.
*/
#define XSERVER_TIME_IS_BEFORE(time1, time2) \
( (( time1 < time2 ) && ( time2 - time1 < ((guint32)-1)/2 )) || \
(( time1 > time2 ) && ( time1 - time2 > ((guint32)-1)/2 )) \
#define XSERVER_TIME_IS_BEFORE_ASSUMING_REAL_TIMESTAMPS(time1, time2) \
( (( time1 < time2 ) && ( time2 - time1 < ((guint32)-1)/2 )) || \
(( time1 > time2 ) && ( time1 - time2 > ((guint32)-1)/2 )) \
)
#define XSERVER_TIME_IS_BEFORE(time1, time2) \
( time1 == 0 || \
(XSERVER_TIME_IS_BEFORE_ASSUMING_REAL_TIMESTAMPS(time1, time2) && \
time2 != 0) \
)
gboolean meta_display_open (const char *name);
@@ -434,6 +453,10 @@ void meta_display_grab_focus_window_button (MetaDisplay *display,
void meta_display_ungrab_focus_window_button (MetaDisplay *display,
MetaWindow *window);
/* Next two functions are defined in edge-resistance.c */
void meta_display_compute_resistance_and_snapping_edges (MetaDisplay *display);
void meta_display_cleanup_edges (MetaDisplay *display);
/* make a request to ensure the event serial has changed */
void meta_display_increment_event_serial (MetaDisplay *display);
@@ -449,6 +472,9 @@ const char* meta_event_detail_to_string (int d);
void meta_display_queue_retheme_all_windows (MetaDisplay *display);
void meta_display_retheme_all (void);
void meta_display_set_cursor_theme (const char *theme,
int size);
void meta_display_ping_window (MetaDisplay *display,
MetaWindow *window,
Time timestamp,
@@ -462,8 +488,6 @@ typedef enum
{
META_TAB_LIST_NORMAL,
META_TAB_LIST_DOCKS
} MetaTabList;
GList* meta_display_get_tab_list (MetaDisplay *display,
@@ -488,12 +512,6 @@ int meta_resize_gravity_from_grab_op (MetaGrabOp op);
gboolean meta_grab_op_is_moving (MetaGrabOp op);
gboolean meta_grab_op_is_resizing (MetaGrabOp op);
gboolean meta_rectangle_intersect (MetaRectangle *src1,
MetaRectangle *src2,
MetaRectangle *dest);
gboolean meta_rectangle_equal (const MetaRectangle *src1,
const MetaRectangle *src2);
void meta_display_devirtualize_modifiers (MetaDisplay *display,
MetaVirtualModifier modifiers,
unsigned int *mask);
@@ -505,9 +523,11 @@ gboolean meta_display_focus_sentinel_clear (MetaDisplay *display);
/* meta_display_set_input_focus_window is like XSetInputFocus, except
* that (a) it can't detect timestamps later than the current time,
* since Metacity isn't part of the XServer, and thus gives erroneous
* behavior in this circumstance (so don't do it), and (b) it uses
* display->last_focus_time and display->expected_focus_window since
* we don't have access to the true Xserver ones.
* behavior in this circumstance (so don't do it), (b) it uses
* display->last_focus_time since we don't have access to the true
* Xserver one, (c) it makes use of display->user_time since checking
* whether a window should be allowed to be focused should depend
* on user_time events (see bug 167358, comment 15 in particular)
*/
void meta_display_set_input_focus_window (MetaDisplay *display,
MetaWindow *window,

1278
src/edge-resistance.c Normal file

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More