Compare commits

...

519 Commits

Author SHA1 Message Date
Elijah Newren
3c24269ceb 2.15.3 release
2006-05-15  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.3 release
2006-05-15 22:52:13 +00:00
Elijah Newren
ac606c6223 I would forget to save the ChangeLog entry before committing... 2006-05-15 18:54:39 +00:00
Elijah Newren
1a16108310 Revert the accessibility module loading workaround from Gnome 2.6, since
2006-05-15  Elijah Newren  <newren gmail com>

	Revert the accessibility module loading workaround from Gnome
	2.6, since gtk+ has long since fixed this for us.  #123372.

	* src/Makefile.am: remove METACITY_LIBDIR define

	* src/main.c (find_accessibility_module,
	accessibility_invoke_module, accessibility_invoke, main): remove
	the first three of these functions and all calls to them

	* src/tabpopup.c (meta_ui_tab_popup_new): not sure if this part of
	120025 needed to be reverted but doing the reversion, if wrong, is
	the best way to get someone from the accessibility team to scream,
	er, I mean comment.  ;-)
2006-05-15 18:46:26 +00:00
Elijah Newren
3cb72d338c Patch from jylefort@FreeBSD.org to prevent a crash when changing
2006-05-15  Elijah Newren  <newren gmail com>

	* src/screen.c (reload_xinerama_infos): Patch from
	jylefort@FreeBSD.org to prevent a crash when changing resolution.
	Fixes #340847.
2006-05-15 18:37:36 +00:00
Björn Lindqvist
51ade19ae9 Remove the preceeding functions as they are all obsoleted by the new
2006-05-15  Björn Lindqvist  <bjourne@gmail.com>

	* places.[ch] (intcmp, window_get_edges,
	get_windows_showing_on_same_screen, get_vertical_edges,
	get_horizontal_edges, meta_window_find_next_vertical_edge,
	meta_window_find_next_horizontal_edge,
	meta_window_find_nearest_vertical_edge,
	meta_window_find_nearest_horizontal_edge): Remove the preceeding
	functions as they are all obsoleted by the new edge-resistance
	stuff. Fixes #341561.
2006-05-15 17:00:14 +00:00
Paolo Borelli
fb3b5c92f8 plug a small leak.
2006-05-15  Paolo Borelli  <pborelli@katamail.com>

	* src/prefs.c (update_binding): plug a small leak.
2006-05-15 06:59:30 +00:00
Chao-Hsiung Liao
ff87e70e8d Updated Traditional Chinese translation(Hong Kong). Updated Traditional
2006-05-14  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>

	* zh_HK.po: Updated Traditional Chinese translation(Hong Kong).
	* zh_TW.po: Updated Traditional Chinese translation(Taiwan).
2006-05-13 22:44:48 +00:00
Elijah Newren
34cb1840cf I don't think we want a config file for the no-gconf case; embedded people
2006-05-12  Elijah Newren  <newren gmail com>

	* configure.in: I don't think we want a config file for the
	no-gconf case; embedded people would prefer hard-coding things
	into the binary
	(http://mail.gnome.org/archives/metacity-devel-list/2006-May/msg00010.html)
2006-05-12 17:46:53 +00:00
Ignacio Casal Quinteiro
9f21db5366 *** empty log message *** 2006-05-10 16:54:02 +00:00
Elijah Newren
0dcc85e79a Clarify that gnome-common is needed now that autogen.sh has been rewritten
2006-04-25  Elijah Newren  <newren gmail com>

	* HACKING: Clarify that gnome-common is needed now that autogen.sh
	has been rewritten to use gnome-autogen.sh
2006-05-06 21:06:15 +00:00
Francisco Javier F. Serrador
acb5e483a9 Updated Spanish translation.
2006-05-06  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2006-05-06 14:10:33 +00:00
Søren Sandmann
5750974d5d Some experimental code to handle sync counter notifications on a window.
Fri May  5 12:50:58 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.c (has_counter): Some experimental code to handle
	sync counter notifications on a window.

	* src/c-screen.c (meta_comp_screen_add_window): Pass a MetaDisplay
2006-05-05 16:52:05 +00:00
Elijah Newren
b62dd8d130 Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no longer being
2006-04-25  Elijah Newren  <newren gmail com>

	Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no
	longer being used.  Fixes #330671.

	* src/window.[ch] (struct MetaWindow): new
	using_net_wm_visible_name and using_net_wm_visible_icon_name bits,
	(meta_window_new_with_attrs): initialize these new bits to false

	* src/window-props.c (set_title_text, set_window_title, set_icon_title):
	if the _NET_WM_VISIBLE_(ICON_)NAME property was previously set but
	doesn't need to be this time, make sure to clear it
2006-05-05 01:10:20 +00:00
Elijah Newren
e9c8fd8527 add three new tracker bugs
2006-04-25  Elijah Newren  <newren gmail com>

	* rationales.txt: add three new tracker bugs
2006-05-05 01:04:11 +00:00
Søren Sandmann
addc04f463 Delete unused META_PRIORITY_COMPOSITE
Thu May  4 13:30:04 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/ui.h: Delete unused META_PRIORITY_COMPOSITE

	* src/ui.c: Delete argument from meta_ui_get_display().

	* src/c-window.c: Remove the xid->window hashtable and associated
	code.

	* src/c-screen.[ch]: Rename MetaScreenInfo to MetaCompScreen. Put the
	xid->windows table here instaed of as a static variable. Also make
	sure that CompWindows are freed when the screen is unredirected.

	* src/display.c: Delete non USE_GDK_DISPLAY case, as it didn't
	work and hasn't been compiled for a long time.

	* src/display.[ch] (meta_display_open): Remove argument as it was
	always NULL (and couldn't possibly be anything else in the
	USE_GDK_DISPLAY case).
2006-05-04 17:32:26 +00:00
Søren Sandmann
411fd3db44 New files
Tue May  2 17:12:54 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.[ch]: New files

	* src/c-screen.c: Move WindowInfo struct to new c-window.[ch]
	files. Delete various bits of obsolete, commented-out code.
2006-05-02 21:15:32 +00:00
Funda Wang
451c990dd5 Updated metacity zh_CN translation. 2006-05-02 05:25:55 +00:00
Kjartan Maraas
3a6dd75f63 Updated Norwegian bokmål translation.
2006-04-30  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.
2006-04-30 13:30:16 +00:00
Søren Sandmann
975130ff70 New function. Use get_window() instead of cutted-and-pasted code all over
Fri Apr 28 12:53:23 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/core.c (get_window): New function.
	* src/core.c: Use get_window() instead of cutted-and-pasted code
	all over the place.
2006-04-28 16:54:52 +00:00
Gora Mohanty
abde6fc359 po/lv.po: Updated Latvian translation.
po/ChangeLog: Changed to reflect this.
2006-04-26 20:52:57 +00:00
Elijah Newren
10f3ce3de0 post-release version bump to 2.15.3
2006-04-25  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.15.3
2006-04-25 21:15:13 +00:00
Elijah Newren
618d282893 2.15.2 release
2006-04-25  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.2 release
2006-04-25 21:13:45 +00:00
Elijah Newren
ba1e888cba Nuke the old version, copy one from gcalctool that uses gnome-autogen.sh.
2006-04-25  Elijah Newren  <newren gmail com>

	* autogen.sh: Nuke the old version, copy one from gcalctool that
	uses gnome-autogen.sh.  Seems to fix the
	translations-aren't-included-in-the-tarball problem.  Fix from
	Rodney in IRC.
2006-04-25 21:04:57 +00:00
Elijah Newren
7e78d707ea post-release version bump to 2.15.2
2006-04-25  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.15.2
2006-04-25 17:55:14 +00:00
Elijah Newren
12d5978268 2.15.1 release belated post-release version bump to 2.15.1 Include boxes.h
2006-04-25  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.1 release
	* configure.in: belated post-release version bump to 2.15.1
	* src/Makefile.am: Include boxes.h so that control-center won't
	fail to build  #339708.
2006-04-25 17:53:49 +00:00
Elijah Newren
d769484f35 2.15.0 release
2006-04-24  Elijah Newren  <newren gmail com>

        * NEWS: 2.15.0 release
2006-04-24 23:43:25 +00:00
Theppitak Karoonboonyanan
a524fb9c9c Updated Thai translation.
2006-04-21  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.
2006-04-21 06:24:51 +00:00
Brian Pepple
239cf4a060 #337951.
2006-04-20  Brian Pepple  <bdpepple@gmail.com>

        #337951.

        * po/LINGUAS: New file listing all supported languages.

        * configure.in: Use po/LINGUAS instead of including all languages
        directly in this file. See the wiki for more information:
        http://live.gnome.org/GnomeGoals/PoLinguas.
2006-04-20 15:13:20 +00:00
Ankitkumar Rameshchandra Patel
984154e011 Updated Translation 2006-04-20 07:34:48 +00:00
Thomas Andersen
14f120f131 warn and ignore if transient_for is set to a non-top-level window. Fixes
2006-04-19  Thomas Andersen  <phomes@gmail.com>

        * src/window-props.c (reload_transient_for): warn and ignore if
	transient_for is set to a non-top-level window.  Fixes #335524.
2006-04-19 20:55:49 +00:00
Björn Lindqvist
c118c50117 Replace while loops iterating over sequences with for loops. Also, replace
2006-04-19  Björn Lindqvist  <bjourne@gmail.com>

	* src/frames.c (struct CachedPixels, meta_frames_destroy,
	invalidate_cache, generate_pixmap, populate_cache,
	cached_pixels_draw, meta_frames_expose_event,
	meta_frames_paint_to_drawable):

	Replace while loops iterating over sequences with for loops. Also,
	replace the attributes in the CachedPixels struct with a list of
	four CachedFramePiece:s, this allows iteration over the four
	pixmaps instead of treating each one separately. Fixes #338359.
2006-04-19 15:22:07 +00:00
Ankitkumar Rameshchandra Patel
89f01eb73a Updated Translation 2006-04-19 11:39:44 +00:00
Björn Lindqvist
ae85a33614 Add boxes.{c,h} to libmetacity_private
2006-04-18  Björn Lindqvist  <bjourne@gmail.com>

	* makefile.am: Add boxes.{c,h} to libmetacity_private
	* src/theme-parser.c (check_expression):
	* src/theme-viewer.c (run_position_expression_tests):
	Use meta_rect ().

	* src/theme.c: Replace while loops iterating over sequences with
	for loops.

	* src/theme.c, src/theme.h (struct _MetaPositionExprEnv,
	meta_draw_op_draw, meta_draw_op_list_draw,
	meta_theme_draw_menu_icon): Use MetaRectangles in function
	prototypes instead of x, y, with, height ints where applicable.
2006-04-18 17:18:53 +00:00
Kjartan Maraas
fe47d4436d Remove obsolete entry for no_NO And the translation.
2006-04-18  Kjartan Maraas  <kmaraas@gnome.org>

	* configure.in: Remove obsolete entry for no_NO
	* po/no.po: And the translation.
2006-04-18 06:30:32 +00:00
Thomas Thurman
fee1fb094a Allow any keybinding pref to be specified either with <foo>, a string, or
2004-04-17  Thomas Thurman <thomas@thurman.org.uk>

        * keybindings.c (count_bindings, rebuild_binding_table):
        * prefs.c (change_notify, screen_bindings,
        window_bindings, init_bindings, update_binding,
        find_and_update_list_binding, update_list_binding,
        meta_prefs_get_window_binding): Allow any keybinding pref
        to be specified either with <foo>, a string, or <foo>_list,
        a list of strings, or both. Fixes #164831.
2006-04-17 17:23:09 +00:00
Clytie Siddall
83d21b97c4 vi.po: Updated Vietnamese translation. 2006-04-17 10:49:30 +00:00
Josep Puigdemont i Casamajó
f908d78e4b Updated Catalan translation. 2006-04-17 10:24:49 +00:00
Elijah Newren
e2ea1cf722 Patch from Dan Sanders to fix #334899.
2006-04-16  Elijah Newren  <newren gmail com>

	Patch from Dan Sanders to fix #334899.

	* window.c (meta_window_new_with_attrs): Unminimize ancestors of
	new windows when mapped; this prevents e.g. confirmation windows
	from causing applications to appear locked when closing via the
	window list.
2006-04-17 03:54:49 +00:00
Funda Wang
10f0cfd2dc Updated metacity zh_CN translation. 2006-04-16 06:02:53 +00:00
Elijah Newren
7e2d5185a0 Patch from Dan Sanders to fix #335076.
2006-04-15  Elijah Newren  <newren gmail com>

	Patch from Dan Sanders to fix #335076.

	* src/core.c (meta_core_maximize, meta_core_toggle_maximize,
	  meta_core_unmaximize):
	* src/window.c (meta_window_client_message):
	Raise windows on maximize/unmaximize.
2006-04-16 02:20:41 +00:00
Elijah Newren
5bf3e39ef6 Patch from Andy Morum to fix the build with --disable-xsync. #336605
2006-04-15  Elijah Newren  <newren gmail com>

	* src/display.h: Patch from Andy Morum to fix the build with
	--disable-xsync.  #336605
2006-04-15 22:58:07 +00:00
Elijah Newren
a03e78210f Include instructions on setting up a minimal building/testing environment
2006-04-14  Elijah Newren  <newren gmail com>

        * HACKING: Include instructions on setting up a minimal
        building/testing environment
2006-04-15 03:35:38 +00:00
Thomas James Alexander Thurman
ecf75915b9 Good grief, can I never get the bug number right? #94682 2006-04-15 02:08:19 +00:00
Thomas Thurman
2214fd75d9 Add a tabbing function, bound to alt-f6 by default, to cycle through the
2006-04-14  Thomas Thurman   <thomas@thurman.org.uk>

        Add a tabbing function, bound to alt-f6 by default, to cycle
        through the windows of the current application. Fixes #164831.

        * src/common.h: two new MetaGrabOpts values for group switching
        * src/display.c (ping_data_free, meta_display_in_grab_op,
        IN_TAB_CHAIN): adapt to new MetaGrabOpts
        * src/display.h: new enum value for MetaTabList for group switching
        * src/keybindings.c (meta_display_process_key_event):
        adapt to new MetaGrabOpts
        (process_tab_grab): adapt to new MetaGrabOpts, and use switch
        statement for cancelling instead of if statement
        * src/metacity.schemas.in: new keybindings
        * src/prefs.c, src/prefs.h: handle new keybindings
        * src/window.h: define META_WINDOW_IN_GROUP_TAB_CHAIN macro
2006-04-15 02:05:44 +00:00
Elijah Newren
1dea155c8c Include reasons why gdk/gtk.h and core includes like display.h/window.h
2006-04-14  Elijah Newren  <newren gmail com>

	* HACKING: Include reasons why gdk/gtk.h and core includes like
	display.h/window.h must be kept separate.  Taken from a private
	email from Havoc.
2006-04-14 17:36:17 +00:00
Francisco Javier F. Serrador
694a4352bc Updated Spanish translation.
2006-04-14  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2006-04-14 16:59:04 +00:00
Raphael Higino
4cbe4e7558 Updated Brazilian Portuguese translation 2006-04-14 16:23:25 +00:00
Åsmund Skjæveland
4f99d7e17f Updated Norwegian Nynorsk translation.
2006-04-14  Åsmund Skjæveland  <aasmunds@fys.uio.no>

	* nn.po: Updated Norwegian Nynorsk translation.
2006-04-14 14:09:10 +00:00
Ilkka Tuohela
3d4717c8e1 Updated Finnish translation 2006-04-14 13:54:50 +00:00
Wouter Bolsterlee
bf4172dc7c Translation updated by Wouter Bolsterlee.
2006-04-14  Wouter Bolsterlee  <uws+gnome@xs4all.nl>

	* nl.po: Translation updated by Wouter Bolsterlee.
2006-04-14 09:53:08 +00:00
Alexander Shopov
4d097fbc18 Updated Bulgarian translation by Alexander Shopov <ash@contact.bg>
2006-04-14  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Alexander Shopov <ash@contact.bg>
2006-04-14 08:58:43 +00:00
Alejandro Andres
13cdd8ad3d Fixed broken links. #333303
2006-04-13  Alejandro Andres <fuzzy.alej@gmail.com>

	* README: Fixed broken links.  #333303
2006-04-14 02:28:42 +00:00
Søren Sandmann
c7c9f0ee52 Check for both POPUP and DROPDOWN.
Thu Apr 13 12:23:28 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_add_window): Check for both
	POPUP and DROPDOWN.
2006-04-13 16:24:03 +00:00
Björn Lindqvist
ea50cc7239 *** empty log message *** 2006-04-13 13:16:42 +00:00
Elijah Newren
59d99fb9d1 Patch from Ron Yorston to add a focus_new_windows option. Default is
2006-04-12  Elijah Newren  <newren gmail com>

	Patch from Ron Yorston to add a focus_new_windows option.  Default
	is 'smart' (focus by default but normal focus-stealing-prevention
	can kick in); 'strict' is current other choice (like 'smart'
	except that programs launched by the terminal will not be
	focused).  Fixes remainder of #326159.  Should also close #152004
	and a bunch of others.

	* src/common.h:
	Add a MetaFocusNewWindows enum giving the current types allowed

	* src/display.h:
	Update docs on allow_terminal_deactivation to note that it is only
	relevant when focus_new_windows is 'strict'

	* src/prefs.c:
	* src/prefs.h:

	* src/metacity.schemas.in: add the new gconf key and explanation

	* src/prefs.[ch] (#define KEY_FOCUS_NEW_WINDOWS, static gboolean
	  focus_new_windows, update_focus_new_windows, meta_prefs_init,
	  change_notify, meta_prefs_get_focus_new_windows,
	  meta_preference_to_string):
	Add all the normal preference handling stuff for this new
	focus-new-windows option.

	* src/window.c (window_state_on_map, meta_window_set_user_time):
	Don't focus windows launched from a terminal
2006-04-12 18:01:20 +00:00
Søren Sandmann
4b683fdbf2 Check if the window is a menu and make it 90% opaque in that case.
Mon Apr 10 16:44:51 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (is_menu): Check if the window is a menu and make
	it 90% opaque in that case.

	* src/c-screen.c (claim_selection): Handle CM_Sn selection
	properly.

	* src/c-screen.c: Remove debug spew

	* src/screen.c (meta_screen_composite_all_windows): Remove debug spew
2006-04-10 20:47:02 +00:00
Björn Lindqvist
4730cb57bd *** empty log message *** 2006-04-10 08:30:02 +00:00
Vincent van Adrighem
c2b4a65e75 Translation updated by Michiel Sikkes.
2006-04-09  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Michiel Sikkes.
2006-04-09 16:35:59 +00:00
Gora Mohanty
793c1d7a43 Changes strings to make them more readable, and more translatable. Fixes
2006-03-27  Gora Mohanty  <gmohanty@cvs.gnome.org>

        * src/metacity.schemas.in:
	* src/theme.c:
	Changes strings to make them more readable, and more translatable.
	Fixes #335720.
2006-04-07 19:06:25 +00:00
Jeremy Le Floc'h
123684d80b file br.po was initially added on branch gnome-2-14. 2006-04-05 11:26:19 +00:00
Elijah Newren
8674051c58 Fix constraints bug causing negative width windows and crashes. #336651
2006-04-02  Elijah Newren  <newren gmail com>

	Fix constraints bug causing negative width windows and crashes.
	#336651

	* src/constraints.c (constrain_partially_onscreen): Don't
	accidentally shove & resize the window by requiring more pixels to
	be onscreen than the size of the window.
2006-04-02 23:11:25 +00:00
Kjartan Maraas
cb109b9637 Updated Norwegian bokmål translation. Same.
2006-04-02  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.
	* no.po: Same.
2006-04-02 12:37:45 +00:00
Søren Sandmann
6445d16fd5 Release the GL window here. Disconect from the magnifier, not the stacker.
Fri Mar 31 16:44:56 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_unredirect): Release the GL
	window here. Disconect from the magnifier, not the stacker.
2006-03-31 21:45:29 +00:00
Søren Sandmann
21d5a43c29 Only use magnifier when USE_MAGNIFIER is set.
Fri Mar 31 12:24:26 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_redirect): Only use magnifier
	when USE_MAGNIFIER is set.

	* src/compositor.c (meta_compositor_free_window): Only wobble when
	USE_WOBBLE is set.
2006-03-31 17:25:02 +00:00
Søren Sandmann
f7a202eb81 Don't hardcode screen size.
Fri Mar 31 12:13:21 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_redirect): Don't hardcode
	screen size.
2006-03-31 17:13:48 +00:00
Søren Sandmann
eb102ab37f Fix the memory corruption in a better way.
Thu Mar 30 17:01:12 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (struct MetaCompositor): Fix the memory
	corruption in a better way.
2006-03-30 22:01:45 +00:00
Søren Sandmann
aaafd14124 Fix an illegal write.
Thu Mar 30 16:38:35 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_begin_move): Fix an illegal write.
2006-03-30 21:39:00 +00:00
Søren Sandmann
3bf211c89f Turn wobbling back on Add new explosion effect.
Thu Mar 30 16:13:52 2006  Søren Sandmann  <sandmann@redhat.com>

	* composite.c: Turn wobbling back on  Add new explosion effect.
2006-03-30 21:14:56 +00:00
Elijah Newren
127a89886b Fix grouping in the presence of ancestors; caught by Björn. #336184
2006-03-29  Elijah Newren  <newren gmail com>

	Fix grouping in the presence of ancestors; caught by Björn.
	#336184

	* src/group.c (meta_window_compute_group): Use new
	meta_window_find_root_ancestor() function to get ancestor; for the
	computed group, use the ancestor's group instead of the ancestor
	itself

	* src/window.[ch] (meta_window_find_root_ancestor,
	meta_window_raise): split meta_window_find_root_ancestor()
	functionality of meta_window_raise() and make it available
	elsewhere
2006-03-30 19:22:38 +00:00
Guntupalli Karunakar
82a6c99485 Added Dzongkha translation 2006-03-30 15:23:51 +00:00
Elijah Newren
d0564def9c Add bugs about pointer warping; update raise-on-click ones.
2006-03-29  Elijah Newren  <newren gmail com>

	* rationales.txt: Add bugs about pointer warping; update
	raise-on-click ones.
2006-03-30 02:56:17 +00:00
Thomas James Alexander Thurman
1f7446cd88 That was #305882, not what I said. 2006-03-29 18:46:23 +00:00
Thomas Thurman
cf3deef6ea mark a window as needing or not needing the user's attention use the new
2006-03-29  Thomas Thurman   <thomas@thurman.org.uk>
        * src/window.c, src/window.h (meta_window_set_demands_attention,
        meta_window_unset_demands_attention): mark a window as needing
        or not needing the user's attention
        * src/window.c (meta_window_show, window_activate,
        meta_window_focus, meta_window_configure_request,
        meta_window_client_message): use the new set/unset
        demands attention functions. Fixes #305822.
2006-03-29 18:43:22 +00:00
Björn Lindqvist
28aeacb247 *** empty log message *** 2006-03-29 16:05:23 +00:00
Elijah Newren
d75c170fef New file. #335026. ;-)
2006-03-28  Elijah Newren  <newren gmail com>

	* MAINTAINERS: New file.  #335026.  ;-)
2006-03-29 05:47:04 +00:00
Søren Sandmann
ea1568c720 Also check for overlay_window.
Tue Mar 28 09:57:26 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/c-screen.c (meta_screen_info_add_window): Also check for overlay_window.

        * src/c-screen.c (meta_screen_info_redirect): Trap errors out of
        unredirect().
2006-03-28 14:58:14 +00:00
Thomas James Alexander Thurman
9b6aeeef12 good grief, I always forget the bug number: #309567 2006-03-25 23:26:08 +00:00
Thomas Thurman
25923105e4 deleted and moved into window-props.c (meta_window_new_with_attrs): added
2006-03-25  Thomas Thurman  <thomas@thurman.org.uk>

	* src/window.c, src/window.h (update_net_wm_state,
	update_mwm_hints, update_wm_class, update_transient_for):
	deleted and moved into window-props.c
	(meta_window_new_with_attrs): added constructing field
	and four new initial properties (as above)
	(meta_window_recalc_features,
	meta_window_recalc_window_type): new functions

	* src/window-props.c (init_net_wm_state, reload_net_wm_state
	init_mwm_hints, reload_mwm_hints, init_wm_class,
	reload_mwm_class, init_transient_for, reload_transient_for):
	new functions, moved in from window.c

	(meta_display_init_window_prop_hooks): initialise new properties
2006-03-25 22:57:22 +00:00
Paolo Borelli
09a5c23585 use g_str_has_prefix instead of a local copy of the function.
2006-03-25  Paolo Borelli  <pborelli@katamail.com>

	* src/prefs.c: use g_str_has_prefix instead of a local copy
	of the function.
2006-03-25 11:47:31 +00:00
Ray Strode
8f59776087 Add patch from Elijah Newren to fix type for compositing_manager schema
2006-03-16  Ray Strode  <rstrode@redhat.com>

	Add patch from Elijah Newren to fix type
	for compositing_manager schema entry (bug 335901)

	* src/metacity.schemas.in: Change type from "boolean" to "bool"
	and default value from "FALSE" to "false"
2006-03-25 07:21:27 +00:00
Gora Mohanty
905b4e8e0d po/or.po: Updated Oriya translation.
po/Changelog: Changed to reflect this.
2006-03-23 18:54:56 +00:00
Søren Sandmann
b11ac45352 Actually remove the window.
Wed Mar 22 13:16:48 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_remove_window): Actually
	remove the window.

	* src/c-screen.c (meta_screen_info_remove_window): Only remove
	node if non-NULL
2006-03-22 18:34:18 +00:00
Søren Sandmann
fd1e1c76e8 Put a square below the desktop stack.
Wed Mar 22 10:33:21 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_redirect): Put a square below
	the desktop stack.
2006-03-22 15:33:55 +00:00
Priit Laes
c5d4cbd742 Translation updated by Ivar Smolin.
2006-03-21  Priit Laes  <amd@store20.com>

	* et.po: Translation updated by Ivar Smolin.
2006-03-21 08:01:11 +00:00
Søren Sandmann
fc7a246074 Put the desktop into a magnifier.
Mon Mar 20 11:50:44 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_redirect): Put the desktop into
	a magnifier.

	* src/c-screen.c (struct MetaScreenInfo): Add a CmMagnifier

	* src/c-screen.c (meta_screen_info_redirect): Move some of the gl
	window related stuff here.
2006-03-20 16:52:25 +00:00
Priit Laes
bdb60c4e72 Translation updated by Ivar Smolin.
2006-03-17  Priit Laes  <amd@store20.com>

	* et.po: Translation updated by Ivar Smolin.
2006-03-17 08:17:29 +00:00
Thomas James Alexander Thurman
d07fccc8b1 Mentioned bug number (#315142) 2006-03-17 04:34:16 +00:00
Søren Sandmann Pedersen
543f85a1db 2006-03-16 Soren Sandmann (sandmann@daimi.au.dk)
* src/c-screen.c (meta_screen_info_set_target_rect): Put inside
	COMPOSIT_EXTENSIONS
2006-03-17 04:15:40 +00:00
Thomas Thurman
ab176cf831 Always set _NET_WM_STATE when a window is shown or hidden, even if it
2006-03-03  Thomas Thurman  <thomas@thurman.org.uk>

	Always set _NET_WM_STATE when a window is shown or
	hidden, even if it wasn't mapped.

	* src/window.c (meta_window_hide, meta_window_show):
	call set_net_wm_state unconditionally
2006-03-17 03:26:25 +00:00
Elijah Newren
ef47c243c5 Add debugging information for edge resistance
2006-03-16  Elijah Newren  <newren gmail com>

	Add debugging information for edge resistance

	* src/edge-resistance.c (cache_edges): print out the edges that
	are being cached if in verbose mode,
	(meta_window_edge_resistance_for_move,
	meta_window_edge_resistance_for_resize): if edge resistance kicked
	in then print out a message about it

	* src/util.c:
	* src/util.h:
	Add META_DEBUG_EDGE_RESISTANCE to MetaDebugTopic enum list
2006-03-17 02:55:21 +00:00
Søren Sandmann
01cd31f7f4 Maintain the size of the window.
Thu Mar 16 14:55:18 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (struct WindowInfo): Maintain the size of the
	window.
2006-03-16 20:00:18 +00:00
Søren Sandmann
ad2c7c6ce3 Use set_target_rect() instead of set_size().
Wed Mar 15 16:30:09 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (set_geometry): Use set_target_rect() instead
	of set_size().

	* src/c-screen.c: Add set_target_rect() as a way of scaling windows.

	* src/window.c (meta_window_handle_mouse_grab_op_event): Turn
	updates on after a button release.

	* src/window.c (meta_window_move_resize_internal): Fix
	indentation.
2006-03-15 21:31:12 +00:00
Søren Sandmann
4d6ee9ea49 Use unset_patch() instead of unset_geometry().
Wed Mar 15 11:34:54 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_add_window): Use unset_patch()
	instead of unset_geometry().
2006-03-15 16:35:26 +00:00
Žygimantas Beručka
a401b82089 Updated Lithuanian translation.
2006-03-15  Žygimantas Beručka  <zygis@gnome.org>

        * lt.po: Updated Lithuanian translation.
2006-03-15 14:22:42 +00:00
Mugurel Tudor
54751db00a Updated Romanian translation
2006-03-14  Mugurel Tudor  <mugurelu@gnome.ro>

	* ro.po: Updated Romanian translation
2006-03-14 18:30:48 +00:00
Søren Sandmann
16de3b603b Comment out wobbling
Tue Mar 14 11:57:46 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Comment out wobbling

	* src/compositor.c (blow_up): remove this function

	* src/compositor.c (process_configure_notify): Uncomment
	set_size().

	* src/c-screen.c (meta_screen_info_set_updates): When updates are
	true, set all the properties such as size and shape.

	* src/c-screen.c (meta_screen_info_add_window): Create a special
	WindowInfo structure for each window.

	* src/c-screen.c (meta_screen_info_set_size): Set size and output
	shape of the drawable node.
2006-03-14 17:00:56 +00:00
Miloslav Trmac
5f30265879 Updated Czech translation.
2006-03-14  Miloslav Trmac  <mitr@volny.cz>

	* cs.po: Updated Czech translation.
2006-03-14 01:02:36 +00:00
Elijah Newren
0b5f11ae5a Update to reflect that we're now targetting 2.15 development.
2006-03-13  Elijah Newren  <newren gmail com>

        * README:
	* configure.in:
	Update to reflect that we're now targetting 2.15 development.
2006-03-13 23:11:33 +00:00
Jordi Mallach
6ef997d3ad Updated Catalan translation. 2006-03-13 18:58:52 +00:00
Vincent van Adrighem
369ab5bc2b Translation updated by Tino Meinen.
2006-03-13  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Tino Meinen.
2006-03-13 18:56:58 +00:00
Thomas James Alexander Thurman
188bc50a35 Belated update of ChangeLog for #334332 2006-03-13 17:46:25 +00:00
Danilo Šegan
042f5e3e6b Updated Serbian translation. 2006-03-13 14:50:35 +00:00
Alexander Shopov
82a3cad018 Updated Bulgarian translation by Alexander Shopov <ash@contact.bg>
2006-03-13  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Alexander Shopov <ash@contact.bg>
2006-03-13 12:09:47 +00:00
Laurent Dhima
c910286c02 Updated Albanian translation.
2006-03-13  Laurent Dhima  <laurenti@alblinux.net>

	* sq.po: Updated Albanian translation.
2006-03-13 11:56:30 +00:00
Francisco Javier F. Serrador
07ef2db60c Updated Spanish translation.
2006-03-13  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2006-03-13 10:45:45 +00:00
Maxim Dziumanenko
5f3b961989 Updated Ukrainian translation.
2006-03-13  Maxim Dziumanenko <mvd@mylinux.ua>

	* Updated Ukrainian translation.
2006-03-13 10:02:23 +00:00
Amanpreet Singh Alam
3393f4707c update translation for Punjabi (Gurmukhi) by apbrar gmail com 2006-03-13 10:01:11 +00:00
Rajesh Ranjan
77b8ed579a Updated Translation 2006-03-13 09:16:43 +00:00
Theppitak Karoonboonyanan
d02815b364 Updated Thai translation (merged from gnome-2-14 branch).
2006-03-13  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation (merged from gnome-2-14 branch).
2006-03-13 05:27:16 +00:00
Satoru SATOH
9cfa08d4f4 Updated Japanese translation.
2006-03-13  Satoru SATOH <ss@gnome.gr.jp>

	* ja.po: Updated Japanese translation.
2006-03-13 03:04:30 +00:00
Duarte Loreto
77440097e1 Updated Portuguese translation.
2006-03-13  Duarte Loreto <happyguy_pt@hotmail.com>

	* pt.po: Updated Portuguese translation.
2006-03-13 01:42:39 +00:00
Guilherme de S. Pastore
985195858d Updated Brazilian Portuguese translation 2006-03-13 00:52:17 +00:00
Frank Arnold
d161ddcff8 Updated German translation.
2006-03-13  Frank Arnold  <farnold@cvs.gnome.org>

	* de.po: Updated German translation.
2006-03-12 23:25:02 +00:00
Daniel Nylander
e27bebc49b Updated Swedish translation.
2006-03-13  Daniel Nylander  <po@danielnylander.se>

        * sv.po: Updated Swedish translation.
2006-03-12 23:04:05 +00:00
Ignacio Casal Quinteiro
9ac0eab5c3 *** empty log message *** 2006-03-12 22:56:29 +00:00
Thomas James Alexander Thurman
4d220adc32 Marking string for translation. Closes #334332 2006-03-12 21:04:56 +00:00
Amanpreet Singh Alam
7750026603 update translation for Punjabi (Gurmukhi) by apbrar gmail com 2006-03-12 18:03:46 +00:00
Raphael Higino
92ac98ef47 Updated Brazilian Portuguese translation 2006-03-12 15:25:54 +00:00
Priit Laes
1161cfdeba Translation updated by Ivar Smolin.
2006-03-12  Priit Laes  <amd@store20.com>

	* et.po: Translation updated by Ivar Smolin.
2006-03-12 08:08:43 +00:00
Miloslav Trmac
8d0a3358c7 Updated Czech translation by Petr Tomeš.
2006-03-12  Miloslav Trmac  <mitr@volny.cz>

	* cs.po: Updated Czech translation by Petr Tomeš.
2006-03-12 02:47:14 +00:00
Roozbeh Pournader
20c9efaf82 Updated Persian translation by Meelad Zakaria, Elnaz Sarbar, and Farzaneh
2006-03-12  Roozbeh Pournader  <roozbeh@farsiweb.info>

	* fa.po: Updated Persian translation by Meelad Zakaria,
	  Elnaz Sarbar, and Farzaneh Sarafraz.
2006-03-11 22:20:07 +00:00
Hendrik Richter
192943640e Updated German translation.
2006-03-09  Hendrik Richter  <hendrikr@gnome.org>

	* de.po: Updated German translation.
2006-03-09 20:34:29 +00:00
Laurent Dhima
46bdc87e94 Updated Albanian translation.
2006-03-09  Laurent Dhima  <laurenti@alblinux.net>

	* sq.po: Updated Albanian translation.
2006-03-09 17:00:13 +00:00
Laurent Dhima
35674ae862 Updated Albanian translation.
2006-03-08  Laurent Dhima  <laurenti@alblinux.net>

	* sq.po: Updated Albanian translation.
2006-03-08 19:02:06 +00:00
Gabor Kelemen
04433e5b9d Hungarian translation updated.
2006-03-08  Gabor Kelemen  <kelemeng@gnome.hu>

	* hu.po: Hungarian translation updated.
2006-03-08 09:21:03 +00:00
Funda Wang
f8cd8ae75f Updated metacity zh_CN translation. 2006-03-07 05:03:56 +00:00
Daniel Nylander
94d4d039c2 Updated Swedish translation
2006-03-06  Daniel Nylander  <po@danielnylander.se>

        * sv.po: Updated Swedish translation
2006-03-06 17:27:20 +00:00
Ryan Lortie
3c6b291641 Only unmaximise window before freeing if the window is actually maximised.
2006-03-06  Ryan Lortie  <desrt@desrt.ca>

        * src/window.c (meta_window_free): Only unmaximise window before
        freeing if the window is actually maximised.  #333563.
2006-03-06 16:33:33 +00:00
Mugurel Tudor
8c2a5dbc19 Updated Romanian translation
2006-03-05  Mugurel Tudor  <mugurelu@gnome.ro>

	* ro.po: Updated Romanian translation
2006-03-05 19:59:59 +00:00
Alexander Shopov
92971d6377 Updated Bulgarian translation by Alexander Shopov <ash@contact.bg>
2006-03-05  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Alexander Shopov <ash@contact.bg>
2006-03-05 11:31:27 +00:00
Hendrik Richter
add8531eb4 Updated German translation.
2006-03-04  Hendrik Richter  <hendrikr@gnome.org>

	* de.po: Updated German translation.
2006-03-04 10:07:31 +00:00
Søren Sandmann
eed6f29b30 Update for libcm API change.
Fri Mar  3 15:31:04 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/c-screen.c (meta_screen_info_new): Update for libcm API
        change.
2006-03-03 20:31:41 +00:00
Søren Sandmann
832968ddd6 Split the ScreenInfo data structure into separate, new files
Wed Mar  3 13:25:03 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/compositor.c, src/c-screen.[ch]: Split the ScreenInfo data
        structure into separate, new files c-screen.[ch].

        * src/errors.c (x_error_handler): Forward foreign errors to
        foreign displays.

        * src/errors.c (meta_errors_register_foreign_display): Implement
        this function

        * src/errors.h: Add new meta_errors_register_foreign_display()
2006-03-03 15:53:10 +00:00
Maxim Dziumanenko
7a8e3c94fd Updated Ukrainian translation.
2006-03-03  Maxim Dziumanenko <mvd@mylinux.ua>

	* Updated Ukrainian translation.
2006-03-03 14:18:35 +00:00
Hendrik Richter
4d0d192761 Updated German translation.
2006-03-02  Hendrik Richter  <hendrikr@gnome.org>

	* de.po: Updated German translation.
2006-03-02 22:14:16 +00:00
Hendrik Richter
c3ed3a3090 Updated German translation.
2006-03-02  Hendrik Richter  <hendrikr@gnome.org>

	* de.po: Updated German translation.
2006-03-02 21:50:37 +00:00
Rhys Jones
b7c040be26 Updated Welsh translation.
2006-03-02  Rhys Jones  <rhys@sucs.org>

	* cy.po: Updated Welsh translation.
2006-03-02 17:50:23 +00:00
Arangel Angov
e92403441a Updated Macedonian Translation <arangela@cvs.gnome.org> 2006-03-01 22:48:13 +00:00
Leonid Kanter
9232b75ef4 Updated Russian translation 2006-03-01 16:00:12 +00:00
Josep Puigdemont i Casamajó
1b7d0fbc87 Updated Catalan translation. 2006-03-01 00:29:49 +00:00
Søren Sandmann
0a1a7e523c Put the windows in a stacker rather than do the traversing outselves.
Tue Feb 28 14:49:23 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/compositor.c: Put the windows in a stacker rather than
        do the traversing outselves.
2006-02-28 19:51:45 +00:00
Leonid Kanter
d3e27ed02a Updated Russian translation 2006-02-28 18:27:31 +00:00
Elijah Newren
3e01e149eb Patch from Thomas Thurman to prevent setting cycle_windows to keybindings
2006-02-27  Elijah Newren  <newren gmail com>

        Patch from Thomas Thurman to prevent setting cycle_windows to
        keybindings that won't work.  #329676

        * src/prefs.c (update_binding):
        Make sure that bindings which require a modifier key are set to a
        keybinding with one or else that the binding is reverted.

        * src/ui.[ch] (meta_ui_accelerator_name):
        New function
2006-02-27 22:44:47 +00:00
Elijah Newren
04a4f7c363 Patch from Thomas Thurman to work around buggy application grouping with
2006-02-27  Elijah Newren  <newren gmail com>

        Patch from Thomas Thurman to work around buggy application
        grouping with transient windows.  #328211

        * src/group.c (meta_window_compute_group):
        Put transients in the same group with their parent, always.

        * src/window.c (update_transient_for):
        Update group too
2006-02-27 22:19:11 +00:00
Elijah Newren
6a08faf99b Patch from Sylvain Bertrand to fix build issues with library search order.
2006-02-27  Elijah Newren  <newren gmail com>

        * configure.in:
        Patch from Sylvain Bertrand to fix build issues with library
        search order.  #330695.
2006-02-27 22:11:56 +00:00
Lasse Bang Mikkelsen
a3e7c9c222 Updated Danish translation 2006-02-27 20:03:30 +00:00
Lasse Bang Mikkelsen
1a430825c3 Updated Danish translation 2006-02-27 00:09:32 +00:00
Miloslav Trmac
82664c5d76 Updated Czech translation.
2006-02-25  Miloslav Trmac  <mitr@volny.cz>

	* cs.po: Updated Czech translation.
2006-02-25 22:59:37 +00:00
Søren Sandmann
f8f6016970 Remove include of flash.h
Sat Feb 25 14:50:17 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/window.c: Remove include of flash.h
2006-02-25 19:50:50 +00:00
Søren Sandmann
b1847959b1 Call meta_compositor_begin_move if there is a compositor
Sat Feb 25 11:46:14 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/display.c (meta_display_begin_grab_op): Call
	meta_compositor_begin_move if there is a compositor

	* src/compositor.c (meta_compositor_begin/update/end_move):
	Implement those functions.

	* src/spring-model.[ch]: New files
2006-02-25 16:54:39 +00:00
Søren Sandmann
e4cf87c985 Don't attempt to manage the screen if it already is managed.
Thu Feb 23 15:40:52 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/compositor.c (meta_compositor_manage_screen): Don't attempt
        to manage the screen if it already is managed.

        * src/compositor.c (meta_compositor_unmanage_screen): Synchronize
        the display.
2006-02-23 20:41:53 +00:00
Inaki Larranaga
928364e915 Updated Basque translation.
2006-02-23  Inaki Larranaga  <dooteo@euskalgnu.org>

	* eu.po:  Updated Basque translation.
2006-02-23 12:19:42 +00:00
Clytie Siddall
78ce6d6a60 ka.po: Added Georgian translation. 2006-02-23 06:05:40 +00:00
Duarte Loreto
a6b60a2024 Updated Portuguese translation.
2006-02-23  Duarte Loreto <happyguy_pt@hotmail.com>

	* pt.po: Updated Portuguese translation.
2006-02-23 01:57:49 +00:00
Žygimantas Beručka
f5fdb07165 Updated Lithuanian translation.
2006-02-23  Žygimantas Beručka  <zygis@gnome.org>

        * lt.po: Updated Lithuanian translation.
2006-02-22 23:25:40 +00:00
Vincent van Adrighem
f127b2bc98 Translation updated by Tino Meinen.
2006-02-21  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Tino Meinen.
2006-02-21 12:17:22 +00:00
Clytie Siddall
5352caac31 vi.po: Updated Vietnamese translation. 2006-02-21 11:27:20 +00:00
Slobodan D. Sredojevic
d24fa066a4 Updated Serbian translation
2006-02-21  Slobodan D. Sredojevic  <slobo@akrep.be>

        * sr.po, sr@Latn.po: Updated Serbian translation
2006-02-21 00:51:09 +00:00
Ignacio Casal Quinteiro
d010bbb5ed *** empty log message *** 2006-02-21 00:09:18 +00:00
Ankitkumar Rameshchandra Patel
636da5ebff Updated Translation 2006-02-20 11:06:21 +00:00
Kostas Papadimas
a42e4dac42 Updated Greek translation 2006-02-20 09:43:26 +00:00
Ilkka Tuohela
f966ab041b Updated Finnish translation 2006-02-20 09:41:06 +00:00
Thomas Thurman
9e17747f3c Removed "move to another workspace" menu when there are exactly two
2006-02-19  Thomas Thurman  <thomas thurman org uk>

        Removed "move to another workspace" menu when there are
        exactly two workspaces.  Fixes #151183.

        * src/menu.c (meta_window_menu_new): clear
        META_MENU_OP_WORKSPACES bit when n_workspaces==2
2006-02-20 02:15:14 +00:00
Takeshi AIHANA
5a85bf18fe Updated Japanese translation for v2.13.89.
2006-02-19  Takeshi AIHANA <takeshi.aihana@gmail.com>

	* ja.po: Updated Japanese translation for v2.13.89.
2006-02-18 15:18:52 +00:00
Francisco Javier F. Serrador
833fc11c47 Updated Spanish translation.
2006-02-18  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2006-02-18 13:38:30 +00:00
Kjartan Maraas
8215a35993 Updated Norwegian bokmål translation. Same.
2006-02-18  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.
	* no.po: Same.
2006-02-18 13:15:48 +00:00
Søren Sandmann
f3ade45b96 Only uncomposite the screen if there is a compositor.
Fri Feb 17 11:56:35 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/screen.c (meta_screen_free): Only uncomposite the screen if
	there is a compositor.

	* src/compositor.c (meta_compositor_new): Warn and fail if the
	server doesn't have composite
2006-02-17 16:58:08 +00:00
Søren Sandmann
71b27c6228 Fix the build when --enable-compositor is there.
Thu Feb 16 18:57:48 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Fix the build when --enable-compositor is
	there.
2006-02-17 00:00:24 +00:00
Søren Sandmann
053759fad6 Insert #ifdef's to make it build again
Thu Feb 16 15:54:48 2006  Søren Sandmann  <sandmann@redhat.com>

       * src/compositor.c: Insert #ifdef's to make it build again
2006-02-16 21:03:02 +00:00
Søren Sandmann
f6738a930c New function.
Thu Feb 16 15:24:42 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/screen.c (meta_screen_composite_all_windows): New function.

	* src/prefs.[ch], src/metacity.schemas.in: Add new
	compositing_manager key.

	* src/display.c (prefs_changed_callback): Handle
	META_PREF_COMPOSITOR_MANAGER

	* src/display.c (event_callback): Only call
	meta_compositor_process_event() if there is in fact a compositor.

	* src/display.c (enable/disable_compositor): Add code to
	enable/disable compositor at runtime
2006-02-16 20:26:05 +00:00
Søren Sandmann
0f48ff448c Add code to destroy compositor. Implement unmanage_screen() functionality.
Wed Feb 15 18:42:03 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.[ch]: Add code to destroy compositor. Implement
	unmanage_screen() functionality.
2006-02-15 23:44:15 +00:00
Søren Sandmann
ca539199b2 Add unused wobbly unminimize animation by Kristian
Wed Feb 15 14:47:50 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_unminimize): Add unused wobbly
	unminimize animation by Kristian

	* src/compositor.c (meta_compositor_minimize): Add wobbly minimize
	animation by Kristian.

	* src/compositor.c: Add support for turning updates on and off.

	* src/window.c (meta_window_move_resize_internal): Use
	sync counter to make composited resizing tear free
2006-02-15 19:50:12 +00:00
Elijah Newren
c348794431 Patch from Jens Granseuer to fix more build issues with gcc 2.95. #331166.
2006-02-14  Elijah Newren  <newren gmail com>

	Patch from Jens Granseuer to fix more build issues with gcc 2.95.
	#331166.

	* src/prefs.c (meta_prefs_init):
	Remove C99 style variable initiailization
2006-02-14 17:26:40 +00:00
Elijah Newren
0610f92f0f post-release version bump to 2.13.144
2006-02-13  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.13.144
2006-02-13 19:46:13 +00:00
Elijah Newren
b3e0208afa 2.13.89 release
2006-02-13  Elijah Newren  <newren gmail com>

	* NEWS:	2.13.89 release
2006-02-13 19:45:02 +00:00
Elijah Newren
8ceb613668 We had that prev_window code in multiple places and it was all identical.
2006-02-13  Elijah Newren  <newren gmail com>

	* src/keybindings.c (process_tab_grab):
	We had that prev_window code in multiple places and it was all
	identical.  Let's just stick it in one place to make the function
	easier to read.
2006-02-13 19:26:40 +00:00
Thomas Thurman
500bbefc6a Allow alt-escape to cancel alt-tabbing, and vice versa. Fixes #141425.
2006-02-13  Thomas Thurman <thomas thurman org uk>

	* src/keybindings.c (process_tab_grab):
	Allow alt-escape to cancel alt-tabbing, and vice versa.  Fixes
	#141425.
2006-02-13 19:16:32 +00:00
Miloslav Trmac
d0e8371494 Updated Czech translation.
2006-02-13  Miloslav Trmac  <mitr@volny.cz>

	* cs.po: Updated Czech translation.
2006-02-13 05:07:54 +00:00
Thomas Thurman
ce3299e815 Disable alt-f7 if a window can't be moved, and alt-f8 if it can't be
2006-02-11  Thomas Thurman <thomas thurman org uk>

        Disable alt-f7 if a window can't be moved, and alt-f8 if it
        can't be resized.  Fixes #328920.

        * src/keybindings.c (handle_begin_move, handle_begin_resize):
        check window->has_*_func before beginning operation
2006-02-12 03:17:10 +00:00
Elijah Newren
0e8c8eb6b5 Add a man page for metacity. Original version taken from Debian (written
2006-02-11  Elijah Newren  <newren gmail com>

	Add a man page for metacity.  Original version taken from Debian
	(written by Thom May and Akira Tagoh) and updated by Luke Morton
	and Philip O'Brien.  Necessary auto-fu supplied by Philip O'Brien.
	Fixes #321279.
2006-02-12 00:55:57 +00:00
Elijah Newren
cb298b9279 actually use META_LAYER_TOP but just manually make it equal to
2006-02-11  Elijah Newren  <newren gmail com>

	* src/stack.h (enum MetaStackLayer):
	* src/stack.c (get_standalone_layer):
	actually use META_LAYER_TOP but just manually make it equal to
	META_LAYER_DOCK.  Add a note point to the EWMH for why we do this.
	#330717
2006-02-12 00:01:06 +00:00
Elijah Newren
74510389bc remove this legacy cruft that we stopped using years ago
2006-02-11  Elijah Newren  <newren gmail com>

	* src/window.c (enum GnomeWinLayer): remove this legacy cruft that
	we stopped using years ago
2006-02-11 23:41:15 +00:00
Kang Jeong-Hee
0654163d8a ko.po updated 2006-02-11 12:41:31 +00:00
Thomas Thurman
7aebefad3c Avoid a memory leak when checking which workspace(s) a window is on. Fixes
2006-02-10  Thomas Thurman <thomas thurman org uk>

	Avoid a memory leak when checking which workspace(s) a window is
	on.  Fixes #322059.

        * src/workspace.h (struct MetaWorkspace):
        * src/workspace.c (meta_workspace_new, meta_workspace_free):
	added list_containing_self member to MetaWorkspace

        * src/window.c (meta_window_get_workspaces): use
	window->workspace->list_containing_self instead of allocating (and
	leaking) such a list on the fly.
2006-02-11 05:06:08 +00:00
Thomas Thurman
4b6a87acb5 add messages to explain that warnings are harmless
2006-02-09  Thomas Thurman <thomas thurman org uk>

        * src/testboxes.c (test_regions_okay, test_clamping_to_region):
        add messages to explain that warnings are harmless
2006-02-11 04:03:27 +00:00
Soeren Sandmann
f39bcff434 Wrap fade code in #ifdef HAVE_COMPOSITE_EXTENSIONS
Tue Feb  7 00:58:05 2006  Soeren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Wrap fade code in #ifdef HAVE_COMPOSITE_EXTENSIONS
2006-02-07 05:58:52 +00:00
Søren Sandmann
abde4a3769 New fancy minimize animation. Fade windows in and out.
Mon Feb  6 17:45:39 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/compositor.c: New fancy minimize animation. Fade windows in
        and out.

2
2006-02-06 22:47:13 +00:00
Funda Wang
d49bb492fe Updated metacity zh_CN translation. 2006-02-05 19:09:25 +00:00
Kjartan Maraas
14f72c89e3 Updated Norwegian bokmål translation. Same.
2006-02-03  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.
	* no.po: Same.
2006-02-03 18:09:35 +00:00
Thomas Thurman
b5c199c6e6 produce warning when invalid events with no timestamp are received, rather
2006-02-03  Thomas Thurman <thomas thurman org uk>

        * src/display.c (event_callback): produce warning when invalid
        events with no timestamp are received, rather than failing an
        assertion
2006-02-03 18:09:16 +00:00
Søren Sandmann
63d978d228 update the pixmap. (update) print out framerate. (dump_stacking_order) new
Thu Feb  2 17:58:22 2006  Søren Sandmann  <sandmann@redhat.com>

	* compositor.c (process_map): update the pixmap.
	(update) print out framerate.
	(dump_stacking_order) new debug
	function.
	(meta_compositor_add_window) error trap fixes
	(MiniInfo): Make the minimize animation fade out.
2006-02-02 23:02:21 +00:00
Vincent van Adrighem
f839edda05 Translation updated by Tino Meinen.
2006-01-31  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Tino Meinen.
2006-01-31 11:20:22 +00:00
Slobodan D. Sredojevic
d6ace0d2d4 Updated Serbian translation
2006-01-31  Slobodan D. Sredojevic  <slobo@akrep.be>

        * sr.po, sr@Latn.po: Updated Serbian translation
2006-01-31 03:14:11 +00:00
Elijah Newren
bcadc0ce3a Oops, I forgot to save the final changes before committing; fix that now 2006-01-30 17:50:03 +00:00
Elijah Newren
fdd47d79b4 post-release version bump to 2.13.89
2006-01-30  Elijah Newren  <newren gmail.com>

	* configure.in: post-release version bump to 2.13.89
2006-01-30 17:44:50 +00:00
Elijah Newren
891e59e597 2.13.55 release
2006-01-30  Elijah Newren  <newren gmail com>

	* NEWS:	2.13.55 release
2006-01-30 17:42:51 +00:00
Elijah Newren
297e0e466f Track the active_screen, (event_callback): If the mouse enters a window on
2006-01-30  Elijah Newren  <newren gmail com>

	* src/display.[ch] (struct MetaDisplay), meta_display_open,
	meta_display_set_input_focus_window,
	meta_display_focus_the_no_focus_window): Track the active_screen,
	(event_callback): If the mouse enters a window on a different
	screen, activate the default window on the new screen.  May need
	to be modified for click-to-focus; we'll wait for feedback.  Fixes
	#319348.
2006-01-30 17:22:14 +00:00
Theppitak Karoonboonyanan
be036ca300 Updated Thai translation.
2006-01-28  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.
2006-01-28 10:59:06 +00:00
Josep Puigdemont i Casamajó
5a49bc8f91 Updated Catalan translation. 2006-01-27 00:45:53 +00:00
Adam Weinberger
2360ba0aeb Updated Canadian English translation.
2006-01-26  Adam Weinberger  <adamw@gnome.org>

	* en_CA.po: Updated Canadian English translation.
2006-01-26 18:09:53 +00:00
Evandro Fernandes Giovanini
2bcbabf6ec Updated Brazilian Portuguese translation.
2006-01-26  Evandro Fernandes Giovanini <evandrofg@ig.com.br>

	* pt_BR.po: Updated Brazilian Portuguese translation.
2006-01-26 07:49:44 +00:00
Ignacio Casal Quinteiro
e7675e8069 *** empty log message *** 2006-01-24 20:21:11 +00:00
Elijah Newren
405e21a82a change the order of the ||'ed items in the if to avoid using an
2006-01-23  Elijah Newren  <newren gmail com>

	* src/display.c (meta_display_check_threshold_reached): change the
	order of the ||'ed items in the if to avoid using an uninitialized
	value

	* src/prefs.c (meta_prefs_init): fix a couple uninitialized value
	problems
2006-01-24 01:07:41 +00:00
Ankitkumar Rameshchandra Patel
9abec54da6 Updated Translation 2006-01-23 09:46:05 +00:00
Funda Wang
095359b58d Updated metacity translation. 2006-01-23 07:25:16 +00:00
Kjartan Maraas
99c3ce1ef9 Updated Norwegian bokmål translation. Same.
2006-01-22  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.
	* no.po: Same.
2006-01-22 19:15:13 +00:00
Ilkka Tuohela
0375976ef0 Updated Finnish translation 2006-01-22 07:33:08 +00:00
Clytie Siddall
9a91c8066a vi.po: Updated Vietnamese translation. 2006-01-22 05:28:42 +00:00
Elijah Newren
9ce85d7657 Patch from Christian Kirbach to prevent a critical warning crasher when
2006-01-21  Elijah Newren  <newren gmail com>

	Patch from Christian Kirbach to prevent a critical warning crasher
	when switching themes.  #327847.

	* src/theme.c (meta_theme_free): since themes are only constructed
	as needed and may be NULL, check for that before freeing theme
	hash tables
2006-01-21 21:26:55 +00:00
Ilkka Tuohela
8808c8b500 Updated Finnish translation 2006-01-21 20:07:31 +00:00
Francisco Javier F. Serrador
5c29242d4a Updated Spanish translation.
2006-01-21  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2006-01-21 19:25:13 +00:00
Elijah Newren
c0f4b9d2d4 Patch from Dick Marinus to add a minimize double-click-titlebar-action;
2006-01-21  Elijah Newren  <newren gmail com>

	* src/common.h (enum MetaActionDoubleClickTitlebar):
	* src/frames.c (meta_frames_button_press_event):
	* src/prefs.c (action_double_click_titlebar_from_string):
	* src/metacity.schemas.in:
	Patch from Dick Marinus to add a minimize
	double-click-titlebar-action; slightly modified to also include a
	none action.  #300210.
2006-01-21 19:18:51 +00:00
Elijah Newren
e44e8c93aa post-release version bump to 2.13.55
2006-01-20  Elijah Newren  <newren gmail.com>

	* configure.in: post-release version bump to 2.13.55
2006-01-21 01:36:01 +00:00
Elijah Newren
c8d135b353 2.13.34 release
2006-01-20  Elijah Newren  <newren gmail com>

	* NEWS:	2.13.34 release
2006-01-21 01:33:49 +00:00
Elijah Newren
8e5425a86f fixed_directions is only meant for explicit user interactions; disable it
2006-01-20  Elijah Newren  <newren gmail com>

	* src/constraints.c (setup_constraint_info): fixed_directions is
	only meant for explicit user interactions; disable it for
	everything else.  There are other bugs and improvements that could
	be made with fixed_directions that I should be filing too, but at
	least put a FIXME there for now--I'm so lame.  Fixes #327822.
2006-01-21 01:09:46 +00:00
Ignacio Casal Quinteiro
0ea8552531 *** empty log message *** 2006-01-21 00:08:11 +00:00
Elijah Newren
dcec11274a Avoid flashing when closing a maximized window. Fixes #317254.
2006-01-20  Elijah Newren  <newren gmail com>

	Avoid flashing when closing a maximized window.  Fixes #317254.

	* src/window.c (unmaximize_window_before_freeing): new function
	that just fixes the net_wm_state and sends a configure_notify,
	(meta_window_free): use unmaximize_window_before_freeing() instead
	of meta_window_unmaximize() to avoid flicker
2006-01-20 23:36:23 +00:00
Elijah Newren
6f318f1a75 Fix unitialized value problem when in raise-on-click mode. Søren,
2006-01-20  Elijah Newren  <newren gmail com>

	Fix unitialized value problem when in raise-on-click mode.  Søren,
	#327572.

	* src/display.c (meta_display_check_threshold_reached): make
	function be a no op if raise_on_click!=FALSE

	* src/display.h (struct MetaDisplay): point out that
	grab_initial_[xy] and grab_threshold_movement_reached are only for
	raise_on_click==FALSE mode.
2006-01-20 23:02:24 +00:00
Elijah Newren
5568f75cb0 Patch from Søren to fix some reading-from-free'd-data errors. #327575
2006-01-20  Elijah Newren  <newren gmail com>

	Patch from Søren to fix some reading-from-free'd-data errors.
	#327575

	* src/edge-resistance.c (meta_display_cleanup_edges): store the
	edges in a hash table so that we can still read their values
	within the loop from the other array they are stored in, then free
	them all at the end.
2006-01-20 22:57:42 +00:00
Elijah Newren
e272295976 Fix various initialization and default issues, especially for
2006-01-20  Elijah Newren  <newren gmail com>

	Fix various initialization and default issues, especially for
	--disable-gconf.  Make --disable-gconf actually work.  #326661.

	* configure.in: Fix compilation with --disable-gconf
	* src/metacity.schemas.in: Add a note that if any defaults are
	  changed in this file, src/prefs.c may need to be updated to
	  reflect the change
	* src/prefs.c: set various static global vars to the right default
	value, (meta_prefs_init): get the titlebar_font and current_theme
	handled better when not using gconf, (struct MetaSimpleKeyMapping,
	screen_string_bindings, window_string_bindings): helper vars to
	allow some keybindings to work even without gconf,
	(init_bindings): initialize bindings for the without-gconf case
	too, (init_commands): make sure these are all NULL for the
	non-gconf case so that we don't access random memory,
	(init_workspace_names): just give these all a default name for the
	non-gconf case,
	(meta_prefs_change_workspace_name): actually change the name for
	the non-gconf case too
2006-01-20 22:42:25 +00:00
Elijah Newren
a556a7334a More careful error handling of values returned by GConf. Fixes #326615.
2006-01-20  Elijah Newren  <newren gmail com>

	More careful error handling of values returned by GConf.  Fixes
	#326615.

	* src/prefs.c (get_bool): new helper function, (meta_prefs_init):
	use get_bool to handle the case of a gconf key not existing,
	(update_cursor_size): sanity check for sane values
2006-01-20 22:32:28 +00:00
Elijah Newren
af14d9d2a1 Prevent rapidly repeated visual bells from hanging metacity. Fixes
2006-01-20  Elijah Newren  <newren gmail com>

	Prevent rapidly repeated visual bells from hanging metacity.
	Fixes #322032.

	* src/display.h (struct MetaDisplay): add a last_bell_time field,
	(XSERVER_TIME_IS_BEFORE_ASSUMING_REAL_TIMESTAMPS macro,
	XERVER_TIME_IS_BEFORE macro): add parentheses around usage of
	macro parameter

	* src/display.c (meta_display_open): initialize last_bell_time,
	(event_callback): don't allow more than one bell per second
2006-01-20 22:08:52 +00:00
Elijah Newren
32d4bd6b63 Patch from Kjartan Maraas to fix a lot of tiny issues (unused variable
2006-01-20  Elijah Newren  <newren gmail com>

	* src/async-getprop.c:
	* src/common.h:
	* src/display.c:
	* src/eggaccelerators.c:
	* src/frames.c:
	* src/gradient.c:
	* src/iconcache.c:
	* src/keybindings.c:
	* src/metaaccellabel.c:
	* src/place.c:
	* src/prefs.c:
	* src/preview-widget.c:
	* src/screen.c:
	* src/session.c:
	* src/stack.c:
	* src/tabpopup.c:
	* src/theme-viewer.c:
	* src/theme.c:
	* src/window-props.c:
	* src/window.c:
	* src/workspace.c:
	* src/tools/metacity-window-demo.c:
	* src/wm-tester/test-gravity.c:
	* src/wm-tester/test-resizing.c:
	* src/wm-tester/test-size-hints.c:
	Patch from Kjartan Maraas to fix a lot of tiny issues (unused
	variable removal, making unused variables used again, correction
	of types passed/declared for printf arguments, removal of unneeded
	breaks and returns, dead code removal, dead code revival, renaming
	to prevent shadowed variables, declaring unexported functions as
	static) spotted by the intel compiler.  #321439
2006-01-20 22:03:56 +00:00
Elijah Newren
4c10722262 Patch from Björn Lindqvist to fix #98340.
2006-01-20  Elijah Newren  <newren gmail com>

	Patch from Björn Lindqvist to fix #98340.

	* src/screen.c (meta_screen_ensure_tab_popup): Make sure an
	outline border is shown even if a window frame's width is 0.
	Also, correctly handle window outlines in showing desktop mode.
2006-01-20 21:48:51 +00:00
Søren Sandmann
cc790655f2 Make minimize animation update again.
Fri Jan 20 16:42:25 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/compositor.c: Make minimize animation update again.
2006-01-20 21:43:13 +00:00
Vincent van Adrighem
1bce2c55fe Translation updated by Tino Meinen.
2006-01-20  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Tino Meinen.
2006-01-20 12:50:15 +00:00
Søren Sandmann
5f9a097d2c g_object_unref() rather than ws_region_unref().
Thu Jan 19 18:05:47 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_manage_screen):
	g_object_unref() rather than ws_region_unref().
2006-01-19 23:06:19 +00:00
Søren Sandmann
24976318b5 Port to changes in libcm
Thu Jan 19 16:50:50 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/compositor.c: Port to changes in libcm
2006-01-19 21:51:54 +00:00
Funda Wang
59d7d891db Updated metacity translation. 2006-01-18 13:40:28 +00:00
Søren Sandmann
8638300708 Port to changes in libcm.
Tue Jan 17 17:25:29 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Port to changes in libcm.
2006-01-17 22:27:10 +00:00
Ignacio Casal Quinteiro
a42d6647b5 *** empty log message *** 2006-01-17 20:19:07 +00:00
Ilkka Tuohela
0a815fb8f8 Updated Finnish translation 2006-01-16 20:00:56 +00:00
Elijah Newren
4dd216f5a8 manually define HOST_NAME_MAX if not already defined to fix Solaris
2006-01-16  Elijah Newren  <newren gmail com>

	* src/window-props.c: manually define HOST_NAME_MAX if not already
	defined to fix Solaris compilation issue.  Caught by Damien
	Carbery, patch from Havoc.  #326745
2006-01-16 17:37:53 +00:00
Elijah Newren
4d868c1ddc post-release version bump to 2.13.34
2006-01-16  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.34
2006-01-16 17:14:20 +00:00
Elijah Newren
97981e4322 2.13.21 release
2006-01-16  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.21 release
2006-01-16 17:13:20 +00:00
Søren Sandmann
35dae65862 Really turn off draw-in-a-loop.
Mon Jan 16 11:55:20 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_manage_screen): Really turn
	off draw-in-a-loop.
2006-01-16 16:56:09 +00:00
Kyle Ambroff
fac7010411 If no valid window is found in the MRU list, then set focus to the desktop
2006-01-15  Kyle Ambroff  <kambroff@csus.edu>

	* src/workspace.c (focus_ancestor_or_mru_window):
	If no valid window is found in the MRU list, then set focus to the
	desktop window. (#317405)
2006-01-16 06:07:29 +00:00
Francisco Javier F. Serrador
d552ca35f6 Updated Spanish translation.
2006-01-15  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2006-01-15 19:32:28 +00:00
Elijah Newren
9fdd3d165d Fix accidental overzealous focus holding by the terminal introduced by the
2006-01-15  Elijah Newren  <newren@gmail.com>

	Fix accidental overzealous focus holding by the terminal
	introduced by the original patch in bug 326159.  Windows launched
	from panel icons, the panel menu, or global keybindings should get
	focus now.  #326159.

	* src/display.c (meta_display_open, event_callback):
	* src/display.h (struct MetaDisplay):
	* src/keybindings.c (process_event):
	* src/window.c (meta_window_set_user_time):
	Add a new allow_terminal_deactivation field to MetaDisplay and use
	it to track whether the user's last action was interaction with
	the terminal or some outside action (global keybinding, clicking
	on a dock, etc.) likely to launch a new window.

	* src/window.c (window_state_on_map):
	Allow the focus switch from a terminal to something else if
	allow_terminal_deactiviation is true.

	* src/keybindings.c (handle_panel_keybinding):
	Remove some unneeded code.
2006-01-15 17:03:57 +00:00
Elijah Newren
ef792fc1f7 Patch from Jens Granseuer to fix more build issues with gcc 2.95. #327050.
2006-01-15  Elijah Newren  <newren@gmail.com>

	Patch from Jens Granseuer to fix more build issues with gcc 2.95.
	#327050.

	* src/boxes.c (meta_rectangle_edge_cmp_ignore_type):
	* src/window.c (meta_window_show):
	Remove C99 style variable initiailization
2006-01-15 16:37:06 +00:00
Elijah Newren
50bcc976bc Don't dereference a NULL string. Fixes #327013.
2006-01-14  Elijah Newren  <newren gmail com>

	* src/window.c (__window_is_terminal): Don't dereference a NULL
	string.  Fixes #327013.
2006-01-15 04:45:34 +00:00
Elijah Newren
def12b85b8 fix compilation when HAVE_COMPOSITE_EXTENSIONS is undefined. #326912
2006-01-14  Elijah Newren  <newren gmail com>

	* src/compositor.[ch]: fix compilation when
	HAVE_COMPOSITE_EXTENSIONS is undefined.  #326912
2006-01-14 21:51:46 +00:00
Takeshi AIHANA
5a652acf88 Updated Japanese translation for v2.13.13.
2006-01-14  Takeshi AIHANA <takeshi.aihana@gmail.com>

	* ja.po: Updated Japanese translation for v2.13.13.
2006-01-14 15:57:24 +00:00
Søren Sandmann
efe25a80ed Only update on damage events.
Fri Jan 13 16:37:26 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (update): Only update on damage events.
2006-01-13 21:38:56 +00:00
Elijah Newren
f9d11c0be6 Patch from Damien Carbery. Fixes #326746.
2006-01-13  Elijah Newren  <newren gmail com>

	Patch from Damien Carbery.  Fixes #326746.

	* src/util.c: explicitly #include Xlib.h to fix a compilation
	issue on Solaris.
2006-01-13 21:36:10 +00:00
Søren Sandmann
fea6191473 Add a dependency on libcm when building with compositor.
Fri Jan 13 14:40:19 2006  Søren Sandmann  <sandmann@redhat.com>

	* configure.in: Add a dependency on libcm when building with
	compositor.

	* src/window.c (meta_window_hide): Make this function static.

	* src/window.c (implement_showing): Use meta_compositor_minimize()
	to do a weird minimize effect.

	* src/compositor.[ch]: Beginning of new GL based compositor.

	* src/screen.h (struct _MetaScreen): Add void pointer to
	compositor data.

	* src/screen.c (meta_screen_new): Remove obsolete compositor
	stuff; initialize compositor_data. Don't composite manage screen
	out of this function.

	* src/errors.c (x_error_handler): Check that display is non-NULL
	before using it. Add comment about how that can happen.

	* src/display.c (meta_display_{begin,end}_grab_op): Remove
	explicity damage of windows.

	* src/display.c (meta_display_open): Composite manage all the
	screens.
2006-01-13 19:41:01 +00:00
Adam Weinberger
0eab7bd14c Updated Canadian English translation.
2006-01-11  Adam Weinberger  <adamw@gnome.org>

	* en_CA.po: Updated Canadian English translation.
2006-01-11 17:51:22 +00:00
Elijah Newren
9ec589b3b8 Replace __PRETTY_FUNCTION__ with G_STRFUNC, because lesser compilers don't
2006-01-11  Elijah Newren  <newren gmail com>

	* src/textboxes.c (test_area, test_intersect, test_equal,
	  test_overlap_funcs, test_basic_fitting, test_merge_regions,
	  test_regions_okay, test_region_fitting, test_clamping_to_region,
	  test_clipping_to_region, test_shoving_into_region,
	  test_find_onscreen_edges,
	  test_find_nonintersected_xinerama_edges, test_gravity_resize,
	  test_find_closest_point_to_line):
	Replace __PRETTY_FUNCTION__ with G_STRFUNC, because lesser
	compilers don't support the former.  Caught by Damien Carbery, fix
	suggested by Ray Strode.  #326281.
2006-01-11 16:35:03 +00:00
Theppitak Karoonboonyanan
d0b1dab993 Updated Thai translation.
2006-01-11  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.
2006-01-11 14:58:43 +00:00
Ankitkumar Rameshchandra Patel
4689944194 Updated Translation 2006-01-11 06:40:09 +00:00
Clytie Siddall
1f6dbf75fa vi.po: Updated Vietnamese translation. 2006-01-11 05:43:30 +00:00
Elijah Newren
51b8c402d8 post-release version bump to 2.13.21
2006-01-10  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.21
2006-01-10 20:08:27 +00:00
Elijah Newren
f0322ee76c 2.13.13 release
2006-01-10  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.13 release
2006-01-10 20:07:34 +00:00
Elijah Newren
5913b8c5ab Whoops, I forgot to keep my copyright info updated with my previous
2006-01-10  Elijah Newren  <newren@gmail.com>

	* src/bell.c:
	* src/boxes.c:
	* src/boxes.h:
	* src/constraints.c:
	* src/core.c:
	* src/display.c:
	* src/display.h:
	* src/edge-resistance.c:
	* src/frames.c:
	* src/keybindings.c:
	* src/main.c:
	* src/prefs.c:
	* src/prefs.h:
	* src/screen.c:
	* src/screen.h:
	* src/window.c:
	* src/window.h:
	Whoops, I forgot to keep my copyright info updated with my previous
	commits as Havoc had asked me to do.  Doing that now...
2006-01-10 19:43:21 +00:00
Elijah Newren
52df880f32 Add a raise on click option, basically only because all the major distros
2006-01-10  Elijah Newren  <newren@gmail.com>

	Add a raise on click option, basically only because all the major
	distros are patching it in anyway.  See #326156.

	* src/metacity.schemas.in: add the new gconf key and explanation

	* src/prefs.[ch] (#define KEY_RAISE_ON_CLICK, static gboolean
	  raise_on_click, update_raise_on_click, meta_prefs_init,
	  change_notify, meta_prefs_get_raise_on_click,
	  meta_preference_to_string):
	Add all the normal preference handling stuff for this new
	raise-on-click option.

	* src/core.c (meta_core_show_window_menu):
	* src/display.c (event_callback, meta_display_begin_grab_op):
	* src/window.c (window_activate, meta_window_configure_request, ):
	Only raise the window if in raise_on_click mode.

	* src/display.c (meta_display_begin_grab_op,
	  meta_display_end_grab_op, meta_display_check_threshold_reached):
	* src/display.h (struct MetaDisplay):
	* src/window.c (meta_window_handle_mouse_grab_op_event):
	if not in raise-on-click mode only raise on button release if the
	click didn't start a move or resize operation; needs a few extra
	MetaDisplay fields to handle this

	* src/core.c (meta_core_user_lower_and_unfocus):
	no need to do the MRU shuffling if not maintaining the stacking
	order == MRU order invariant

	* src/frames.c (meta_frames_button_press_event):
	* src/window.c (meta_window_begin_grab_op):
	remove an unneeded window raising that is already handled elsewhere
2006-01-10 19:35:03 +00:00
Elijah Newren
f6270596de Don't "steal" focus from terminal windows for new window mappings as the
2006-01-10  Elijah Newren  <newren@gmail.com>

	Don't "steal" focus from terminal windows for new window mappings
	as the difference in usage between terminals and other apps seems
	to suggest this difference in treatment.  See #326159 for details,
	feedback welcome.

	* src/window.[ch] (__window_is_terminal): New function, currently
	an ugly hack and should be replaced by a new property set by
	applications if the behavior works to our liking,
	(window_state_on_map): don't transfer focus to new windows from
	terminals unless the new window is a transient of the focused
	terminal

	* src/keybindigns.c (handle_panel_keybinding): panel run dialog
	keybinding should be counted as an explicit transfer of focus to
	the new window, so override the
	don't-transfer-focus-from-terminals in this case
2006-01-10 18:33:53 +00:00
Elijah Newren
a4d1c6fd61 More thorough handling of source indication. Part of #326041.
2006-01-09  Elijah Newren  <newren@gmail.com>

	More thorough handling of source indication.  Part of #326041.

	* src/window.c (window_activate): new function based off the old
	meta_window_activate but which also takes source indication into
	account, (meta_window_active): just call window_activate() with
	the necessary source indication to get the behavior wanted,
	(meta_window_client_message): check source indication too for
	_net_active_window messages

	* src/window.h (enum MetaClientType): convenience enum for source
	indication handling
2006-01-10 05:44:40 +00:00
Elijah Newren
0f8add8b37 Make the taskbar less flash happy and fix up some related stacking issues.
2006-01-09  Elijah Newren  <newren@gmail.com>

	Make the taskbar less flash happy and fix up some related stacking
	issues.  #326035.

	* src/window.c (windows_overlap): new function,
	(meta_window_show): if a window is denied focus but doesn't
	overlap with the focus window there is no need to set the demands
	attention hint nor stack that window below the focus window,
	(meta_window_get_outer_rect): we're not modifying the window so
	declare it to be const
2006-01-10 05:14:48 +00:00
Elijah Newren
8c5b6c875a Fix window outline for minimized windows when using alt-esc. #325092.
2006-01-09  Elijah Newren  <newren@gmail.com>

	Fix window outline for minimized windows when using alt-esc.
	#325092.

	* src/display.c (meta_display_begin_grab_op): Specify the showing
	type of tabbing operation (Alt tab vs. alt-esc) in addition to the
	listing type of tabbing operation (docks vs normal windows) to
	meta_screen_ensure_tab_popup().

	* src/display.h (enum MetaTabShowType): new convenience enum

	* src/screen.[ch] (meta_screen_ensure_tab_popup): require the
	showing type be specified in addition to the tabbing type; put the
	outline around the window instead of the icon when in alt-esc
	mode.
2006-01-10 05:05:40 +00:00
Elijah Newren
ae52d731be Fix reduced resources resize handling for windows with sizing or resizing
2006-01-09  Elijah Newren  <newren@gmail.com>

	Fix reduced resources resize handling for windows with sizing or
	resizing constraints.  #325774.

	* src/display.c (meta_display_end_grab_op): Provide constraints.c
	with the correct gravity information.
2006-01-10 05:01:08 +00:00
Elijah Newren
d884f9ce8a Be more strict about what is considered a valid region with partial
2006-01-09  Elijah Newren  <newren@gmail.com>

	Be more strict about what is considered a valid region with
	partial struts.  Fixes #322070.

	* src/boxes.[ch]:
	(meta_rectangle_expand_region_conditionally):
	new function behaving like meta_rectangle_expand_region() but
	which only does so when the width and height of the rectangles
	meet a certain threshold

	(replace_rect_with_list):
	Remove a compiling warning

	* src/constraints.c:
	(constrain_partially_onscreen):
	provide minimum thresholds in each direction for the size of the
	rectangles to avoid cases where only a single pixel thick layer of
	a window might be showing
2006-01-10 04:57:51 +00:00
Elijah Newren
ee54debd6a Use the right function to remove the timeout so that we don't crash if
2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/bell.c (meta_bell_notify_frame_destroy): Use the right
	function to remove the timeout so that we don't crash if removed
	at an inopportune time.  Fixes #322031.
2006-01-10 04:50:17 +00:00
Elijah Newren
24cfed8cf0 Remove the "pull-away" edge resistance. Fixes another of the zillions of
2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Remove the
	"pull-away" edge resistance.  Fixes another of the zillions of
	issues covered in #321905.
2006-01-10 04:46:45 +00:00
Elijah Newren
008a811e10 Revert to the old edge resistance behavior for keyboard movement/resizing
2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Revert to the old
	edge resistance behavior for keyboard movement/resizing based
	resistance.  Not only makes the code much simpler and shorter, but
	also fixes another of the zillions of issues covered in #321905.
2006-01-10 04:42:30 +00:00
Elijah Newren
de65967b62 Remove the timeout resistance at screen/xinerama edges for the whiners.
2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Remove the
	timeout resistance at screen/xinerama edges for the whiners.
	Okay, it made sense.  Fixes another of the zillions of issues
	covered in #321905.
2006-01-10 04:39:53 +00:00
Elijah Newren
35532d14cb Make extra timeout edge resistance apply even if one edge already
2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Make extra
	timeout edge resistance apply even if one edge already offscreen.
	Fixes another of the zillions of issues covered in #321905.
2006-01-10 04:36:36 +00:00
Elijah Newren
9516694385 Allow edge resistance at both sides of a window and also when edges don't
2006-01-09  Elijah Newren  <newren@gmail.com>

	Allow edge resistance at both sides of a window and also when
	edges don't overlap but are a single pixel away from doing so.
	Fixes one of the zillions of issues covered in #321905.

	* src/boxes.[ch]:
	(meta_rectangle_edges_align):
	new function to handle the overlap or off by one determining
	whether edge resistance should kick in for an edge.

	(meta_rectangle_edge_cmp_ignore_type):
	new function to sort edges but ignore the type so that e.g. left &
	right edges of windows can be used interchangeably.

	(meta_rectangle_edge_cmp):
	now uses meta_rectangle_edge_cmp_ignore_type() to do most the work
	and just adds an extra condition

	* src/edge-resistance.c:
	(find_nearest_position):
	use meta_rectangle_edges_align() now to determine whether the
	edges align,

	(apply_edge_resistance, apply_edge_resistance_to_each_side):
	have the edge resistance kick in if either the beginning or ending
	positions would cause overlap in the given direction -- fixes an
	uncommon but annoying corner case,

	(apply_edge_snapping, apply_edge_resistance_to_each_side,
	 meta_display_cleanup_edges,
	 stupid_sort_requiring_extra_pointer_dereference, cache_edges):
	mix edges from both sides now
2006-01-10 04:33:58 +00:00
Elijah Newren
9eb56f151c Plug a few leaks. Fixes #309178.
2006-01-09  Elijah Newren  <newren@gmail.com>

	Plug a few leaks.  Fixes #309178.

	* src/main.c (main): remove an unneeded g_set_prgname() call, free
	some strings allocated by the GOptions parsing
2006-01-10 04:18:09 +00:00
Kjartan Maraas
e3ff2316fe Updated Norwegian bokmål translation. Same
2006-01-06  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.
	* no.po: Same
2006-01-06 17:58:32 +00:00
Elijah Newren
ab0ba52f89 Clarify how/why metacity-message is used a little 2006-01-02 19:01:29 +00:00
Elijah Newren
339948fcf2 Patch from Björn Lindqvist to fix a logic error. #322149.
2006-01-02  Elijah Newren  <newren@gmail.com>

	Patch from Björn Lindqvist to fix a logic error.  #322149.

	* src/window.c (update_resize): && should have been ||.
2006-01-02 18:48:30 +00:00
Elijah Newren
ebd0c7e9a6 Patch from Jens Granseuer to fix build with gcc 2.95. #322622.
2006-01-02  Elijah Newren  <newren@gmail.com>

	Patch from Jens Granseuer to fix build with gcc 2.95.  #322622.

	* src/boxes.c (meta_rectangle_region_to_string,
	  meta_rectangle_edge_list_to_string, fix_up_edges):
	* src/constraints.c (meta_window_constrain, setup_constraint_info,
	  place_window_if_needed, constrain_maximization,
	  constrain_fullscreen, constrain_size_increments,
	  constrain_size_limits, constrain_aspect_ratio,
	  do_screen_and_xinerama_relative_constrai,
	  constrain_to_single_xinerama, constrain_fully_onscreen,
	  constrain_partially_onscreen):
	* src/edge-resistance.c (find_nearest_position,
	  apply_edge_resistance, apply_edge_resistance_to_each_side):
	* src/testboxes.c (test_clamping_to_region,
	  test_clipping_to_region, test_shoving_into_region):
	* src/window.c (meta_window_new_with_attrs,
	  meta_window_apply_session_info, meta_window_resize,
	  meta_window_resize_with_gravity, meta_window_configure_request):
	Remove C99 style variable initiailization
2006-01-02 18:37:46 +00:00
Elijah Newren
d530c3e405 post-release version bump to 2.13.13
2006-01-02  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.13
2006-01-02 18:00:18 +00:00
Elijah Newren
be86740b3d 2.13.8 release
2006-01-02  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.8 release
2006-01-02 17:59:18 +00:00
Ilkka Tuohela
d4771cd9cf Updated Finnish translation 2005-12-30 14:03:29 +00:00
Clytie Siddall
a59f14adbc vi.po: Updated Vietnamese translation. 2005-12-30 07:49:05 +00:00
Elijah Newren
703f58cdf7 Make the workspace switcher work with dual-head (non-xinerama) setups.
2005-12-27  Elijah Newren  <newren@gmail.com>

	Make the workspace switcher work with dual-head (non-xinerama)
	setups.  Fixes #319423.

	* src/display.c (meta_display_open, event_callback,
	  meta_display_focus_the_no_focus_window):
	* src/display.h (struct MetaDisplay,
	  meta_display_focus_the_no_focus_window):
	* src/keybindings.c (primary_modifier_still_pressed):
	* src/screen.c (meta_screen_new):
	* src/screen.h (struct MetaScreen):
	* src/window.c (meta_window_new_with_attrs, meta_window_show):
	* src/workspace.c (meta_workspace_focus_default_window):
	Replace display->no_focus_window with a no_focus_window for each
	screen.

	* src/display.[ch] (meta_display_xwindow_is_a_no_focus_window,
	  event_callback):
	* src/window.c (meta_window_new_with_attrs):
	New utility function, meta_display_xwindow_is_a_no_focus_window(),
	for checking if the given xwindow is a no_focus_window for one of
	the screens.
2005-12-28 06:24:30 +00:00
Elijah Newren
5e9f20e94c since the title is going to be treated as markup, escape it. Fixes
2005-12-27  Elijah Newren  <newren@gmail.com>

	* src/tabpopup.c (meta_ui_tab_popup_new): since the title is going
	to be treated as markup, escape it.  Fixes #324846.
2005-12-27 16:40:47 +00:00
Kang Jeong-Hee
a710235e86 ko.po updated 2005-12-25 14:27:11 +00:00
Elijah Newren
53cba6ed37 Oops, I only meant to commit the changes to rationales.txt in the last commit 2005-12-22 07:08:38 +00:00
Elijah Newren
7e821f37fd Add xinerama and multi-head tracker bugs 2005-12-22 06:18:38 +00:00
Arangel Angov
830baad257 Macedonian Translation update <arangela@cvs.gnome.org> 2005-12-18 23:17:08 +00:00
Kang Jeong-Hee
6a9242b192 compile with compositor enabled 2005-12-14 12:47:35 +00:00
Elijah Newren
013c8b82db post-release version bump to 2.13.8
2005-12-12  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.8
2005-12-12 18:44:32 +00:00
Elijah Newren
37fb0af742 2.13.5 release
2005-12-12  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.5 release
2005-12-12 18:41:02 +00:00
Elijah Newren
12193322a8 make the debugging message actually correspond to the code. Patch from
2005-12-12  Elijah Newren  <newren@gmail.com>

	* src/window.c (update_net_frame_extents): make the debugging
	message actually correspond to the code.  Patch from Björn
	Lindqvist.  Fixes #322051.
2005-12-12 18:22:40 +00:00
Miloslav Trmac
d9721257d2 Updated Czech translation.
2005-12-11  Miloslav Trmac  <mitr@volny.cz>

	* cs.po: Updated Czech translation.
2005-12-11 21:59:28 +00:00
Ankitkumar Rameshchandra Patel
c08a660368 Updated Gujarati Translation 2005-12-11 13:27:25 +00:00
Adam Weinberger
77b148afdc Updated Canadian English translation.
2005-12-03  Adam Weinberger  <adamw@gnome.org>

	* en_CA.po: Updated Canadian English translation.
2005-12-03 21:02:19 +00:00
Kjartan Maraas
b4635f2143 Updated Norwegian bokmål translation. Same
2005-12-03  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.
	* no.po: Same
2005-12-03 10:59:44 +00:00
Kjartan Maraas
b3f465c727 Make the wireframe a bit slimmer 2005-11-29 21:36:12 +00:00
Davyd Madeley
616d778f6b display hostname in titlebar for remote X clients. Closes bug #322202.
2005-11-24  Davyd Madeley  <davyd@fugro-fsi.com.au>

        * src/window-props.c: display hostname in titlebar for remote X
          clients. Closes bug #322202.
2005-11-23 17:08:03 +00:00
Marcel Telka
6fa00967a5 Updated Slovak translation.
2005-11-22  Marcel Telka  <marcel@telka.sk>

	* sk.po: Updated Slovak translation.
2005-11-22 23:08:02 +00:00
Elijah Newren
35925d1cf1 post-release version bump to 2.13.5
2005-11-22  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.5
2005-11-22 16:12:54 +00:00
Elijah Newren
d74b0ce151 2.13.3 release
2005-11-22  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.3 release
2005-11-22 16:11:53 +00:00
Alexander Shopov
ca6991d4a8 Updated Bulgarian translation by Alexander Shopov <ash@contact.bg>
2005-11-22  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Alexander Shopov <ash@contact.bg>
2005-11-22 15:54:50 +00:00
Elijah Newren
ca2fe384bc Don't allow removing a window from maximized or fullscreened state to
2005-11-22  Elijah Newren  <newren@gmail.com>

	Don't allow removing a window from maximized or fullscreened state
	to place the titlebar under the top panel.  Fixes #322075.

	* src/display.c (handle_net_moveresize_window): fix up previous
	comments now that I know a little more, modify the code just
	slightly to clarify that this is NOT a manual user move/resize
	operation

	* src/window.c (meta_window_unmaximize,
	  meta_window_unmake_fullscreen,
	  meta_window_shove_titlebar_onscreen):
	don't claim that these are manual user move/resize operations
2005-11-22 15:48:30 +00:00
Theppitak Karoonboonyanan
65168cf8c9 Updated Thai translation.
2005-11-22  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.
2005-11-22 06:03:52 +00:00
Elijah Newren
b03d82661f Relax the partially onscreen constraint to allow the titlebar to touch the
2005-11-21  Elijah Newren  <newren@gmail.com>

	* src/constraints.c (constrain_partially_onscreen): Relax the
	partially onscreen constraint to allow the titlebar to touch the
	bottom panel in order to make the new constraints code function
	the same as the old version.  Fixes #322071.
2005-11-22 00:22:41 +00:00
Francisco Javier F. Serrador
20e6b8d2f8 Updated Spanish translation.
2005-11-21  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2005-11-21 22:20:32 +00:00
Elijah Newren
3426844ad5 When updating the xinerama due to placement, update which maximal/spanning
2005-11-21  Elijah Newren  <newren@gmail.com>

	* src/constraints.c (place_window_if_needed): When updating the
	xinerama due to placement, update which maximal/spanning rect set
	to use as well
2005-11-21 21:35:31 +00:00
Elijah Newren
a3902fb922 Oops, missed a couple cleanups in this documentation 2005-11-21 18:19:58 +00:00
Elijah Newren
0fdbdbd236 It took me a little while to figure out how struts & workareas are updated
2005-11-21  Elijah Newren  <newren@gmail.com>

	* doc/strut-and-related-updating.txt: It took me a little while to
	figure out how struts & workareas are updated and to learn what
	all the related functions were used for so I thought I'd clean up
	my notes and make them available.  This will probably be more
	useful now since regions and edges are also computed and stored at
	the some time as the workareas.
2005-11-21 18:16:52 +00:00
Elijah Newren
9641bc5ee7 compute the frame geometry due to maximization only after actually
2005-11-20  Elijah Newren  <newren@gmail.com>

	* src/constraints.c (place_window_if_needed): compute the frame
	geometry due to maximization only after actually maximizing.
	Fixes #321902.
2005-11-21 06:00:18 +00:00
Davyd Madeley
d1da3438d4 Use GPOINTER_TO_INT() macro instead of cast to allow compilation on 64-bit
2005-11-21  Davyd Madeley  <davyd@fugro-fsi.com.au>

        * src/edge-resistance.c (meta_display_compute_resistance_and_snap):
          Use GPOINTER_TO_INT() macro instead of cast to allow compilation on
          64-bit architectures without warning.
2005-11-21 02:58:36 +00:00
Francisco Javier F. Serrador
f9a4aea0cf Updated Spanish translation.
2005-11-20  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2005-11-20 18:04:11 +00:00
Ignacio Casal Quinteiro
0ac220aecd *** empty log message *** 2005-11-20 11:31:22 +00:00
Elijah Newren
075d6d34db differentiate between movement towards an edge and movement away from one.
2005-11-19  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): differentiate
	between movement towards an edge and movement away from one.  Pick
	smaller constants for movement away from an edge.
2005-11-20 04:02:46 +00:00
Takeshi AIHANA
dfbec3a4c3 Updated Japanese translation for v2.13.2.
2005-11-20  Takeshi AIHANA <aihana@gnome.gr.jp>

	* ja.po: Updated Japanese translation for v2.13.2.
2005-11-20 02:58:03 +00:00
Elijah Newren
466ce4a936 Add another fixed bug to the ChangeLog and NEWS that I missed earlier 2005-11-19 21:53:12 +00:00
Elijah Newren
c78a98e066 post-release version bump to 2.13.3
2005-11-19  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.3
2005-11-19 16:54:03 +00:00
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
169 changed files with 91150 additions and 55496 deletions

View File

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

2288
ChangeLog

File diff suppressed because it is too large Load Diff

81
HACKING
View File

@@ -11,6 +11,7 @@ is nonetheless useful.
Overview
Administrative issues
Minimal Building/Testing Environment
Relevant standards and X properties
Debugging and testing
Debugging logs
@@ -34,6 +35,29 @@ Administrative issues
instructions is that the minor version number of a Metacity release
should always be a number from the Fibonacci sequence.
Minimal Building/Testing Environment
You do not need to _install_ a development version of Metacity to
build, run and test it; you can run it from some temporary
directory. Also, you do not need to build all of Gnome in order to
build a development version of Metacity -- odds are, you can build
metacity from CVS without building any other modules.
As long as you have gtk+ >= 2.6 with your distro, you should be able
to install your distro's development packages (e.g. gtk2-devel,
GConf2-devel, startup-notification-devel on Fedora; also, remember
to install the gnome-common package which is needed for building cvs
versions of Gnome modules like Metacity) and be ready to build and
test Metacity. Steps to do so:
$ cvs -q -z3 -d :pserver:anonymous@anoncvs.gnome.org:/cvs/gnome \
checkout metacity
$ cd metacity
$ ./autogen.sh --prefix /usr
$ make
$ ./src/metacity --replace
Again, note that you do not need to run 'make install'.
Relevant standards and X properties
There are two documents that describe some basics about how window
managers should behave: the ICCCM (Inter-Client Communication Conventions
@@ -69,16 +93,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 +131,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
@@ -175,17 +208,43 @@ Debugging information
metacity-message restart
metacity-message enable-keybindings
metacity-message disable-keybindings
The first of these is useful for testing themes, the second is just
another way (besides the --restart flag to metacity itself) of
restarting metacity, and the third is useful for testing Metacity when
running it under an Xnest (typically, the Metacity under the Xnest
wouldn't get keybinding notifications--making keyboard navigation not
work--but if you disable the keybindings for the global Metacity then
the Metacity under the Xnest can then get those keybinding notifications).
metacity-window-demo
metacity-window-demo is good for trying behavior of various kinds
of window without launching a full desktop.
Technical gotchas to keep in mind
Files that include gdk.h or gtk.h are not supposed to include display.h
or window.h or other core files.
Files that include gdk.h or gtk.h are not supposed to include
display.h or window.h or other core files. Files in the core
(display.[hc], window.[hc]) are not supposed to include gdk.h or
gtk.h. Reasons:
Files in the core (display.[hc], window.[hc]) are not supposed to include
gdk.h or gtk.h.
"Basically you don't want GDK most of the time. It adds
abstractions that cause problems, because they aren't designed to
be used in a WM where we do weird stuff (display grabs, and just
being the WM). At best GDK adds inefficiency, at worst it breaks
things in weird ways where you have to be a GDK guru to figure
them out. Owen also told me that they didn't want to start adding
a lot of hacks to GDK to let a WM use it; we both agreed back in
the mists of time that metacity would only use it for the "UI"
bits as it does.
Having the split in the source code contains and makes very clear
the interface between the WM and GDK/GTK. This keeps people from
introducing extra GDK/GTK usage when it isn't needed or
appropriate. Also, it speeds up the compilation a bit, though this
was perhaps more relevant 5 years ago than it is now.
There was also a very old worry that the GDK stuff might have to
be in a separate process to work right; that turned out to be
untrue. Though who knows what issues the CM will introduce."
Remember that strings stored in X properties are not in UTF-8, and they
have to end up in UTF-8 before we try putting them through Pango.

11
MAINTAINERS Normal file
View File

@@ -0,0 +1,11 @@
Currently active maintainers
----------------------------
Havoc Pennington
E-mail: hp@redhat.com
Elijah Newren
E-mail: newren@gmail.com
Søren Sandmann
E-mail: sandmann@redhat.com

View File

@@ -4,4 +4,4 @@ SUBDIRS=src po doc
EXTRA_DIST=HACKING rationales.txt \
intltool-extract.in intltool-merge.in intltool-update.in
DISTCLEANFILES = intltool-extract intltool-merge intltool-update
DISTCLEANFILES = intltool-extract intltool-merge intltool-update po/stamp-it po/.intltool-merge-cache

767
NEWS
View File

@@ -1,3 +1,756 @@
2.15.3
==
Thanks to Søren Sandmann, Elijah Newren, Paolo Borelli, Björn
Lindqvist, jylefort at FreeBSD org,
- various code cleanups (Søren)
- prevent long titles from "sticking" in the tasklist (Elijah) [#330671]
- handle sync counter notifications in the compositor (Søren)
- notes/documentation updates (Elijah)
- plug a small leak (Paolo)
- remove a lot of dead code obsoleted by the new edge-resistance
stuff (Björn) [#341561]
- prevent a crash when changing resolution (jylefort) [#340847]
- revert an accessibility module loading workaround from Gnome 2.6
that has long since been fixed for us in gtk+ (Elijah) [#123372]
Translations
Francisco Javier F. Serrador (es), Ignacio Casal Quinteiro (gl),
Raivis Dejus (lv), Kjartan Maraas (nb), Funda Wang (zh_CN), Woodman
Tuen (zh_HK), Woodman Tuen (zh_TW)
2.15.2
==
Here's hoping that "third time's a charm." ;-) This release just
fixes the translations-not-included issue. See
http://mail.gnome.org/archives/desktop-devel-list/2006-April/msg00483.html
for more details.
- Use gnome-autogen.sh like most other modules (Rodney)
2.15.1
==
This release just fixes the control-center build (which depends upon
libmetacity-private). Thanks to Vincent for catching the problem.
- Include boxes.h in the includes dir (Elijah) [#339708]
2.15.0
==
Thanks to Thomas Thurman, Elijah Newren, Havoc Pennington, Björn
Lindqvist, Gora Mohanty, Alejandro Andres, Andy Morum, Dan Sanders,
Thomas Andersen, Brian Pepple, and Søren Sandmann for improvements in
this release. (Note that "Thomas" below refers to Thomas Thurman if
last name isn't specified)
- An endless array of compositor updates, not all of which are well
explained in the ChangeLog. ;-) Includes an ability to enable and
disable the compositor at runtime, fixed up wobbling effect and new
explosion effect, special magnification handling, different opacity
for different window types like menus, a way of scaling windows,
handling of foreign displays, improved handling of window
moving/resizing, various code restructuring, special runtime checks
for correct extensions and other compositors, lots of bug fixes,
and possibly other stuff I'm missing or not understanding (Søren)
- Removed "move to another workspace" menu when there are exactly two
workspaces (Thomas) [#151183]
- fix type for compositing_manager schema entry (Elijah) [#335901]
- Port more properties to our async system for code cleanliness and
speed improvements (Havoc, Thomas)
- Lots of code cleanup, even more code cleanup, wow our code was
messy (Björn) [#335177, #337507, #336890, #338359]
- Abstract out the functions for setting/unsetting demands attention
hint and avoid doing it when the window isn't obscured (Thomas)
[#305882]
- Change strings to make them more readable, and more
translatable (Gora) [#335720]
- Reduce compiling warnings -- add a number of casts and change
signedness on a number of variables (Björn) [#336032]
- Fixed broken links in README (Alejandro) [#333303]
- Add a tabbing function, bound to alt-f6 by default, to cycle
through the windows of the current application (Thomas) [#94682]
- Fix the build with --disable-xsync (Andy) [#336605]
- Raise windows on maximize/unmaximize (Dan) [#335076]
- Don't have confirmation windows make applications appear to be
locked when closing via the window list (Dan) [#334899]
- Allow any keybinding pref to be specified either with <foo>, a
string, or <foo>_list, a list of strings, or both (Thomas)
[#164831]
- warn and ignore if transient_for is set to a non-top-level window
(Thomas Andersen) [#335524]
- Use po/LINGUAS for listing supported languages (Brian) [#337951]
Translations
Vladimir Petkov (bg), Jordi Mallach (ca), Miloslav Trmac (cs), Rhys
Jones (cy), Lasse Bang Mikkelsen (da), Frank Arnold (de), Kostas
Papadimas (el), Francisco Javier F. Serrador (es), Ivar Smolin (et), Iñaki
Larrañaga (eu), Farzaneh Sarafraz (fa), Ilkka Tuohela (fi), Ignacio Casal
Quinteiro (gl), Ankit Patel (gu), Rajesh Ranjan (hi), Gabor Kelemen (hu),
Satoru SATOH (ja), Alexander Didebulidze (ka), Žygimantas Beručka (lt),
Kjartan Maraas (nb), Michiel Sikkes (nl), Åsmund Skjæveland (nn), Gora
Mohanty (or), Raphael Higino (pt_BR), Duarte Loreto (pt), Mugurel Tudor (ro),
Leonid Kanter (ru), Steve Murphy (rw), Laurent Dhima (sq), Слободан Д.
Средојевић (sr), Daniel Nylander (sv), Theppitak Karoonboonyanan (th), Maxim
Dziumanenko (uk), Clytie Siddall (vi), Funda Wang (zh_CN)
2.14.3
==
This release just reverts the widely hated new focus behavior of Metacity
2.14.x to the behavior found in 2.12.x. Patch came from Ron Yorston.
See http://blogs.gnome.org/view/newren/2006/04/13/0 and
http://mail.gnome.org/archives/release-team/2006-April/msg00025.html for
more details.
- Add a focus_new_windows gconf key, change the default to 'smart' (2.12
behavior) and add a 'strict' option to get 2.14 behavior. (Ron)
[#326159]
Translations
Vladimir Petkov (bg), Miloslav Trmac (cs), Frank Arnold (de), Francisco
Javier F. Serrador (es), Ilkka Tuohela (fi), Tino Meinen (nl), Åsmund
Skjæveland (nn), Raphael Higino (pt_BR), Daniel Nylander (sv)
2.14.2
==
Thanks to Thomas Thurman, Paolo Borelli, Björn Lindqvist, and
Elijah Newren for fixes in this release.
- Fix constraints bug causing negative width windows and crashes
(Elijah) [#336651]
- Fix window grouping with parent/child windows (Björn) [#336184]
- use g_str_has_prefix instead of a local copy of the function
(Paolo) [#334643]
- Make sure pager can refresh when window is minimized on a different
workspace (Thomas) [#315142]
- Add debugging information for edge resistance (Elijah)
Translations
Vladimir Petkov (bg), tangi.bzh (br), Jordi Mallach (ca), Miloslav
Trmac (cs), Rhys Jones (cy), Lasse Bang Mikkelsen (da), Frank
Arnold (de), Mindu Dorji (dz), Kostas Papadimas (el), Francisco
Javier F. Serrador (es), Ivar Smolin (et), Iñaki Larrañaga
Murgoitio (eu), Elnaz Sarbar (fa), Ilkka Tuohela (fi),
Ignacio Casal Quinteiro (gl), Ankit Patel (gu), Rajesh Ranjan (hi)
Gabor Kelemen (hu), Luca Ferretti (it), Satoru SATOH (ja), Vladimer
Sichinava (ka), Žygimantas Beručka (lt), Kjartan Maraas (nb),
Tino Meinen (nl), Kjartan Maraas (no), Gora Mohanty (or), Gnome PL
Team (pl), Evandro Fernandes Giovanini (pt_BR), Duarte Loreto (pt),
Mugurel Tudor (ro), Leonid Kanter (ru), Laurent Dhima (sq),
Слободан Д. Средојевић (sr), Daniel Nylander (sv), Theppitak
Karoonboonyanan (th), Maxim Dziumanenko (uk), Clytie Siddall (vi),
Funda Wang (zh_CN)
2.14.1
==
The only change since 2.14.0 is to remove the "This is the UNSTABLE
branch" warning from configure for those compiling Metacity from
source.
2.14.0
==
Thanks to Ryan Lortie and Thomas Thurman for fixes in this release.
- Mark the app-running-remotely-window-title string for translation
(Thomas) [#334332]
- Only unmaximise window before freeing if the window is actually
maximised (Ryan) [#333563]
Translations
Jordi Mallach (ca), Frank Arnold (de), Luca Ferretti (it), Evandro
Fernandes Giovanini (pt_BR), Theppitak Karoonboonyanan (th)
2.13.144
==
Thanks to Jens Granseuer, Kristian, Søren Sandmann, Sylvain
Bertrand, and Thomas Thurman for improvements in this release.
- Fix build with gcc 2.95 (Jens) [#331166]
- Compositor improvements [remember, still off by default]: add
unused wobbly (un)minimize animation (Kristian), add support for
turning updates on and off (Søren), use sync counter to make
composited resizing tear free (Søren), add ability to unmanage
the screen (Søren),
- Fix build issue with library search order (Sylvain) [#330695]
- Work around buggy application grouping with transient windows
(Thomas) [#328211]
- Prevent setting cycle_windows to keybindings that won't work.
(Thomas) [#329676]
2.13.89
==
Thanks to Søren Sandmann, Thomas Thurman, Thom May, Akira Tagoh,
Luke Morton, and Philip O'Brien for improvements in this release.
- Compositor improvements [remember that the compositor is still
disabled by default]: New fancy minimize animation that fades in
and out, new debug stuff, various bug fixes (Søren)
- When buggy apps create synthetic button or keypresses without a
timestamp, produce a warning instead of failing an assertion
(Thomas) [#313490]
- Avoid a memory leak when checking which workspace(s) a window is
on (Thomas) [#322059]
- Add a man page for metacity (Thom, Akira, Luke, Philip) [#321279]
- Disable alt-f7 if a window can't be moved, and alt-f8 if it can't
be resized (Thomas) [#328920]
- Allow alt-escape to cancel alt-tabbing, and vice versa (Thomas)
[#141425]
Translations
Miloslav Trmac (cs), Kjartan Maraas (nb), Tino Meinen (nl),
Kjartan Maraas (no), Слободан Д. Средојевић (sr), Funda Wang (zh_CN)
2.13.55
==
Thanks to Dick Marinus, Christian Kirbach, and Elijah Newren for
improvements in this release.
- Add a minimize and none double-click-titlebar-action (Dick)
[#300210]
- Prevent a critical warning crasher when switching themes
(Christian) [#327847]
- Fix some uninitialized value problems (Elijah)
- If the mouse enters a window on a different screen, activate the
default window on the new screen (Elijah) [#319348]
Translations
Jordi Mallach (ca), Adam Weinberger (en_CA), Francisco Javier
F. Serrador (es), Ilkka Tuohela (fi), Ignacio Casal Quinteiro (gl),
Ankit Patel (gu), Kjartan Maraas (nb), Kjartan Maraas (no), Evandro
Fernandes Giovanini (pt_BR), Theppitak Karoonboonyanan (th), Clytie
Siddall (vi), Funda Wang (zh_CN)
2.13.34
==
Thanks to Damien Carbery, Havoc Pennington, Søren Sandmann,
Björn Lindqvist, Kjartan Maraas, Elijah Newren for improvements in
this release.
- manually define HOST_NAME_MAX if not already defined to fix Solaris
compilation issue (Damien, Havoc) [#326745]
- compositor improvements: port to changes in libcm, do it again, fix
unrefing, make minimize animation update again (all done by Søren)
- make sure an outline border is shown even if a window decoration's
width is 0 (Björn) [#98340]
- correctly handle window alt-tab outlines in showing desktop mode
(Björn) [#98340]
- fix lots of tiny issues spotted by the intel compiler (Kjartan)
[#321439]
- prevent rapidly repeated visual bells from hanging metacity
(Elijah) [#322032]
- more careful error handling of values returned by GConf (Elijah)
[#326615]
- fix various initialization and default issues, especially for
running with --disable-gconf. Make --disable-gconf actually work.
(Elijah) [#326661]
- fix some reading-from-free'd-data errors (Søren) [#327575]
- fix an unitialized value problem when in raise-on-click mode
(Søren) [#327572]
- avoid flashing original-sized window when closing a maximized
window (Elijah) [#317254]
- prevent windows from sometimes getting shoved and smashed by
sliding (and possibly auto-hiding) panels (Elijah) [#327822]
Translations
Ilkka Tuohela (fi), Ignacio Casal Quinteiro (gl), Tino Meinen (nl),
Funda Wang (zh_CN)
2.13.21
==
Thanks to Damien Carbery, Ray Strode, Søren Sandmann, Elijah
Newren, Jens Granseuer, and Kyle Ambroff for improvements in this
release.
- Fix Solaris compilation issues (Ray, Damien) [#326281, #326746]
- Merge compositor work from branches to get the beginnings of an openGL
based compositor. Still not ready and thus disabled by default.
(Søren)
- Composite fixes: Only update composite on damage events (Søren), get
non-composite compilation working again (Elijah), Really turn off
draw-in-a-loop (Søren)
- Don't dereference a NULL string (Elijah) [#327013]
- GCC 2.95 fix; remove more C99 style variable initiailizations (Jens)
[#327050]
- Fix accidental overzealous focus holding by the terminal (introduced in
last release) so that windows launched from panel icons, the panel
menu, or global keybindings should get focus now. (Elijah) [#326159]
- If no valid window is found in the MRU list, then set focus to the
desktop window. (Kyle) [#317405]
Translations
Adam Weinberger (en_CA), Francisco Javier F. Serrador (es), Ankit
Patel (gu), Takeshi AIHANA (ja), Theppitak Karoonboonyanan (th),
Clytie Siddall (vi)
2.13.13
==
Thanks to Jens Granseuer, Björn Lindqvist, and Elijah Newren for
improvements in this release.
- Remove C99 style variable initiailization (Jens) [#322622]
- Fix a logic error (Björn) [#322149]
- Plug a few leaks (Elijah) [#309178]
- Allow edge resistance at both sides of a window and also when edges
don't overlap but are a single pixel away from doing so (Elijah)
[part of #321905]
- Remove the timeout resistance at screen/xinerama edges (Elijah)
[part of #321905]
- Revert to the old edge resistance behavior for keyboard
movement/resizing based resistance (Elijah) [part of #321905]
- Remove the "pull-away" edge resistance (Elijah) [part of #321905]
- Avoid crashing when visual bell is in use and focus window is
closed (Elijah) [#322031]
- Be more strict about what is considered a valid region with partial
struts (Elijah) [#322070]
- Fix reduced resources resize handling for windows with sizing or
resizing constraints (Elijah) [#325774]
- Fix window outline for minimized windows when using alt-esc
(Elijah) [#325092]
- Make the taskbar less flash happy and fix up some related stacking
issues (Elijah) [#326035]
- More thorough handling of source indication (Elijah) [part of #326041]
- Don't "steal" focus from terminal windows for new window mappings
as the difference in usage between terminals and other apps seems
to suggest this difference in treatment. See bug #326159 for
details, feedback welcome (Elijah) [#326159]
- Add a raise on click option, basically only because all the major
distros are patching it in anyway (though each and every one of
them has bugs in their implementations). (Elijah) [#326156]
Translations
Kjartan Maraas (nb), Kjartan Maraas (no)
2.13.8
==
Thanks to Kang Jeong-Hee and Elijah Newren for improvements in this
release.
- Fix some compilation warnings and issues (Kang)
- Escape the title since it is going to be treated as Markup (Elijah)
[#324846]
- Make the workspace switcher work with dual-head (non-xinerama)
setups (Elijah) [#319423]
Translations
Ilkka Tuohela (fi), Ankit Patel (gu), Kang Joeng-Hee (ko)
2.13.5
==
Thanks to Davyd Madeley, Kjartan Maraas, and Björn Lindqvist for
improvements in this release.
- Make a debugging message actually correspond to the code (Björn)
[#322051]
- Make the wireframe a bit slimmer (Kjartan) [#320051]
- Display hostname in titlebar for remote X clients (Davyd) [#322202]
Translations
Miloslav Trmac (cs), Adam Weinberger (en_CA), Ankit Patel (gu),
Kjartan Maraas (nb), Kjartan Maraas (no), Marcel Telka (sk)
2.13.3
==
This is a special edition release just for gicmo, code-named 'elijah,
please do a release so magic seb can bring it to me'. It fixes a
number of issues due to the major constraints changes found since the
last release.
Thanks to Davyd Madeley and Elijah Newren for improvements in this release.
- Differentiate between movement towards an edge and movement away from
one for edge-resistance. Pick smaller constants for movement away from
an edge (Elijah)
- Use GPOINTER_TO_INT() macro instead of cast to allow compilation on
64-bit architectures without warning (Davyd)
- compute the frame geometry due to maximization only after actually
maximizing (Elijah) [#321902]
- add some developer documentation on updating struts, workareas, regions,
and edges (Elijah)
- When updating the xinerama due to placement, update which
maximal/spanning rect set to use as well (Elijah) [#322068]
- Relax the partially onscreen constraint to allow the titlebar to touch
the bottom panel in order to make the new constraints code function the
same as the old version (Elijah) [#322071]
- Don't allow removing a window from maximized or fullscreened state to
place the titlebar under the top panel (Elijah) [#322075]
Translations
Vladimir Petkov (bg), Francisco Javier F. Serrador (es), Ignacio Casal
Quinteiro (gl), Takeshi AIHANA (ja), Theppitak Karoonboonyanan (th)
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
86644 - resize should have a shift option like move does
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ö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ö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ö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ñ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),
Žygimantas Berucka (lt), Michiel Sikkes (nl), Leonid Kanter (ru), Danilo
Šegan (sr), Baris Cicek (tr)
2.11.3
==
Thanks to Björn Lindqvist and Elijah Newren for improvements in
this release.
- Check for the right versions of glib and gtk+ (Bjö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ö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ö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), Žygimantas Berucka (lt),
Reinout van Schouwen (nl), Mugurel Tudor (ro), Danilo Š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
==
@@ -39,7 +792,7 @@ Marcus Clarke for fixes in this release.
Translations
Jordi Mallach (ca), Martin Willemoes Hansen (da),
Kostas Papadimas (el), David Lodge (en_GB),
Francisco Javier F. Serrador (es), T<EFBFBD>ivo Leedj<EFBFBD>rv (et),
Francisco Javier F. Serrador (es), Tõivo Leedjä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),
@@ -107,7 +860,7 @@ 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), <EFBFBD>ygimantas Berucka (lt),
Young-Ho, Changwoo Ryu (ko), Žygimantas Berucka (lt),
Kjartan Maraas (nb), Kjartan Maraas (no), Duarte Loreto (pt),
Marcel Telka (sk), Christian Rose (sv),
Theppitak Karoonboonyanan (th)
@@ -214,7 +967,7 @@ Vincent Untz for fixes/features in this release.
Translations
da (Martin Willemoes Hansen), fr(Christophe Merlet, Baptiste
Mille-Mathias), lt(<EFBFBD>ygimantas Berucka), ja(Takeshi AIHANA)
Mille-Mathias), lt(Žygimantas Berucka), ja(Takeshi AIHANA)
2.9.0
==
@@ -245,7 +998,7 @@ and Vincent Untz for fixes and features in this release.
- Re-enable focus stealing prevention (Elijah)
Translations
es(Francisco Javier F. Serrador), sq(Laurent Dhima), sr(Danilo <EFBFBD>egan),
es(Francisco Javier F. Serrador), sq(Laurent Dhima), sr(Danilo Šegan),
cs(Miloslav Trmac), en_CA(Adam Weinberger), en_GB(David Lodge)
2.8.6
@@ -280,7 +1033,7 @@ Translations
* ar(Abdulaziz Al-Arfaj), cs(Miloslav Trmac), cy(Dafydd Harries),
en_GB(David Lodge), fr(Christophe Merlet (RedFox)),
nn(<EFBFBD>smund Skj<EFBFBD>veland), or(Gora Mohanty),
nn(Åsmund Skjæveland), or(Gora Mohanty),
pr_BR(Gustavo Noronha Silva), ro(Mugurel Tudor),
th(Paisa Seeluangsawat), tr(Baris Cicek), zh_TW(Woodman Tuen)
@@ -318,7 +1071,7 @@ Fixes
Translations
* az(Metin Amiroff), bs(Kemal Sanjta), ca(Jordi Mallach),
el(Kostas Papadimas), es(Francisco Javier F. Serrador),
eu(I<EFBFBD><EFBFBD>aki Larra<EFBFBD><EFBFBD>aga Murgoitio), fi(Pauli Virtanen),
eu(Iñaki Larrañaga Murgoitio), fi(Pauli Virtanen),
nb(Kjartan Maraas), sq(Laurent Dhima), uk(Maxim Dziumanenko)
@@ -346,7 +1099,7 @@ Fixes
Translations
* fi (Pauli Virtanen), ja (Takeshi AIHANA), ko (Young-Ho, Cha),
pl (Gnome PL Team), ru (Dmitry G. Mastrukov), sr (Danilo <EFBFBD>Ł<EFBFBD>egan),
pl (Gnome PL Team), ru (Dmitry G. Mastrukov), sr (Danilo Šegan),
tk (Gurban M. Tewekgeli), zh_CN (Funda Wang)
2.8.2

9
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-
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, 2.14.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, 2.15.x
COMPILING METACITY
===
@@ -314,8 +315,8 @@ A: Metacity only stores sizes/positions for apps that are session
archaic than twm - and you should flame them. ;-)
Docs on session management:
ftp://ftp.x.org/pub/R6.4/xc/doc/hardcopy/SM/xsmp.PS.gz
ftp://ftp.x.org:21/pub/R6.4/xc/doc/hardcopy/SM/SMlib.PS.gz
http://www.fifi.org/doc/xspecs/xsmp.txt.gz
http://www.fifi.org/doc/xspecs/SMlib.txt.gz
See also the ICCCM section on SM. For GNOME apps, use the
GnomeClient object. For a simple example of using libSM directly,

View File

@@ -4,140 +4,18 @@
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
cd $srcdir
PROJECT=metacity
TEST_TYPE=-f
FILE=src/display.c
PKG_NAME="metacity"
REQUIRED_AUTOMAKE_VERSION=1.7
DIE=0
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile $PROJECT."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at http://ftp.gnu.org/gnu/autoconf/"
DIE=1
(test -f $srcdir/configure.in \
&& test -d $srcdir/src) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level metacity directory"
exit 1
}
if automake-1.9 --version < /dev/null > /dev/null 2>&1; then
AUTOMAKE=automake-1.9
ACLOCAL=aclocal-1.9
elif automake-1.8 --version < /dev/null > /dev/null 2>&1; then
AUTOMAKE=automake-1.8
ACLOCAL=aclocal-1.8
elif automake-1.7 --version < /dev/null > /dev/null 2>&1; then
AUTOMAKE=automake-1.7
ACLOCAL=aclocal-1.7
else
echo
echo "You must have automake >= 1.7 installed to compile $PROJECT."
echo "Get http://ftp.gnu.org/gnu/automake/automake-1.9.3.tar.bz2"
echo "(or a newer version if it is available)"
DIE=1
fi
(grep "^AM_PROG_LIBTOOL" configure.in >/dev/null) && {
(libtool --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`libtool' installed to compile $PROJECT."
echo "Get http://ftp.gnu.org/gnu/libtool/libtool-1.5.10.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
which gnome-autogen.sh || {
echo "You need to install gnome-common from the GNOME CVS"
exit 1
}
CONFIGURE=configure.in
if grep "^AM_[A-Z0-9_]\{1,\}_GETTEXT" "$CONFIGURE" >/dev/null; then
if grep "sed.*POTFILES" "$CONFIGURE" >/dev/null; then
GETTEXTIZE=""
else
if grep "^AM_GLIB_GNU_GETTEXT" "$CONFIGURE" >/dev/null; then
GETTEXTIZE="glib-gettextize"
GETTEXTIZE_URL="ftp://ftp.gtk.org/pub/gtk/v2.0/glib-2.0.0.tar.gz"
else
GETTEXTIZE="gettextize"
GETTEXTIZE_URL="ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz"
fi
$GETTEXTIZE --version < /dev/null > /dev/null 2>&1
if test $? -ne 0; then
echo
echo "**Error**: You must have \`$GETTEXTIZE' installed to compile $PKG_NAME."
echo "Get $GETTEXTIZE_URL"
echo "(or a newer version if it is available)"
DIE=1
fi
fi
fi
if test "$DIE" -eq 1; then
exit 1
fi
test $TEST_TYPE $FILE || {
echo "You must run this script in the top-level $PROJECT directory"
exit 1
}
if test -z "$*"; then
echo "I am going to run ./configure with no arguments - if you wish "
echo "to pass any to it, please specify them on the $0 command line."
fi
topdir=`pwd`
for coin in .
do
dr=`dirname $coin`
if test -f $dr/NO-AUTO-GEN; then
echo skipping $dr -- flagged as no auto-gen
else
echo processing $dr
cd $dr
if grep "^AM_GLIB_GNU_GETTEXT" configure.in >/dev/null; then
if grep "sed.*POTFILES" configure.in >/dev/null; then
: do nothing -- we still have an old unmodified configure.in
else
echo "Creating $dr/aclocal.m4 ..."
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
echo "Running glib-gettextize... Ignore non-fatal messages."
echo "no" | glib-gettextize --force --copy || exit $?
echo "Making $dr/aclocal.m4 writable ..."
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
fi
fi
if grep "^AC_PROG_INTLTOOL" configure.in >/dev/null; then
echo "Running intltoolize..."
intltoolize --force --copy --automake || exit $?
fi
if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
echo "Running libtoolize..."
libtoolize --force --copy || exit $?
fi
echo "Running $ACLOCAL $ACLOCAL_FLAGS ..."
$ACLOCAL $ACLOCAL_FLAGS || exit $?
echo "Running autoconf ..."
autoconf || exit $?
if grep "^AC_CONFIG_HEADERS" configure.in >/dev/null; then
echo "Running autoheader..."
autoheader || exit $?
fi
echo "Running $AUTOMAKE..."
$AUTOMAKE --add-missing --force --gnu || exit $?
cd $topdir
fi
done
conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c
cd "$ORIGDIR"
if test x$NOCONFIGURE = x; then
echo Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure $conf_flags "$@" \
&& echo Now type \`make\' to compile $PROJECT || exit $?
else
echo Skipping configure process.
fi
USE_GNOME2_MACROS=1 USE_COMMON_DOC_BUILD=yes . gnome-autogen.sh

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.21],
AC_INIT([metacity], [2.15.3],
[http://bugzilla.gnome.org/enter_bug.cgi?product=metacity])
AC_CONFIG_SRCDIR(src/display.c)
@@ -18,7 +18,7 @@ GETTEXT_PACKAGE=metacity
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain])
AC_PROG_INTLTOOL([0.21])
IT_PROG_INTLTOOL([0.34.90])
AC_PROG_CC
AC_ISC_POSIX
AC_HEADER_STDC
@@ -155,12 +155,14 @@ 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"
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"
@@ -219,7 +221,7 @@ fi
if test x$have_xcomposite = xyes; then
echo "Building with CompositeExt"
METACITY_PC_MODULES="$METACITY_PC_MODULES xcomposite >= $XCOMPOSITE_VERSION xfixes xrender xdamage"
METACITY_PC_MODULES="$METACITY_PC_MODULES xcomposite >= $XCOMPOSITE_VERSION xfixes xrender xdamage cm"
AC_DEFINE(HAVE_COMPOSITE_EXTENSIONS, , [Building with compositing manager support])
## force on render also
@@ -258,6 +260,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
@@ -387,10 +403,10 @@ if test "x$found_xsync" = "xyes"; then
AC_DEFINE(HAVE_XSYNC, , [Have the Xsync extension library])
fi
METACITY_LIBS="$XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_LIBS"
METACITY_MESSAGE_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_MESSAGE_LIBS"
METACITY_WINDOW_DEMO_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_WINDOW_DEMO_LIBS"
METACITY_PROPS_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_PROPS_LIBS"
METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
METACITY_WINDOW_DEMO_LIBS="$METACITY_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
METACITY_PROPS_LIBS="$METACITY_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
found_sm=no
case "$METACITY_LIBS" in
@@ -446,6 +462,9 @@ if test x$enable_gconf = xyes; then
fi
AM_GCONF_SOURCE_2
else
GCONF_SCHEMAS_INSTALL_TRUE='#'
GCONF_SCHEMAS_INSTALL_FALSE=
fi
AC_CONFIG_FILES([
@@ -464,11 +483,8 @@ AC_OUTPUT
if test x$enable_gconf = xno; then
echo "*** WARNING WARNING WARNING WARNING WARNING"
echo "*** Building without GConf"
echo "*** This means there's no way to change prefs except"
echo "*** hacking source code, at least for now."
echo "*** Also, some prefs may have broken defaults."
echo "*** Patches needed for a simple no-gconf config file."
echo "*** Building without GConf. This means there's no"
echo "*** way to change prefs except hacking source code."
echo "*** This is intended for embedded systems etc., not for normal use."
fi
@@ -498,6 +514,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.14.x for stable (gnome-2-14 branch in CVS)"

View File

@@ -1,3 +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

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

60
doc/man/metacity.1 Normal file
View File

@@ -0,0 +1,60 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH METACITY 1 "11 February 2006"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
METACITY \- minimal GTK2 Window Manager
.SH SYNOPSIS
.B metacity
[\-\-display=\fIDISPLAY\fP] [\-\-replace] [\-\-sm\-client\-id=\fIID\fP] [\-\-sm\-disable] [\-\-sm\-save\-file=\fIFILENAME\fP] [\-\-version] [\-\-help]
.SH DESCRIPTION
This manual page documents briefly
.B metacity\fP.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively.
\fBmetacity\fP is a minimal X window manager aimed at nontechnical users and is designed to integrate well with the GNOME desktop. \fBmetacity\fP lacks some features that may be expected by traditional UNIX or other technical users; these users may want to investigate other available window managers for use with GNOME or standalone.
.SH OPTIONS
.TP
.B \-\-display=DISPLAY
Connect to X display \fIDISPLAY\fP.
.TP
.B \-\-replace
a window manager which is running is replaced by \fBmetacity\fP. Users are encouraged to change the GNOME window manager by running the new WM with the --replace or -replace option, and subsequently saving the session.
.TP
.B \-\-sm\-client\-id=ID
Specify a session management \fIID\fP.
.TP
.B \-\-sm\-disable
Disable the session management.
.TP
.B \-\-sm\-save\-file=FILENAME
Load a session from \fIFILENAME\fP.
.TP
.B \-\-version
Print the version number.
.TP
.B \-?, \-\-help
Show summary of options.
.SH CONFIGURATION
\fBmetacity\fP configuration can be found under \fIPreferences\fP->\fIWindows\fP and \fIPreferences\fP->\fIKeyboard Shortcuts\fP on the menu-panel. Advanced configuration can be achieved directly through gconf editing (gconf-editor or gconftool-2).
.SH SEE ALSO
.BR metacity-message (1)
.SH AUTHOR
The original manual page was written by Thom May <thom@debian.org>. It was updated by Akira TAGOH <tagoh@debian.org>
for the Debian GNU/Linux system (with permission to use by others), and then updated by Luke Morton and Philip O'Brien
for inclusion in metacity.

View File

@@ -0,0 +1,54 @@
How updates happen for struts, workareas, and screen/xinerama regions/edges:
One of three things causes meta_window_update_struts to be called
(a) initial window map (window.c:meta_window_new_with_attrs())
(b) update of _net_wm_strut* properties (window.c:process_property_notify())
(c) screen resizes (e.g. via xrandr; from screen.c:meta_screen_resize_func())
meta_window_update_struts (MetaWindow *window)
- Gets new list of struts from window properties
- Makes sure window doesn't single-handedly fill the screen
- records new struts if different and calls invalidate_work_areas()
invalidate_work_areas ()
- Calls meta_workspace_invalidate_work_area() for each workspace it's on
meta_workspace_invalidate_work_area()
- Cleans out all strut lists
- queues all windows for resizing
- Calls meta_screen_queue_workarea_recalc (workspace->screen);
meta_screen_queue_workarea_recalc()
- Adds set_work_area_idle_func() as an idle handler
set_work_area_idle_func()
- Calls set_work_area_hint()
set_work_area_hint()
- Calls meta_workspace_get_work_area_all_xineramas()
- Sets _NET_WORKAREA property
meta_workspace_get_work_area_all_xineramas()
- Calls ensure_work_areas_validated()
ensure_work_areas_validated()
- Loops over xineramas
- Loops over windows, then struts:
- Adds struts to list first time through xinerama loop
- Find the amount of the strut on the given xinerama for <dir>_strut
- Just max the amount of the strut with the all_<dir>_strut
- Makes sure there's a non-empty xinerama workarea
- Record the xinerama workarea
- Make sure there's a non-empty screen workarea
- Record the screen workarea
- Cache the spanning rects for the screen and xinerama regions
- Cache the screen and xinerama edges
Alternatively to all the above, if the idle function for the screen
has not yet fired, constraints.c:setup_constraint_info() can call
either workspace.c:meta_workspace_get_onscreen_region() or
workspace.c:meta_workspace_get_onxinerama_region() which in turn
call workspace.c:ensure_work_areas_validated().
Meaning of related functions that might be difficult to tell apart:
screen.c:meta_screen_get_current_xinerama ()
- Finds out which xinerama the mouse is on with an XQueryPointer
window.c:meta_window_get_work_area_current_xinerama()
window.c:meta_window_get_work_area_for_xinerama()
window.c:meta_window_get_work_area_all_xineramas ()
- All three are for finding the intersection of workareas across
multiple workspaces so that placement of windows can be
determined in such a way that they remain in the workarea for
all workspaces that they are on.

View File

@@ -1,3 +1,914 @@
2006-05-14 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
* zh_HK.po: Updated Traditional Chinese translation(Hong Kong).
* zh_TW.po: Updated Traditional Chinese translation(Taiwan).
2006-05-10 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician Translation.
2006-05-06 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2006-05-02 Funda Wang <fundawang@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation.
2006-04-30 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
2006-04-26 Gora Mohanty <gmohanty@cvs.gnome.org>
* lv.po: Updated Latvian translation by Raivis Dejus <orvils@gmail.com>
2006-04-21 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2006-04-20 Ankit Patel <ankit644@yahoo.com>
* gu.po: Updated Gujarati Translation.
2006-04-19 Ankit Patel <ankit644@yahoo.com>
* gu.po: Updated Gujarati Translation.
2006-04-17 Clytie Siddall <clytie@riverland.net.au>
* vi.po: Updated Vietnamese translation.
2006-04-17 Josep Puigdemont Casamajó <josep.puigdemont@gmail.com>
* ca.po: Updated Catalan translation.
2006-04-16 Funda Wang <fundawang@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation.
2006-04-14 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2006-04-14 Raphael Higino <raphaelh@cvs.gnome.org>
* pt_BR.po: Updated Brazilian Portuguese translation.
2006-04-14 Åsmund Skjæveland <aasmunds@fys.uio.no>
* nn.po: Updated Norwegian Nynorsk translation.
2006-04-14 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation.
2006-04-14 Wouter Bolsterlee <uws+gnome@xs4all.nl>
* nl.po: Translation updated by Wouter Bolsterlee.
2006-04-14 Alexander Shopov <ash@contact.bg>
* bg.po: Updated Bulgarian translation by
Alexander Shopov <ash@contact.bg>
2006-04-09 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Michiel Sikkes.
2006-04-02 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
* no.po: Same.
2006-03-24 Gora Mohanty <gmohanty@cvs.gnome.org>
* or.po: Updated Oriya translation.
2006-03-21 Priit Laes <amd@store20.com>
* et.po: Translation updated by Ivar Smolin.
2006-03-17 Priit Laes <amd@store20.com>
* et.po: Translation updated by Ivar Smolin.
2006-03-15 Žygimantas Beručka <zygis@gnome.org>
* lt.po: Updated Lithuanian translation.
2006-03-14 Mugurel Tudor <mugurelu@gnome.ro>
* ro.po: Updated Romanian translation
2006-03-14 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation.
2006-03-13 Jordi Mallach <jordi@sindominio.net>
* ca.po: Updated Catalan translation.
2006-03-13 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Tino Meinen.
2006-03-13 Danilo Šegan <danilo@gnome.org>
* sr.po, sr@Latn.po: Updated Serbian translation.
2006-03-13 Alexander Shopov <ash@contact.bg>
* bg.po: Updated Bulgarian translation by
Alexander Shopov <ash@contact.bg>
2006-03-13 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Updated Albanian translation.
2006-03-13 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2006-03-13 Maxim Dziumanenko <mvd@mylinux.ua>
* uk.po: Updated Ukrainian translation.
2006-03-13 Rajesh Ranjan <rranjan@redhat.com>
* hi.po: Updated Hindi Translation.
2006-03-13 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation (merged from gnome-2-14 branch).
2006-03-13 Satoru SATOH <ss@gnome.gr.jp>
* ja.po: Updated Japanese translation.
2006-03-13 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Updated Portuguese translation.
2006-03-12 Guilherme de S. Pastore <gpastore@gnome.org>
* pt_BR.po: Updated Brazilian Portuguese translation.
2006-03-13 Frank Arnold <farnold@cvs.gnome.org>
* de.po: Updated German translation.
2006-03-13 Daniel Nylander <po@danielnylander.se>
* sv.po: Updated Swedish translation.
2006-03-12 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician Translation.
2006-03-12 Raphael Higino <raphaelh@cvs.gnome.org>
* pt_BR.po: Updated Brazilian Portuguese translation.
2006-03-12 Priit Laes <amd@store20.com>
* et.po: Translation updated by Ivar Smolin.
2006-03-12 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation by Petr Tomeš.
2006-03-12 Roozbeh Pournader <roozbeh@farsiweb.info>
* fa.po: Updated Persian translation by Meelad Zakaria,
Elnaz Sarbar, and Farzaneh Sarafraz.
2006-03-09 Hendrik Richter <hendrikr@gnome.org>
* de.po: Updated German translation.
2006-03-09 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Updated Albanian translation.
2006-03-08 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Updated Albanian translation.
2006-03-08 Gabor Kelemen <kelemeng@gnome.hu>
* hu.po: Hungarian translation updated.
2006-03-06 Funda Wang <fundawang@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation.
2006-03-06 Daniel Nylander <po@danielnylander.se>
* sv.po: Updated Swedish translation
2006-03-05 Mugurel Tudor <mugurelu@gnome.ro>
* ro.po: Updated Romanian translation
2006-03-05 Alexander Shopov <ash@contact.bg>
* bg.po: Updated Bulgarian translation by
Alexander Shopov <ash@contact.bg>
2006-03-04 Hendrik Richter <hendrikr@gnome.org>
* de.po: Updated German translation.
2006-03-03 Maxim Dziumanenko <mvd@mylinux.ua>
* uk.po: Updated Ukrainian translation.
2006-03-02 Hendrik Richter <hendrikr@gnome.org>
* de.po: Updated German translation.
2006-03-02 Hendrik Richter <hendrikr@gnome.org>
* de.po: Updated German translation.
2006-03-02 Rhys Jones <rhys@sucs.org>
* cy.po: Updated Welsh translation.
2006-03-01 Leonid Kanter <leon@asplinux.ru>
* ru.po: Updated Russian translation
2006-03-01 Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>
* ca.po: Updated Catalan translation.
2006-02-27 Leonid Kanter <leon@asplinux.ru>
* ru.po: Updated Russian translation
2006-02-27 Lasse Bang Mikkelsen <lbm@fatalerror.dk>
* da.po: Updated Danish translation.
2006-02-25 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation.
2006-02-23 Inaki Larranaga <dooteo@euskalgnu.org>
* eu.po: Updated Basque translation.
2006-02-23 Clytie Siddall <clytie@riverland.net.au>
* ka.po: Added Georgian translation by Alexander Didebulidze <didebuli@in.tum.de>.
2006-02-23 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Updated Portuguese translation.
2006-02-23 Žygimantas Beručka <zygis@gnome.org>
* lt.po: Updated Lithuanian translation.
2006-02-21 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Tino Meinen.
2006-02-21 Clytie Siddall <clytie@riverland.net.au>
* vi.po: Updated Vietnamese translation.
2006-02-21 Slobodan D. Sredojevic <slobo@akrep.be>
* sr.po, sr@Latn.po: Updated Serbian translation
2006-02-21 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician Translation.
2006-02-01 Ankit Patel <ankit644@yahoo.com>
* gu.po: Updated Gujarati Translation.
2006-02-20 Kostas Papadimas <pkst@gnome.org>
* el.po: Updated Greek translation.
2006-02-20 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation.
2006-02-18 Takeshi AIHANA <takeshi.aihana@gmail.com>
* ja.po: Updated Japanese translation.
2006-02-18 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2006-02-18 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
* no.po: Same.
2006-02-13 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation.
2006-02-06 Funda Wang <fundawang@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation.
2006-02-03 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
* no.po: Same.
2006-01-31 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Tino Meinen.
2006-01-31 Slobodan D. Sredojevic <slobo@akrep.be>
* sr.po, sr@Latn.po: Updated Serbian translation
2006-01-28 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2006-01-27 Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>
* ca.po: Updated Catalan translation.
2006-01-26 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2006-01-26 Evandro Fernandes Giovanini <evandrofg@ig.com.br>
* pt_BR.po: Updated Brazilian Portuguese translation.
2006-01-24 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician Translation.
2006-01-23 Ankit Patel <ankit644@yahoo.com>
* gu.po: Updated Gujarati Translation.
2006-01-23 Funda Wang <fundawang@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation.
2006-01-22 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
* no.po: Same.
2006-01-21 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation.
2006-01-22 Clytie Siddall <clytie@riverland.net.au>
* vi.po: Updated Vietnamese translation.
2006-01-21 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation.
2006-01-21 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish tranlation.
2006-01-21 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician Translation.
2006-01-20 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Tino Meinen.
2006-01-18 Funda Wang <fundawang@linux.net.cn>
* zh_CN.po: Updated Simplified Chinese translation.
2006-01-17 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician Translation.
2006-01-16 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation.
2006-01-15 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2006-01-15 Takeshi AIHANA <takeshi.aihana@gmail.com>
* ja.po: Updated Japanese translation.
2006-01-11 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2006-01-11 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2006-01-11 Ankit Patel <ankit644@yahoo.com>
* gu.po: Updated Gujarati Translation.
2006-01-11 Clytie Siddall <clytie@riverland.net.au>
* vi.po: Updated Vietnamese translation.
2005-12-30 Clytie Siddall <clytie@riverland.net.au>
* vi.po: Updated Vietnamese translation.
2006-01-06 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
* no.po: Same
2005-12-31 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation.
2005-12-25 Kang Jeong-Hee <Keizi@mail.co.kr>
* ko.po: Updated Korean translation.
2005-12-11 Miloslav Trmac <mitr@volny.cz>
* cs.po: Updated Czech translation.
2005-12-11 Ankit Patel <ankit644@yahoo.com>
* gu.po: Updated Gujarati Translation.
2005-12-03 Adam Weinberger <adamw@gnome.org>
* en_CA.po: Updated Canadian English translation.
2005-12-03 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
* no.po: Same
2005-11-22 Marcel Telka <marcel@telka.sk>
* sk.po: Updated Slovak translation.
2005-11-22 Alexander Shopov <ash@contact.bg>
* bg.po: Updated Bulgarian translation by
Alexander Shopov <ash@contact.bg>
2005-11-22 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2005-11-21 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2005-11-20 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
* es.po: Updated Spanish translation.
2005-11-20 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician Translation.
2005-11-20 Takeshi AIHANA <aihana@gnome.gr.jp>
* ja.po: Updated Japanese translation.
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.

72
po/LINGUAS Normal file
View File

@@ -0,0 +1,72 @@
# please keep this list sorted alphabetically
#
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
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_HK
zh_TW

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

2128
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

1610
po/ca.po

File diff suppressed because it is too large Load Diff

1273
po/cs.po

File diff suppressed because it is too large Load Diff

1949
po/cy.po

File diff suppressed because it is too large Load Diff

1177
po/da.po

File diff suppressed because it is too large Load Diff

858
po/de.po

File diff suppressed because it is too large Load Diff

2296
po/dz.po Normal file

File diff suppressed because it is too large Load Diff

1358
po/el.po

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

2075
po/es.po

File diff suppressed because it is too large Load Diff

1355
po/et.po

File diff suppressed because it is too large Load Diff

1283
po/eu.po

File diff suppressed because it is too large Load Diff

2446
po/fa.po

File diff suppressed because it is too large Load Diff

1294
po/fi.po

File diff suppressed because it is too large Load Diff

1035
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

2761
po/gl.po

File diff suppressed because it is too large Load Diff

1804
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

1286
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

2187
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

1021
po/ja.po

File diff suppressed because it is too large Load Diff

2718
po/ka.po Normal file

File diff suppressed because it is too large Load Diff

1083
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

1298
po/lt.po

File diff suppressed because it is too large Load Diff

1671
po/lv.po

File diff suppressed because it is too large Load Diff

1481
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

1356
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

1425
po/nl.po

File diff suppressed because it is too large Load Diff

1550
po/nn.po

File diff suppressed because it is too large Load Diff

3192
po/no.po

File diff suppressed because it is too large Load Diff

1176
po/or.po

File diff suppressed because it is too large Load Diff

1911
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

1160
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2136
po/ro.po

File diff suppressed because it is too large Load Diff

1121
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

1068
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

1130
po/sq.po

File diff suppressed because it is too large Load Diff

1214
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3145
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

1584
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

1440
po/uk.po

File diff suppressed because it is too large Load Diff

3101
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

3247
po/zh_HK.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -39,10 +39,16 @@ workspace wrapping:
http://bugzilla.gnome.org/show_bug.cgi?id=89315
raise windows on click:
http://bugzilla.gnome.org/show_bug.cgi?id=326156
http://bugzilla.gnome.org/show_bug.cgi?id=86108
http://bugzilla.gnome.org/show_bug.cgi?id=115072
http://bugzilla.gnome.org/show_bug.cgi?id=115753
Pointer warping:
http://bugzilla.gnome.org/show_bug.cgi?id=134353
http://bugzilla.gnome.org/show_bug.cgi?id=134352
(Think about tasklist & window selector too; this would be a very bad idea)
Tracking bugs
====
@@ -60,3 +66,8 @@ 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
multi-head sans xinerama: http://bugzilla.gnome.org/show_bug.cgi?id=324772
xinerama: http://bugzilla.gnome.org/show_bug.cgi?id=324773
output-only windows: http://bugzilla.gnome.org/show_bug.cgi?id=340584
allowed actions/window-type: http://bugzilla.gnome.org/show_bug.cgi?id=340682
EWMH/ICCCM compliance: http://bugzilla.gnome.org/show_bug.cgi?id=340691

View File

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

View File

@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libmetacity-private.la
SUBDIRS=wm-tester tools themes
INCLUDES=@METACITY_CFLAGS@ -DMETACITY_LIBEXECDIR=\"$(libexecdir)\" -DMETACITY_LIBDIR=\"$(libdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMETACITY_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMETACITY_PKGDATADIR=\"$(pkgdatadir)\" -DMETACITY_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"metacity\" -DSN_API_NOT_YET_FROZEN=1
INCLUDES=@METACITY_CFLAGS@ -DMETACITY_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMETACITY_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMETACITY_PKGDATADIR=\"$(pkgdatadir)\" -DMETACITY_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"metacity\" -DSN_API_NOT_YET_FROZEN=1
EGGFILES= \
eggaccelerators.c \
@@ -13,7 +13,13 @@ metacity_SOURCES= \
async-getprop.h \
bell.h \
bell.c \
boxes.h \
boxes.c \
common.h \
c-screen.c \
c-screen.h \
c-window.c \
c-window.h \
compositor.c \
compositor.h \
constraints.c \
@@ -25,6 +31,8 @@ metacity_SOURCES= \
display.h \
draw-workspace.c \
draw-workspace.h \
edge-resistance.c \
edge-resistance.h \
effects.c \
effects.h \
errors.c \
@@ -66,6 +74,8 @@ metacity_SOURCES= \
screen.h \
session.c \
session.h \
spring-model.c \
spring-model.h \
stack.c \
stack.h \
tabpopup.c \
@@ -94,6 +104,8 @@ metacity_SOURCES= \
# metacity proper will be compiled with different names.
libmetacity_private_la_CFLAGS =
libmetacity_private_la_SOURCES= \
boxes.c \
boxes.h \
gradient.c \
gradient.h \
preview-widget.c \
@@ -112,6 +124,7 @@ libmetacity_private_la_LIBADD = @METACITY_LIBS@
libmetacityincludedir = $(includedir)/metacity-1/metacity-private
libmetacityinclude_HEADERS = \
boxes.h \
common.h \
gradient.h \
preview-widget.h \
@@ -133,11 +146,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

@@ -66,7 +66,7 @@ struct _AgGetPropertyTask
unsigned long n_items;
unsigned long bytes_after;
unsigned char *data;
char *data;
Bool have_reply;
};
@@ -316,7 +316,7 @@ async_get_property_handler (Display *dpy,
/* there's padding to word boundary */
netbytes = ALIGN_VALUE (nbytes, 4);
if (nbytes + 1 > 0 &&
(task->data = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
(task->data = (char *) Xmalloc ((unsigned)nbytes + 1)))
{
#ifdef DEBUG_SPEW
printf ("%s: already read %d bytes using %ld, more eating %ld more\n",
@@ -334,7 +334,7 @@ async_get_property_handler (Display *dpy,
netbytes = reply->nItems << 1;
netbytes = ALIGN_VALUE (netbytes, 4); /* align to word boundary */
if (nbytes + 1 > 0 &&
(task->data = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
(task->data = (char *) Xmalloc ((unsigned)nbytes + 1)))
{
#ifdef DEBUG_SPEW
printf ("%s: already read %d bytes using %ld more, eating %ld more\n",
@@ -351,7 +351,7 @@ async_get_property_handler (Display *dpy,
nbytes = reply->nItems * sizeof (long);
netbytes = reply->nItems << 2; /* wire size is always 32 bits though */
if (nbytes + 1 > 0 &&
(task->data = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
(task->data = (char *) Xmalloc ((unsigned)nbytes + 1)))
{
#ifdef DEBUG_SPEW
printf ("%s: already read %d bytes using %ld more, eating %ld more\n",
@@ -363,9 +363,9 @@ async_get_property_handler (Display *dpy,
*/
if (sizeof (long) == 8)
{
unsigned char *netdata;
unsigned char *lptr;
unsigned char *end_lptr;
char *netdata;
char *lptr;
char *end_lptr;
/* Store the 32-bit values in the end of the array */
netdata = task->data + nbytes / 2;
@@ -522,7 +522,6 @@ ag_task_create (Display *dpy,
{
AgGetPropertyTask *task;
xGetPropertyReq *req;
xError error;
AgPerDisplayData *dd;
/* Fire up our request */
@@ -543,8 +542,6 @@ ag_task_create (Display *dpy,
req->longOffset = offset;
req->longLength = length;
error.sequenceNumber = dpy->request;
/* Queue up our async task */
task = Xcalloc (1, sizeof (AgGetPropertyTask));
if (task == NULL)
@@ -587,7 +584,7 @@ ag_task_get_reply_and_free (AgGetPropertyTask *task,
int *actual_format,
unsigned long *nitems,
unsigned long *bytesafter,
unsigned char **prop)
char **prop)
{
Display *dpy;

View File

@@ -45,7 +45,7 @@ Status ag_task_get_reply_and_free (AgGetPropertyTask *task,
int *actual_format,
unsigned long *nitems,
unsigned long *bytesafter,
unsigned char **prop);
char **prop);
Bool ag_task_have_reply (AgGetPropertyTask *task);
Atom ag_task_get_property (AgGetPropertyTask *task);

View File

@@ -2,6 +2,7 @@
/*
* Copyright (C) 2002 Sun Microsystems Inc.
* Copyright (C) 2005, 2006 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);
}
@@ -246,5 +252,5 @@ void
meta_bell_notify_frame_destroy (MetaFrame *frame)
{
if (frame->is_flashing)
g_idle_remove_by_data (frame);
g_source_remove_by_funcs_user_data (&g_timeout_funcs, frame);
}

1812
src/boxes.c Normal file

File diff suppressed because it is too large Load Diff

263
src/boxes.h Normal file
View File

@@ -0,0 +1,263 @@
/* Simple box operations */
/*
* Copyright (C) 2005, 2006 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);
/* Expand all rectangles in region by the given amount on each side */
GList* meta_rectangle_expand_region (GList *region,
const int left_expand,
const int right_expand,
const int top_expand,
const int bottom_expand);
/* Same as for meta_rectangle_expand_region except that rectangles not at
* least min_x or min_y in size are not expanded in that direction
*/
GList* meta_rectangle_expand_region_conditionally (
GList *region,
const int left_expand,
const int right_expand,
const int top_expand,
const int bottom_expand,
const int min_x,
const int min_y);
/* 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 */
/* */
/***************************************************************************/
/* Return whether an edge overlaps or is adjacent to the rectangle in the
* nonzero-width dimension of the edge.
*/
gboolean meta_rectangle_edge_aligns (const MetaRectangle *rect,
const MetaEdge *edge);
/* 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);
/* Compare two edges, so that sorting functions can put a list of edges in
* order. This function doesn't separate left edges first, then right edges,
* etc., but rather compares only upon location.
*/
gint meta_rectangle_edge_cmp_ignore_type (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 */

680
src/c-screen.c Normal file
View File

@@ -0,0 +1,680 @@
/*
* Copyright (C) 2006 Red Hat, Inc.
*
* 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.
*/
#include <config.h>
#ifdef HAVE_COMPOSITE_EXTENSIONS
#include <cm/ws.h>
#include <cm/stacker.h>
#include <cm/wsint.h>
#include <cm/drawable-node.h>
#include <cm/state.h>
#include <cm/magnifier.h>
#include <cm/square.h>
#include <string.h>
#include "screen.h"
#include "c-screen.h"
#include "c-window.h"
struct MetaCompScreen
{
WsDisplay *display;
CmStacker *stacker;
CmMagnifier *magnifier;
WsWindow *gl_window;
WsWindow *root_window;
WsScreen *screen;
MetaScreen *meta_screen;
int repaint_id;
int idle_id;
WsWindow *selection_window;
GHashTable *windows_by_xid;
};
static MetaCompWindow *
meta_comp_window_lookup (MetaCompScreen *info,
Window xid)
{
MetaCompWindow *window;
window = g_hash_table_lookup (info->windows_by_xid, (gpointer)xid);
return window;
}
#if 0
static void
update_frame_counter (void)
{
#define BUFSIZE 128
static GTimer *timer;
static double buffer [BUFSIZE];
static int next = 0;
if (!timer)
timer = g_timer_new ();
buffer[next++] = g_timer_elapsed (timer, NULL);
if (next == BUFSIZE)
{
int i;
double total;
next = 0;
total = 0.0;
for (i = 1; i < BUFSIZE; ++i)
total += buffer[i] - buffer[i - 1];
g_print ("frames per second: %f\n", 1 / (total / (BUFSIZE - 1)));
}
}
#endif
static void
dump_stacking_order (GList *nodes)
{
GList *list;
for (list = nodes; list != NULL; list = list->next)
{
CmDrawableNode *node = list->data;
if (node)
g_print ("%lx, ", WS_RESOURCE_XID (node->drawable));
}
g_print ("\n");
}
static gboolean
repaint (gpointer data)
{
MetaCompScreen *info = data;
CmState *state;
#if 0
g_print ("repaint\n");
#endif
glViewport (0, 0,
info->meta_screen->rect.width,
info->meta_screen->rect.height);
glLoadIdentity();
#if 0
glClearColor (0, 0, 0, 1.0);
glClear (GL_COLOR_BUFFER_BIT);
#endif
ws_window_raise (info->gl_window);
#if 0
glDisable (GL_TEXTURE_2D);
glDisable (GL_TEXTURE_RECTANGLE_ARB);
glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);
glColor4f (0.0, 1.0, 0.0, 1.0);
glRectf (-1.0, -1.0, 1.0, 1.0);
glFinish();
#endif
state = cm_state_new ();
cm_state_disable_depth_buffer_update (state);
cm_node_render (CM_NODE (info->magnifier), state);
cm_state_enable_depth_buffer_update (state);
g_object_unref (state);
ws_window_gl_swap_buffers (info->gl_window);
glFinish();
#if 0
dump_stacking_order (info->stacker->children);
#endif
info->idle_id = 0;
return FALSE;
}
static MetaCompWindow *
find_comp_window (MetaCompScreen *info,
Window xwindow)
{
return meta_comp_window_lookup (info, xwindow);
}
static CmNode *
find_node (MetaCompScreen *info,
Window xwindow)
{
MetaCompWindow *window = meta_comp_window_lookup (info, xwindow);
if (window)
return meta_comp_window_get_node (window);
return NULL;
}
static GList *all_screen_infos;
MetaCompScreen *
meta_comp_screen_get_by_xwindow (Window xwindow)
{
GList *list;
for (list = all_screen_infos; list != NULL; list = list->next)
{
MetaCompScreen *info = list->data;
if (find_node (info, xwindow))
return info;
}
return NULL;
}
MetaCompScreen *
meta_comp_screen_new (WsDisplay *display,
MetaScreen *screen)
{
MetaCompScreen *scr_info = g_new0 (MetaCompScreen, 1);
scr_info->screen = ws_display_get_screen_from_number (
display, screen->number);
scr_info->root_window = ws_screen_get_root_window (scr_info->screen);
scr_info->display = display;
scr_info->meta_screen = screen;
scr_info->windows_by_xid = g_hash_table_new (g_direct_hash, g_direct_equal);
all_screen_infos = g_list_prepend (all_screen_infos, scr_info);
return scr_info;
}
static char *
make_selection_name (MetaCompScreen *info)
{
char *buffer;
buffer = g_strdup_printf ("_NET_WM_CM_S%d", info->meta_screen->number);
return buffer;
}
static void
on_selection_clear (WsWindow *window,
WsSelectionClearEvent *event,
gpointer data)
{
MetaCompScreen *info = data;
char *buffer = make_selection_name (info);
if (strcmp (event->selection, buffer))
{
/* We lost the selection */
meta_comp_screen_unredirect (info);
}
}
static WsWindow *
claim_selection (MetaCompScreen *info)
{
WsWindow *window = ws_window_new (info->root_window);
char *buffer = make_selection_name (info);
#if 0
g_print ("selection window: %lx\n", WS_RESOURCE_XID (window));
#endif
ws_window_own_selection (window, buffer, WS_CURRENT_TIME);
g_signal_connect (window, "selection_clear_event", G_CALLBACK (on_selection_clear), info);
g_free (buffer);
return window;
}
static void
queue_paint (CmNode *node,
MetaCompScreen *info)
{
#if 0
g_print ("queueing %s\n", G_OBJECT_TYPE_NAME (node));
#endif
meta_comp_screen_queue_paint (info);
}
void
meta_comp_screen_redirect (MetaCompScreen *info)
{
WsWindow *root = ws_screen_get_root_window (info->screen);
WsRectangle source;
WsRectangle target;
WsServerRegion *region;
int screen_w;
int screen_h;
CmSquare *square;
#if 0
g_print ("redirecting %lx\n", WS_RESOURCE_XID (root));
#endif
ws_window_redirect_subwindows (root);
info->gl_window = ws_screen_get_gl_window (info->screen);
/* FIXME: This should probably happen in libcm */
ws_window_set_override_redirect (info->gl_window, TRUE);
region = ws_server_region_new (info->display);
ws_window_set_input_shape (info->gl_window, region);
g_object_unref (G_OBJECT (region));
ws_display_begin_error_trap (info->display);
ws_window_unredirect (info->gl_window);
ws_display_end_error_trap (info->display);
info->selection_window = claim_selection (info);
ws_window_map (info->gl_window);
info->stacker = cm_stacker_new ();
square = cm_square_new (0.3, 0.3, 0.8, 1.0);
cm_stacker_add_child (info->stacker, CM_NODE (square));
g_object_unref (square);
screen_w = ws_screen_get_width (info->screen);
screen_h = ws_screen_get_height (info->screen);
#if 0
g_print ("width: %d height %d\n", screen_w, screen_h);
#endif
source.x = (screen_w - (screen_w / 4)) / 2;
source.y = screen_h / 16;
source.width = screen_w / 4;
source.height = screen_h / 16;
target.x = 0;
target.y = screen_h - screen_h / 4;
target.width = screen_w;
target.height = screen_h / 4;
info->magnifier = cm_magnifier_new (CM_NODE (info->stacker), &source, &target);
g_object_unref (info->stacker);
if (g_getenv ("USE_MAGNIFIER"))
cm_magnifier_set_active (info->magnifier, TRUE);
else
cm_magnifier_set_active (info->magnifier, FALSE);
info->repaint_id =
g_signal_connect (info->magnifier, "need_repaint",
G_CALLBACK (queue_paint), info);
ws_display_sync (info->display);
}
static void
listify (gpointer key,
gpointer value,
gpointer data)
{
GList **windows = data;
*windows = g_list_prepend (*windows, (gpointer)value);
}
static void
free_all_windows (MetaCompScreen *info)
{
GList *windows = NULL, *list;
g_hash_table_foreach (info->windows_by_xid, listify, &windows);
for (list = windows; list != NULL; list = list->next)
{
MetaCompWindow *window = list->data;
meta_comp_window_free (window);
}
g_list_free (windows);
}
void
meta_comp_screen_unredirect (MetaCompScreen *info)
{
WsScreen *ws_screen = info->screen;
WsWindow *root = ws_screen_get_root_window (ws_screen);
g_signal_handler_disconnect (info->magnifier, info->repaint_id);
g_object_unref (info->magnifier);
ws_window_unredirect_subwindows (root);
ws_screen_release_gl_window (ws_screen);
free_all_windows (info);
ws_display_sync (info->display);
/* FIXME: libcm needs a way to guarantee that a window is destroyed,
* without relying on ref counting having it as a side effect
*/
g_object_unref (info->selection_window);
}
void
meta_comp_screen_queue_paint (MetaCompScreen *info)
{
#if 0
g_print ("queuing\n");
#endif
if (!info->idle_id)
info->idle_id = g_idle_add (repaint, info);
}
void
meta_comp_screen_restack (MetaCompScreen *info,
Window window,
Window above_this)
{
CmNode *window_node = find_node (info, window);
CmNode *above_node = find_node (info, above_this);
#if 0
g_print ("restack %lx over %lx \n", window, above_this);
#endif
#if 0
dump_stacking_order (info->stacker->children);
#endif
if (window_node == above_node)
return;
if (window_node && above_this == WS_RESOURCE_XID (info->gl_window))
{
cm_stacker_raise_child (info->stacker, window_node);
}
else if (window_node && above_this == None)
{
cm_stacker_lower_child (info->stacker, window_node);
}
else if (window_node && above_node)
{
cm_stacker_restack_child (info->stacker, window_node, above_node);
}
#if 0
else
g_print ("nothing happened\n");
#endif
#if 0
g_print ("done restacking; new order:\n");
#endif
#if 0
dump_stacking_order (info->stacker->children);
#endif
}
void
meta_comp_screen_raise_window (MetaCompScreen *info,
Window window)
{
CmNode *node = find_node (info, window);
if (node)
cm_stacker_raise_child (info->stacker, node);
}
void
meta_comp_screen_set_size (MetaCompScreen *info,
Window xwindow,
gint x,
gint y,
gint width,
gint height)
{
MetaCompWindow *comp_window = meta_comp_window_lookup (info, xwindow);
if (comp_window)
{
WsRectangle rect;
rect.x = x;
rect.y = y;
rect.width = width;
rect.height = height;
meta_comp_window_set_size (comp_window, &rect);
}
}
static void
print_child_titles (WsWindow *window)
{
GList *children = ws_window_query_subwindows (window);
GList *list;
int i;
g_print ("window: %lx %s\n", WS_RESOURCE_XID (window), ws_window_query_title (window));
i = 0;
for (list = children; list != NULL; list = list->next)
{
WsWindow *child = list->data;
g_print (" %d adding: %lx %s\n", i++, WS_RESOURCE_XID (child), ws_window_query_title (child));
}
}
void
meta_comp_screen_add_window (MetaCompScreen *info,
Window xwindow)
{
WsDrawable *drawable;
MetaCompWindow *comp_window;
ws_display_begin_error_trap (info->display);
comp_window = meta_comp_window_lookup (info, xwindow);
if (comp_window)
goto out;
drawable = WS_DRAWABLE (ws_window_lookup (info->display, xwindow));
if (ws_window_query_input_only (WS_WINDOW (drawable)))
goto out;
if (WS_WINDOW (drawable) == info->gl_window ||
WS_WINDOW (drawable) == info->screen->overlay_window)
{
#if 0
g_print ("gl window\n");
#endif
goto out;
}
comp_window = meta_comp_window_new (info->meta_screen->display, drawable);
g_hash_table_insert (info->windows_by_xid, (gpointer)WS_RESOURCE_XID (drawable), comp_window);
cm_stacker_add_child (info->stacker, meta_comp_window_get_node (comp_window));
out:
if (comp_window)
{
/* This function is called both when windows are created and when they
* are mapped, so for now we have this silly function.
*/
meta_comp_window_refresh_attrs (comp_window);
}
ws_display_end_error_trap (info->display);
#if 0
g_print ("done checking\n");
#endif
return;
}
void
meta_comp_screen_remove_window (MetaCompScreen *info,
Window xwindow)
{
MetaCompWindow *comp_window = meta_comp_window_lookup (info, xwindow);
if (comp_window)
{
CmNode *node = meta_comp_window_get_node (comp_window);
cm_stacker_remove_child (info->stacker, node);
meta_comp_window_free (comp_window);
g_hash_table_remove (info->windows_by_xid, (gpointer)xwindow);
}
}
void
meta_comp_screen_set_updates (MetaCompScreen *info,
Window xwindow,
gboolean updates)
{
MetaCompWindow *comp_window = meta_comp_window_lookup (info, xwindow);
meta_comp_window_set_updates (comp_window, updates);
}
void
meta_comp_screen_set_patch (MetaCompScreen *info,
Window xwindow,
CmPoint points[4][4])
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
if (node)
cm_drawable_node_set_patch (node, points);
}
void
meta_comp_screen_unset_patch (MetaCompScreen *info,
Window xwindow)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
if (node)
cm_drawable_node_unset_patch (node);
}
void
meta_comp_screen_set_alpha (MetaCompScreen *info,
Window xwindow,
gdouble alpha)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
#if 0
g_print ("alpha: %f\n", alpha);
#endif
cm_drawable_node_set_alpha (node, alpha);
}
void
meta_comp_screen_get_real_size (MetaCompScreen *info,
Window xwindow,
WsRectangle *size)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
if (!size)
return;
cm_drawable_node_get_clipbox (node, size);
}
void
meta_comp_screen_unmap (MetaCompScreen *info,
Window xwindow)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
#if 0
g_print ("unmapping: %lx\n", xwindow);
#endif
if (node)
cm_drawable_node_set_viewable (node, FALSE);
}
void
meta_comp_screen_set_target_rect (MetaCompScreen *info,
Window xwindow,
WsRectangle *rect)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
if (node)
cm_drawable_node_set_scale_rect (node, rect);
}
void
meta_comp_screen_set_explode (MetaCompScreen *info,
Window xwindow,
gdouble level)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
if (node)
{
#if 0
g_print ("level: %f\n", level);
#endif
cm_drawable_node_set_explosion_level (node, level);
}
}
void
meta_comp_screen_hide_window (MetaCompScreen *info,
Window xwindow)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
cm_drawable_node_set_viewable (node, FALSE);
}
#endif

51
src/c-screen.h Normal file
View File

@@ -0,0 +1,51 @@
#include "screen.h"
typedef struct MetaCompScreen MetaCompScreen;
MetaCompScreen *meta_comp_screen_new (WsDisplay *display,
MetaScreen *screen);
MetaCompScreen *meta_comp_screen_get_by_xwindow (Window xwindow);
void meta_comp_screen_destroy (MetaCompScreen *scr_info);
void meta_comp_screen_redirect (MetaCompScreen *info);
void meta_comp_screen_unredirect (MetaCompScreen *info);
void meta_comp_screen_add_window (MetaCompScreen *scr_info,
Window xwindow);
void meta_comp_screen_remove_window (MetaCompScreen *scr_info,
Window xwindow);
void meta_comp_screen_restack (MetaCompScreen *scr_info,
Window window,
Window above_this);
void meta_comp_screen_set_size (MetaCompScreen *info,
Window window,
gint x,
gint y,
gint width,
gint height);
void meta_comp_screen_raise_window (MetaCompScreen *scr_info,
Window window);
void meta_comp_screen_queue_paint (MetaCompScreen *info);
void meta_comp_screen_set_updates (MetaCompScreen *info,
Window xwindow,
gboolean updates);
void meta_comp_screen_set_patch (MetaCompScreen *info,
Window xwindow,
CmPoint points[4][4]);
void meta_comp_screen_unset_patch (MetaCompScreen *info,
Window xwindow);
void meta_comp_screen_set_alpha (MetaCompScreen *info,
Window xwindow,
gdouble alpha);
void meta_comp_screen_get_real_size (MetaCompScreen *info,
Window xwindow,
WsRectangle *size);
void meta_comp_screen_set_target_rect (MetaCompScreen *info,
Window xwindow,
WsRectangle *rect);
void meta_comp_screen_set_explode (MetaCompScreen *info,
Window xwindow,
gdouble level);
void meta_comp_screen_hide_window (MetaCompScreen *info,
Window xwindow);
void meta_comp_screen_unmap (MetaCompScreen *info,
Window xwindow);

329
src/c-window.c Normal file
View File

@@ -0,0 +1,329 @@
/*
* Copyright (C) 2006 Red Hat, Inc.
*
* 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.
*/
#include <config.h>
#ifdef HAVE_COMPOSITE_EXTENSIONS
#include <X11/Xlib.h>
#include <glib.h>
#include <cm/ws.h>
#include <cm/wsint.h>
#include <cm/node.h>
#include <cm/drawable-node.h>
#include <string.h>
#include "c-window.h"
#include "window.h"
struct _MetaCompWindow
{
MetaDisplay *display;
WsDrawable *drawable;
WsPixmap *pixmap;
CmNode *node;
gboolean updates;
WsSyncAlarm *alarm;
WsRectangle size;
};
MetaCompWindow *
meta_comp_window_new (MetaDisplay *display,
WsDrawable *drawable)
{
MetaCompWindow *window;
WsRectangle geometry;
ws_drawable_query_geometry (drawable, &geometry);
window = g_new0 (MetaCompWindow, 1);
window->display = display;
window->drawable = g_object_ref (drawable);
window->node = CM_NODE (cm_drawable_node_new (drawable, &geometry));
window->updates = TRUE;
return window;
}
void
meta_comp_window_free (MetaCompWindow *window)
{
g_object_unref (window->drawable);
g_object_unref (window->node);
g_free (window);
}
void
meta_comp_window_set_size (MetaCompWindow *comp_window,
WsRectangle *rect)
{
if (comp_window->updates)
{
WsWindow *window = WS_WINDOW (comp_window->drawable);
WsDisplay *display = WS_RESOURCE (window)->display;
CmDrawableNode *dnode = CM_DRAWABLE_NODE (comp_window->node);
WsRegion *shape;
ws_display_begin_error_trap (display);
cm_drawable_node_set_geometry (dnode, rect);
shape = ws_window_get_output_shape (window);
cm_drawable_node_set_shape (dnode, shape);
ws_region_destroy (shape);
if (rect->width != comp_window->size.width ||
rect->height != comp_window->size.height)
{
cm_drawable_node_update_pixmap (dnode);
}
comp_window->size = *rect;
ws_display_end_error_trap (display);
}
}
static gboolean
has_type (WsWindow *window, const char *check_type)
{
gchar **types = ws_window_get_property_atom_list (window, "_NET_WM_WINDOW_TYPE");
int i;
gboolean result;
if (!types)
return FALSE;
result = FALSE;
for (i = 0; types[i] != NULL; ++i)
{
gchar *type = types[i];
if (strcmp (type, check_type) == 0)
{
result = TRUE;
break;
}
}
g_strfreev (types);
return result;
}
static MetaWindow *
find_meta_window (MetaCompWindow *comp_window)
{
Window xwindow = WS_RESOURCE_XID (comp_window->drawable);
MetaWindow *window =
meta_display_lookup_x_window (comp_window->display, xwindow);
return window;
}
static Window
find_app_window (MetaCompWindow *comp_window)
{
Window xwindow = WS_RESOURCE_XID (comp_window->drawable);
MetaWindow *meta_window =
meta_display_lookup_x_window (comp_window->display, xwindow);
if (meta_window)
return meta_window->xwindow;
else
return xwindow;
}
static WsPixmap *
take_snapshot (WsDrawable *drawable)
{
WsDisplay *display = WS_RESOURCE (drawable)->display;
WsRectangle geometry;
WsPixmap *pixmap;
ws_display_begin_error_trap (display);
ws_drawable_query_geometry (drawable, &geometry);
pixmap = ws_pixmap_new (drawable, geometry.width, geometry.height);
ws_drawable_copy_area (drawable, 0, 0, geometry.width, geometry.height,
WS_DRAWABLE (pixmap), 0, 0,
NULL);
ws_display_end_error_trap (display);
return pixmap;
}
static void
on_alarm (WsSyncAlarm *alarm,
WsAlarmNotifyEvent *event,
MetaCompWindow *window)
{
g_print ("received alarm\n");
if (window->pixmap)
g_object_unref (window->pixmap);
window->pixmap = take_snapshot (window->drawable);
ws_sync_alarm_set (window->alarm, event->counter_value + 2);
ws_sync_counter_change (event->counter, 1);
}
static gboolean
has_counter (MetaCompWindow *comp_window)
{
Window xwindow = find_app_window (comp_window);
WsDisplay *display = WS_RESOURCE (comp_window->drawable)->display;
WsWindow *window = ws_window_lookup (display, xwindow);
WsSyncCounter *counter;
ws_display_init_sync (display);
counter = ws_window_get_property_sync_counter (
window, "_NET_WM_FINISH_FRAME_COUNTER");
if (counter)
{
WsSyncAlarm *alarm;
gint64 value = ws_sync_counter_query_value (counter);
g_print ("counter value %lld\n", ws_sync_counter_query_value (counter));
alarm = ws_sync_alarm_new (display, counter);
g_signal_connect (alarm, "alarm_notify_event",
G_CALLBACK (on_alarm), comp_window);
if (value % 2 == 1)
{
ws_sync_alarm_set (alarm, value + 2);
g_print ("wait for %lld\n", value + 2);
g_print ("increasing counter\n");
ws_sync_counter_change (counter, 1);
g_print ("counter value %lld\n", ws_sync_counter_query_value (counter));
}
else
{
g_print ("wait for %lld\n", value + 1);
ws_sync_alarm_set (alarm, value + 1);
}
comp_window->alarm = alarm;
}
#if 0
if (counter)
{
g_print ("found counter %lx on %lx\n",
WS_RESOURCE_XID (counter),
WS_RESOURCE_XID (window));
}
else
{
g_print ("no counter found for %lx\n", WS_RESOURCE_XID (window));
}
#endif
return TRUE;
}
void
meta_comp_window_refresh_attrs (MetaCompWindow *comp_window)
{
/* FIXME: this function should not exist - the real problem is
* probably in meta_screen_info_add_window() where it it called.
*/
double alpha = 1.0;
CmDrawableNode *node = CM_DRAWABLE_NODE (comp_window->node);
if (ws_window_query_mapped (WS_WINDOW (comp_window->drawable)))
{
WsWindow *window = WS_WINDOW (comp_window->drawable);
cm_drawable_node_unset_patch (CM_DRAWABLE_NODE (node));
find_meta_window (comp_window);
has_counter (comp_window);
if (has_type (window, "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU"))
{
alpha = 0.3;
}
else if (has_type (window, "_NET_WM_WINDOW_TYPE_POPUP_MENU"))
{
alpha = 0.9;
}
else
{
alpha = 1.0;
}
cm_drawable_node_set_alpha (node, alpha);
cm_drawable_node_set_viewable (node, TRUE);
cm_drawable_node_update_pixmap (node);
}
else
{
cm_drawable_node_set_viewable (node, FALSE);
}
}
void
meta_comp_window_set_updates (MetaCompWindow *comp_window,
gboolean updates)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (comp_window->node);
comp_window->updates = updates;
cm_drawable_node_set_updates (node, updates);
if (updates)
{
WsRectangle rect;
WsRegion *shape;
WsDisplay *display = WS_RESOURCE (node->drawable)->display;
ws_display_begin_error_trap (display);
ws_drawable_query_geometry (node->drawable, &rect);
cm_drawable_node_update_pixmap (node);
cm_drawable_node_set_geometry (node, &rect);
shape = ws_window_get_output_shape (WS_WINDOW (node->drawable));
cm_drawable_node_set_shape (node, shape);
ws_region_destroy (shape);
ws_display_end_error_trap (display);
}
}
CmNode *
meta_comp_window_get_node (MetaCompWindow *comp_window)
{
return comp_window->node;
}
#endif

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