Compare commits

...

558 Commits

Author SHA1 Message Date
Elijah Newren
a7513e84fc Bump version to 2.8.1, make release 2004-05-05 01:41:26 +00:00
Rob Adams
77a1e8ec8b make the no sm support warning dialog resizable, since the default GTK
2004-05-02  Rob Adams  <readams@readams.net>

	* src/metacity-dialog.c (warn_about_no_sm_support): make the no sm
	support warning dialog resizable, since the default GTK warning
	dialog not has default not resizable.  Fix for #141672 from
	Olivier Crete.
2004-05-03 02:03:59 +00:00
Rob Adams
0ceb317ac6 Add a value type check for the visual bell/audible bell gconf settings.
2004-04-29  Rob Adams  <readams@readams.net>

	* src/prefs.c (change_notify): Add a value type check for the
	visual bell/audible bell gconf settings.  Patch from Jarrod
	Johnson for #141409.
2004-04-30 00:26:48 +00:00
Dafydd Harries
4fda4ed806 Updated Catalan translation from Jordi Mallach. 2004-04-23 10:42:52 +00:00
Mark McLoughlin
5c01798884 Syncing across this change from libwnck. Patch from Neil Muller
2004-04-19  Mark McLoughlin  <mark@skynet.ie>

        Syncing across this change from libwnck.
        Patch from Neil Muller <neil@dip.sun.ac.za> in bug #133979.

        * src/iconcache.c: (find_largest_sizes), (find_best_size):
        Don't down-size nitems from a gulong to an int. Fixes a
        crash with enlightenment, apparently.
2004-04-19 14:53:14 +00:00
Iñaki Larrañaga
09c929ce3f Added "eu" (Basque) to ALL_LINGUAS.
2004-04-16  Iñaki Larrañaga  <dooteo@euskalgnu.org>

        * configure.in: Added "eu" (Basque) to ALL_LINGUAS.
2004-04-16 12:36:08 +00:00
Iñaki Larrañaga
0399fb7d4b Added Basque translation.
2004-04-16  Iñaki Larrañaga  <dooteo@euskalgnu.org>

        * eu.po: Added Basque translation.
2004-04-16 12:35:22 +00:00
Elijah Newren
4b9a23e8eb Fix unwanted mouse grab op on rapid click-and-release 2004-04-16 03:38:19 +00:00
Andras Timar
c60ec1802a Updated Hungarian translation.
2004-04-15  Andras Timar  <timar@gnome.hu>

	* hu.po: Updated Hungarian translation.
2004-04-14 22:30:13 +00:00
Rob Adams
929619f145 Make the --enable-xinerama switch work properly. Fix for #138562 from
2004-04-11  Rob Adams  <readams@readams.net>

	* configure.in: Make the --enable-xinerama switch work properly.
	Fix for #138562 from foser@gentoo.org.
2004-04-11 15:44:12 +00:00
Guntupalli Karunakar
c043cd4dae added gujarati translation 2004-04-09 15:54:14 +00:00
Mohammad DAMT
9fb6cea799 Updated Indonesian translation
2004-04-06  Mohammad DAMT  <mdamt@bisnisweb.com>

	* id.po: Updated Indonesian translation
2004-04-06 08:18:08 +00:00
Mugurel Tudor
7a441616f3 Updated Romanian translation
2004-04-03  Mugurel Tudor  <mugurelu@go.ro>

	* ro.po: Updated Romanian translation
2004-04-02 21:29:18 +00:00
Jordi Mallach
43693d2b6a Updated Catalan translation. 2004-03-29 12:32:11 +00:00
Tivo Leedjrv
b76e62226b Added et to ALL_LINGUAS.
2004-03-27  Tivo Leedjrv  <toivo@linux.ee>

        * configure.in: Added et to ALL_LINGUAS.
2004-03-27 18:18:17 +00:00
Tivo Leedjrv
706791d582 Added Estonian translation.
2004-03-27  Tivo Leedjrv  <toivo@linux.ee>

        * et.po: Added Estonian translation.
2004-03-27 18:17:19 +00:00
Guntupalli Karunakar
b6dca7f3cb added punjabi translation 2004-03-24 04:08:19 +00:00
Havoc Pennington
43ede25908 2.8.0
2004-03-21  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.8.0

	* NEWS: update
2004-03-21 16:27:26 +00:00
Mugurel Tudor
5856fd8ef2 Updated Romanian translation
2004-03-20  Mugurel Tudor  <mugurelu@go.ro>

	* ro.po: Updated Romanian translation
2004-03-20 22:50:08 +00:00
Gareth Owen
332adc45fc Updated British translation 2004-03-20 16:06:15 +00:00
Andras Timar
a76b1075df Updated Hungarian translation.
2004-03-19  Andras Timar  <timar@gnome.hu>

	* hu.po: Updated Hungarian translation.
2004-03-19 22:22:44 +00:00
Arafat Medini
d2d8d96778 Updated Arabic translation.
2004-03-18  Arafat Medini  <lumina@silverpen.de>

	* ar.po: Updated Arabic translation.
2004-03-18 21:32:50 +00:00
Leonid Kanter
3ae3a2558f updated Russian translation 2004-03-17 12:36:24 +00:00
Dafydd Harries
6efaa8d45c Updated Welsh translation. 2004-03-16 01:33:56 +00:00
Alessio Frusciante
2876d2f43f Updated Italian translation. 2004-03-15 20:21:08 +00:00
Nikos Charonitakis
1341d50518 Updated Greek translation 2004-03-14 23:11:39 +00:00
Christophe Merlet
11e56f841a Updated French translation. 2004-03-14 11:04:15 +00:00
Christophe Merlet
72dd7ff621 Updated French translation. 2004-03-13 11:52:00 +00:00
Theppitak Karoonboonyanan
10425302c7 Updated Thai translation.
2004-03-13  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.
2004-03-13 07:41:43 +00:00
Yuri Syrota
ab16ef096a Updated Ukrainian translation 2004-03-12 17:24:25 +00:00
Funda Wang
e632c8ebf5 Updated Simplified Chinese translation 2004-03-12 15:38:34 +00:00
Yuri Syrota
9a5ca2055e Updated Ukrainian translation 2004-03-12 10:43:49 +00:00
Alessio Frusciante
307f49f735 Updated Italian translation. 2004-03-11 20:49:49 +00:00
Christophe Merlet
6ca6596309 Updated French translation. 2004-03-11 20:08:14 +00:00
Theppitak Karoonboonyanan
1c50c27613 Updated Thai translation.
2004-03-10  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.
2004-03-10 08:48:49 +00:00
Alessio Frusciante
f0ae093877 Updated Italian translation. 2004-03-09 22:05:23 +00:00
Görkem Çetin
8273612a87 CVS_SILENT 2004-03-09 21:11:09 +00:00
Kjartan Maraas
09d35abc95 Updated Norwegian translation.
2004-03-09  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Updated Norwegian translation.
2004-03-09 09:44:12 +00:00
Francisco Javier F. Serrador
b1769b3cb9 Updated Spanish translation.
2004-03-09  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2004-03-09 00:01:08 +00:00
Alastair McKinstry
a1bfe15eb5 Updated Irish translation 2004-03-08 21:07:17 +00:00
Theppitak Karoonboonyanan
51a98800f8 Updated Thai translation.
2004-03-08  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.
2004-03-08 18:10:15 +00:00
Elijah Newren
c7b55ccb9f Bring rationales.txt up to date 2004-03-08 06:42:06 +00:00
Paisa Seeluangsawat
b42ac36ac8 Updated Thai translation.
2004-03-07  Paisa Seeluangsawat  <paisa@users.sf.net>

	* th.po: Updated Thai translation.
2004-03-08 05:18:37 +00:00
Havoc Pennington
91c8674acf 2.7.1
2004-03-07  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.7.1
2004-03-07 16:52:14 +00:00
Mətin Əmirov
a50c7cd589 Translation updated.
2004-03-06  Mətin Əmirov  <metin@karegen.com>

	* az.po: Translation updated.
2004-03-06 20:39:50 +00:00
Funda Wang
3a7ce7d109 Updated Simplified Chinese translation 2004-03-06 17:28:05 +00:00
Paisa Seeluangsawat
9ef1da6ec2 Added Thai translation.
2004-03-05  Paisa Seeluangsawat  <paisa@users.sf.net>

	* th.po: Added Thai translation.
2004-03-05 08:43:31 +00:00
Paisa Seeluangsawat
cd1885cec4 Added Thai translation.
2004-03-04  Paisa Seeluangsawat  <paisa@users.sf.net>

	* th.po: Added Thai translation.
2004-03-05 04:13:05 +00:00
Paisa Seeluangsawat
27797e7f78 Added "th" (Thai) to ALL_LINGUAS.
2004-03-04  Paisa Seeluangsawat  <paisa@users.sf.net>

	* configure.in: Added "th" (Thai) to ALL_LINGUAS.
2004-03-05 04:12:26 +00:00
Paisa Seeluangsawat
0de86fc8ea Added Thai translation.
2004-02-29  Paisa Seeluangsawat  <paisa@users.sf.net>

	* th.po: Added Thai translation.
2004-03-05 04:09:59 +00:00
Arafat Medini
c0452be980 Updated Arabic translation.
2004-03-3  Arafat Medini  <lumina@silverpen.de>

	* ar.po: Updated Arabic translation.
2004-03-03 12:16:22 +00:00
Stanislav Visnovsky
963ac3ff32 Convert to UTF-8.
2004-03-02  Stanislav Visnovsky <visnovsky@kde.org>

        * sk.po: Convert to UTF-8.
2004-03-02 08:11:46 +00:00
Rob Adams
f3cc59c78a don't promote due to transiency; we handle that elsewhere now.
2004-03-01  Rob Adams  <readams@readams.net>

	* src/stack.c (compute_layer): don't promote due to transiency; we
	handle that elsewhere now.
	(ensure_above): perform layer promotion here as well as stack
	position promotion.  Note that this means that we need to do stack
	constraints now on layer change now.
	(get_maximum_layer_of_ancestor): remove function
	(max_layer_func): remove function
	(MaxLayerData): remove struct
2004-03-02 02:28:21 +00:00
Rob Adams
56609cbb39 Revert 2/27 patch for layer promotion.
2004-02-28  Rob Adams  <readams@readams.net>

	Revert 2/27 patch for layer promotion.
2004-02-28 23:58:40 +00:00
Rob Adams
16a8add6f8 only move on MRU list if the window belongs on the workspace, since the
2004-02-27  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_notify_focus): only move on MRU list
	if the window belongs on the workspace, since the FocusIn event
	could be for a window whose workspace we've since switched away
	from.  Possible fix for #122016.

	* src/workspace.c (meta_workspace_contains_window): search for the
	workspace in window->workspaces rather than the window in
	workspace->windows.  Since the number of workspaces is at most 36,
	this is a O(1) lookup rather than a O(n) lookup.  Sorry; couldn't
	resist.
2004-02-28 02:53:56 +00:00
Rob Adams
036a61d198 Change move_to_workspace_left/right/up/down keybindings to
2004-02-27  Rob Adams  <readams@readams.net>

	* src/metacity.schemas.in: Change
	move_to_workspace_left/right/up/down keybindings to
	<Control><Alt><Shift> arrow to avoid conflicting with new
	keybindings in spacial nautilus.
2004-02-28 01:56:31 +00:00
Rob Adams
9739346c85 Handle layer promotion of transient descendants of layer-promoted windows
2004-02-27  Rob Adams  <readams@readams.net>

	Handle layer promotion of transient descendants of layer-promoted
	windows to also be layer promoted, using a simple iterative
	algorithm.

	* src/stack.c (compute_layer): change name to promote_layer, and
	convert to simply perform any necessary layer promotion without
	computing the standalone layer.
	(max_layer_func): use window->layer instead of
	get_standalone_layer
	(get_maximum_layer_of_ancestor): use window->layer instead of
	get_standalone_layer
	(meta_stack_ensure_sorted): implement iterative algorithm,
	explained in a long comment.

	* src/window.h: add a tmp_layer field used by stack.c for
	determining if the stack is dirty or not, since maintaining this
	information in meta_stack_ensure_sorted is no longer practical.
2004-02-28 01:49:17 +00:00
Rob Adams
47e6bd5648 Add my copyright notice to a number of files on which it should already
2004-02-23  Rob Adams  <readams@readams.net>

	Add my copyright notice to a number of files on which it should
	already exist.

	* src/window.c (meta_window_notify_focus): modify code to move to
	front of MRU list so that we can have an assert that it was there
	in the first place.  This code may be causing some crashes.  See
	#131196.
2004-02-28 01:48:27 +00:00
Guntupalli Karunakar
502003e47b updated hindi translations 2004-02-26 14:18:23 +00:00
Laurent Dhima
57b16ab4c7 Updated Albanian translation
* sq.po: Updated Albanian translation
2004-02-23 12:50:20 +00:00
Laurent Dhima
83480c1ac9 Korrigjime 2004-02-23 12:47:44 +00:00
Rob Adams
db108c1fc3 Add my copyright notice to a number of files on which it should already
2004-02-23  Rob Adams  <readams@readams.net>

	Add my copyright notice to a number of files on which it should
	already exist.

	* src/window.c (meta_window_notify_focus): modify code to move to
	front of MRU list so that we can have an assert that it was there
	in the first place.  This code may be causing some crashes.  See
	#131196.
2004-02-23 01:48:29 +00:00
Christian Rose
5a28c4c423 Added "en_CA" to ALL_LINGUAS. Added Canadian English translation by Adam
2004-02-22  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "en_CA" to ALL_LINGUAS.
	* po/en_CA.po: Added Canadian English translation by
	Adam Weinberger <adamw@FreeBSD.org>.
2004-02-22 01:34:08 +00:00
Rob Adams
f1701a751f remove trailing comma in MetaKeyBindingAction enum. Fix for #134868 thanks
2004-02-19  Rob Adams  <readams@readams.net>

	* src/prefs.h: remove trailing comma in MetaKeyBindingAction enum.
	Fix for #134868 thanks to bugzilla-gnome@thewrittenword.com.
2004-02-19 18:36:14 +00:00
Rob Adams
ad65847d7d reset drag state after shaking loose or reattaching. Fix for #132625.
2004-02-16  Rob Adams  <readams@readams.net>

	* src/window.c (update_move): reset drag state after shaking loose
	or reattaching.  Fix for #132625.
2004-02-16 19:01:25 +00:00
Fixed wrong messages. T.Aihana
88ea02a77a 2004-02-17 Fixed wrong messages. T.Aihana <aihana@gnome.gr.jp> 2004-02-16 16:27:50 +00:00
Updated ja.po. T.Aihana
b70fdf1a5f 2004-02-17 Updated ja.po. T.Aihana <aihana@gnome.gr.jp> 2004-02-16 15:02:26 +00:00
Havoc Pennington
2195dfc9f8 2.7.0 2004-02-15 22:47:24 +00:00
Anders Carlsson
27eb5a60f3 Actually translate a message, don't just mark it for translation.
2004-02-15  Anders Carlsson  <andersca@gnome.org>

	* src/menu.c (meta_window_menu_new): Actually translate a message,
	don't just mark it for translation.
2004-02-15 14:42:16 +00:00
Elijah Newren
339719568f Prepend windows to mru list when switching workspaces. Fixes #134368 2004-02-15 14:27:43 +00:00
Rob Adams
fd13022dc4 If we're moving a window and receive a _NET_CURRENT_DESKTOP message
2004-02-14  Rob Adams  <readams@readams.net>

	If we're moving a window and receive a _NET_CURRENT_DESKTOP
	message indicating a workspace switch, bring along the drag window
	to the new workspace, solving a potentially weird bug where the
	window would be lost on the old workspace.  This also makes it
	possible to implement edge flipping in an external program with
	just a few lines of code.  Patch for #131630 from ed@catmur.co.uk.

	* src/keybindings.c (switch_to_workspace): remove function -- no
	longer needed.
	(handle_activate_workspace): call meta_workspace_activate instead
	of switch_to_workspace

	* src/workspace.c (meta_workspace_activate_with_focus): if we're
	in a move grab op, bring along the drag window.
2004-02-15 05:29:49 +00:00
Rob Adams
d53afd3ae1 Add configure option to not even try using xinerama, to make metacity
2004-02-14  Rob Adams  <readams@readams.net>

	* configure.in: Add configure option to not even try using
	xinerama, to make metacity buildable on systems with no shared
	library version of the xinerama libraries.  Patch for #134203 from
	Julio M. Merino Vidal.
2004-02-15 05:17:34 +00:00
Kjartan Maraas
57f9a51a58 Updated Norwegian translation.
2004-02-11  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Updated Norwegian translation.
2004-02-11 18:49:20 +00:00
Denis Lackovic
799f3274d9 *** empty log message *** 2004-02-07 20:43:13 +00:00
Changwoo Ryu
a788bee6f9 Updated Korean translation.
* ko.po: Updated Korean translation.
2004-02-07 16:21:17 +00:00
Pauli Virtanen
0a83c10948 Updated Finnish translation.
2004-02-05  Pauli Virtanen  <pauli.virtanen@hut.fi>

	* fi.po: Updated Finnish translation.
2004-02-05 22:12:34 +00:00
Kostas Papadimas
dfa9c24b87 Updated the Greek translation 2004-02-03 16:21:57 +00:00
Laurent Dhima
7bf8eee605 Updated Albanian translation
* sq.po: Updated Albanian translation
2004-02-02 13:34:17 +00:00
Laurent Dhima
664216dc8b Updated 2004-02-02 13:32:35 +00:00
Rob Adams
b3f95bf7d1 Bring up to date with current draft EWHM.
2004-02-01  Rob Adams  <readams@readams.net>

	* COMPLIANCE: Bring up to date with current draft EWHM.
2004-02-01 23:26:42 +00:00
Ole Laursen
f2e783b2c5 Updated Danish translation.
2004-02-01  Ole Laursen  <olau@hardworking.dk>

	* da.po: Updated Danish translation.
2004-01-31 23:47:01 +00:00
Mətin Əmirov
e68b1b6c42 Translation updated.
2004-01-31  Mətin Əmirov  <metin@karegen.com>

	* az.po: Translation updated.
2004-01-31 20:17:02 +00:00
Miloslav Trmac
217ba6c1b7 Fixed Czech translation 2004-01-28 11:30:38 +00:00
James M. Cape
74a8b5b78b Use the 'utility' frame for dialogs too.
2004-01-27  James M. Cape  <jcape@ignore-your.tv>

        * src/themes/Esco/metacity-theme-1.xml: Use the 'utility' frame
        for dialogs too.
2004-01-28 04:20:22 +00:00
Artur Flinta
81fab83067 Updated Polish translation by GNOME PL Team.
2004-01-20  Artur Flinta  <aflinta@cvs.gnome.org>

	* pl.po: Updated Polish translation by GNOME PL Team.
2004-01-27 14:10:05 +00:00
Andraz Tori
0f23f3f05b Updated Slovenian translation 2004-01-26 20:51:23 +00:00
James M. Cape
4b3b706369 Updated this theme.
2004-01-24  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Updated this theme.
2004-01-24 16:20:41 +00:00
Elijah Newren
595cbe2ac0 Remove duplicate entries. 2004-01-21 17:33:56 +00:00
Artur Flinta
b20391780d Updated Polish translation by GNOME PL Team.
2004-01-20  Artur Flinta  <aflinta@cvs.gnome.org>

	* pl.po: Updated Polish translation by GNOME PL Team.
2004-01-20 13:08:26 +00:00
Christian Neumair
dd8e9e5725 Updated German translation. 2004-01-18 09:47:44 +00:00
Rob Adams
007a1f0d0d Default binding removed for toggle_shaded, since we don't have anything in
2004-01-17  Rob Adams  <readams@readams.net>

	* src/metacity.schemas.in: Default binding removed for
	toggle_shaded, since we don't have anything in the graphical UI
	for it any more.
2004-01-17 18:59:42 +00:00
Rob Adams
40a710dad0 Don't show left/right/up/down if a window is sticky. Make "On Top"
2004-01-17  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_show_menu): Don't show
	left/right/up/down if a window is sticky.  Make "On Top"
	insensitive for docks, splash screens, and desktops since it has
	no effect anyway.
2004-01-17 18:57:26 +00:00
Hasbullah Bin Pit
6770329e69 Updated Malay translation.
2004-01-16  Hasbullah Bin Pit <sebol@ikhlas.com>

        * ms.po: Updated Malay translation.
2004-01-16 15:31:44 +00:00
Laurent Dhima
4f448440d4 Updated Albanian translation
* sq.po: Updated Albanian translation
2004-01-15 18:10:33 +00:00
Laurent Dhima
039ffb0cb4 Updated 2004-01-15 18:09:08 +00:00
Kjartan Maraas
2f561e5553 Updated Norwegian translation.
2004-01-13  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Updated Norwegian translation.
2004-01-13 21:16:17 +00:00
Artur Flinta
2d314d84cd Updated Polish translation by GNOME PL Team.
2004-01-13  Artur Flinta  <aflinta@cvs.gnome.org>

	* pl.po: Updated Polish translation by GNOME PL Team.
2004-01-13 15:08:58 +00:00
Zygimantas Berucka
3b7f92ae5d Updated Lithuanian translation by Tomas Kuliavas.
2004-01-12  Zygimantas Berucka  <uid0@tuxfamily.org>

* lt.po: Updated Lithuanian translation by Tomas Kuliavas.
2004-01-12 10:41:05 +00:00
Christophe Merlet
4f7e28ff3c Updated French translation. 2004-01-11 18:35:49 +00:00
Changwoo Ryu
47cf3085e7 Updated Korean translation.
* ko.po: Updated Korean translation.
2004-01-11 12:43:10 +00:00
Rob Adams
3d996ff73d update default action_double_click_titlebar to be toggle_maximize instead
2004-01-10  Rob Adams  <readams@readams.net>

	* src/metacity.schemas.in: update default
	action_double_click_titlebar to be toggle_maximize instead of
	toggle_shade.  See #131126.
2004-01-10 22:22:46 +00:00
Rob Adams
1b7a651a33 if we maximize after placement, and the window is too big to fix in the
2004-01-12  Rob Adams  <readams@readams.net>

	* src/constraints.c (meta_window_constrain): if we maximize after
	placement, and the window is too big to fix in the work area,
	define a sane saved_rect approximately with dimensions
	three-quarters approximately three quarters the size of the work
	area.  This avoids the problem where large windows would
	unmaximize and actually get bigger.  See #93590.
2004-01-10 18:13:14 +00:00
Thomas Fitzsimmons
a605da04c1 Add _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS.
2004-01-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	Add _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS.

	* src/display.c: include xprops.h
	(process_request_frame_extents): new function
	(meta_display_open): add _NET_FRAME_EXTENTS and
	_NET_REQUEST_FRAME_EXTENTS atoms
	(event_callback): handle frame extents message

	* src/display.h (struct _MetaDisplay): add atom_net_frame_extents
	and atom_net_request_frame_extents

	* src/theme.c (meta_pango_font_desc_get_text_height): make font_desc
	parameter const

	* src/ui.c: include prefs.h
	(meta_ui_theme_get_frame_borders): new function

	* src/window.c (update_net_frame_extents): new function
	(meta_window_move_resize_internal): update frame extents
	property when frame geometry changes

	* src/screen.c (set_supported_hint): add atom_net_frame_extents
	and atom_net_request_frame_extents
2004-01-10 17:16:07 +00:00
Calum Benson
cc7195547a Mention bug number in comment. 2004-01-09 11:18:09 +00:00
Calum Benson
c820769bce Ensure window buttons get larger when using large print themes.
Fixes #123469.
2004-01-09 11:17:28 +00:00
Vincent van Adrighem
b2d009d01d Translation updated by Tino Meinen.
2004-01-05  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Tino Meinen.
2004-01-05 20:51:34 +00:00
Denis Lackovic
fe8abfa887 *** empty log message *** 2004-01-05 11:33:14 +00:00
Rob Adams
2fdb75ad45 Maintain the button grab for sloppy and mouse focus all the time. This
2003-01-04  Rob Adams  <readams@readams.net>

	Maintain the button grab for sloppy and mouse focus all the time.
	This fixes a number of problem introduced by trying to drop the
	grab; we now do this only for click to focus mode.  This has the
	unfortunate effect that #102209 reappears for sloppy and mouse
	focus, but this seems unavoidable, because of limitations in the X
	protocol.  See #115072.

	* src/display.c (meta_display_grab_focus_window_button): #if 0 the
	section on not grabbing unless in click-to-focus mode.

	* src/window.c (meta_window_notify_focus): drop focus button grab
	on FocusIn and acquire it on FocusOut only when in click-to-focus
	mode.
2004-01-05 07:24:32 +00:00
Duarte Loreto
07c0a53316 Updated and revised Portuguese translation.
2004-01-04  Duarte Loreto <happyguy_pt@hotmail.com>

	* pt.po: Updated and revised Portuguese translation.
2004-01-04 15:43:34 +00:00
Denis Lackovic
e5cf7ff55b *** empty log message *** 2004-01-04 08:02:07 +00:00
Sanlig Badral
3c1fe8bedd Updated Mongolian translation 2004-01-03 14:12:08 +00:00
Denis Lackovic
88aeeb8cd5 *** empty log message *** 2004-01-03 08:49:57 +00:00
Rob Adams
1b323f87d7 Update reference to EWMH.
2003-01-02  Rob Adams  <readams@readams.net>

	* README: Update reference to EWMH.

	* HACKING: Add a reference to COMPLIANCE and to the ICCCM and
	EWHM.
2004-01-02 21:51:52 +00:00
Sanlig Badral
2d74e25058 Updated Mongolian translation 2004-01-02 16:24:20 +00:00
Taneem Ahmed
98e882720c Updated Bangla (Bengali) translation.
2004-01-02  Taneem Ahmed  <taneem@bengalinux.org>

	* bn.po: Updated Bangla (Bengali) translation.
2004-01-02 07:00:06 +00:00
Denis Lackovic
93c5a042ee croatian translations updated 2003-12-30 19:51:25 +00:00
Denis Lackovic
99d7cadf67 croatian translations updated 2003-12-30 19:40:44 +00:00
Christian Neumair
0e3ecc7a31 Updated German translation. 2003-12-29 17:19:04 +00:00
Åsmund Skjæveland
c635a55612 Updated Norwegian Nynorsk translation.
2003-12-29  Åsmund Skjæveland  <aasmunds@fys.uio.no>

	* nn.po: Updated Norwegian Nynorsk translation.
2003-12-29 11:09:24 +00:00
Görkem Çetin
5a088c5bbc CVS_SILENT 2003-12-28 21:04:49 +00:00
Havoc Pennington
a27089a110 handle ReparentNotify, and add a lot of debug output.
2003-12-25  Havoc Pennington  <hp@redhat.com>

	* src/compositor.c (process_reparent): handle ReparentNotify, and
	add a lot of debug output.
2003-12-26 02:42:38 +00:00
Havoc Pennington
35c64b45dd change to track all children of the root window, not only mapped children;
2003-12-25  Havoc Pennington  <hp@redhat.com>

	* src/compositor.c (meta_compositor_process_event): change to
	track all children of the root window, not only mapped children;
	this keeps us from losing track of the stacking order

	* src/display.c (event_callback): don't do any of the compositor
	event handling inline, do it all in compositor.c
2003-12-26 00:05:26 +00:00
Francisco Javier F. Serrador
daf93c5ed0 Updated Spanish translation
2003-12-24  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation
2003-12-24 01:52:48 +00:00
Gustavo Noronha Silva
56d75ebf44 updated translation.
2003-12-23  Gustavo Noronha Silva  <kov@debian.org>

	* pt_BR.po: updated translation.
2003-12-23 03:56:13 +00:00
Miloslav Trmac
5815ebd3a4 Update Czech translation 2003-12-22 18:52:48 +00:00
Danilo Šegan
78f925c6a6 Updated Serbian translation. 2003-12-22 07:42:38 +00:00
Christian Rose
1115e22481 Updated Swedish translation.
2003-12-22  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2003-12-22 00:44:48 +00:00
Rob Adams
c2ba0a7d67 2003-12-21 Rob Adams <readams@readams.net
* src/main.c (main): fix minor punctuation error in a string.  Fix
	for #129805.
2003-12-22 00:43:53 +00:00
Francisco Javier F. Serrador
e699ff2e83 Updated Spanish translation.
2003-12-21  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2003-12-21 16:40:35 +00:00
Danilo Šegan
804411bd68 Updated Serbian translation. 2003-12-21 16:37:19 +00:00
Rob Adams
690100f1ad Reorganize the window menu according to discussion on #110904. The
2003-12-20  Rob Adams  <readams@readams.net>

	Reorganize the window menu according to discussion on #110904.
	The workspace name mnemonic chunk of the patch is thanks to
	Jonathan Blandford.

	* src/common.h: add MENU_OP_ABOVE, MENU_OP_UNABOVE, MENU_UP_MOVE_TO_*
	menu ops.

	* src/core.c (meta_core_get_menu_accelerator): add accelerator for
	the new menu ops.

	* src/menu.c: add checked attribute in _MenuItem struct to display
	a checkmark next to a menu item.  Add the new menu items to
	menuitems.
	(get_workspace_name_with_accel): Add mnemonics even to renamed
	workspaces.
	(menu_item_new): provide support for the checked attribute
	(meta_window_menu_new): construct new submenu for workspace
	switching.

	* src/window.c (menu_callback): implement support for the new menu
	ops.
	(meta_window_show_menu): don't use the OP_*SHAPE operations, and
	compute which of the OP_MOVE_TO_* ops should be used for the
	current workspace and workspace layout.  Add the OP_*ABOVE
	operations.
2003-12-21 06:31:40 +00:00
Arafat Medini
95b0ee480e Added Arabic translation
2003-12-20  Arafat Medini  <lumina@silverpen.de>

	 * ar.po: Added Arabic translation
2003-12-20 16:07:43 +00:00
Rob Adams
4be245a26a add test-size-hints to cvsignore 2003-12-19 23:37:23 +00:00
Gustavo Noronha Silva
a0863fc437 updated translation.
2003-12-19  Gustavo Noronha Silva  <kov@debian.org>

	* pt_BR.po: updated translation.
2003-12-19 04:25:11 +00:00
Yukihiro Nakai
c9f0005b05 Minor update. 2003-12-18 11:33:59 +00:00
Rob Adams
104786735a initialize grab_wireframe_active to FALSE. Fix for #128090.
2003-12-17  Rob Adams  <readams@readams.net>

	* src/display.c (meta_display_open): initialize
	grab_wireframe_active to FALSE.  Fix for #128090.

2003-12-17  Rob Adams  <readams@readams.net>

	* src/tabpopup.c (meta_ui_tab_popup_new): Don't try to call
	utf8_strndup on a null title for an entry.  Fix for #128566.

	* src/workspace.c (meta_workspace_free): Call g_list_free on the
	mru_list, since with sticky windows that MRU list could well not
	be emtpy.  See #122016.
2003-12-17 16:01:00 +00:00
Rob Adams
191b3f2c21 set on_all_workspaces in all cases _before_ adding to the workspaces, so
2003-12-13  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_new_with_attrs): set on_all_workspaces
	in all cases _before_ adding to the workspaces, so that windows
	initially on all workspaces are added correctly to the MRU lists.
	Fix for #120907.

	* src/workspace.c (meta_workspace_add_window): handle sticky
	windows so that we add to add mru lists if needed
	(meta_workspace_remove_window): handle sticky windows so that they
	are removed from all mru lists if needed.
2003-12-14 19:19:40 +00:00
Francisco F. Serrador
860ae37db5 Updated Spanish translation.
2003-12-14  Francisco F. Serrador <serrador@cvs.gnome.org>

	* es.po: Updated Spanish translation.
2003-12-14 10:35:39 +00:00
Rob Adams
9bde925d3d Revert prior change 2003-12-13 23:00:06 +00:00
Rob Adams
7630d22b8d Add increased robustness for dealing with all workspaces windows and MRU
2003-12-13  Rob Adams  <readams@readams.net>

	Add increased robustness for dealing with all workspaces windows
	and MRU lists.
	Also add very preliminary _NET_WM_USER_TIME
	support, limited to simply listening for the property and keeping
	an internal variable updated, and also treating some input events
	as though they were user time updates.

	* src/window.c (meta_window_new_with_attrs): set on_all_workspaces
	in all cases _before_ adding to the workspaces, so that windows
	initially on all workspaces are added correctly to the MRU lists.
	Fix for #120907.
	(process_property_notify): add net_wm_user_time support.

	* src/workspace.c (meta_workspace_add_window): handle sticky
	windows so that we add to add mru lists if needed
	(meta_workspace_remove_window): handle sticky windows so that they
	are removed from all mru lists if needed.

	* src/display.[ch] (meta_display_open): add net_wm_user_time support.
	(event_callback): simulate user time update on key and button presses.

	* src/screen.c (set_supported_hint): add net_wm_user_time support.

	* src/window-props.c (init_net_wm_user_time): new function for
	user_time support
	(reload_net_wm_user_time): new function for user_time support
	(meta_display_init_window_prop_hooks): add hook for user_time
2003-12-13 18:28:14 +00:00
Havoc Pennington
a92be6e319 unstick window to get it out of mru_list it should not be in; assert that
2003-12-12  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_free): unstick window to get it out of
	mru_list it should not be in; assert that window has been removed
	from all mru_list. Perhaps fixes #122016 crash.
2003-12-13 03:58:55 +00:00
Danilo Šegan
0bb3361b73 Cleared up Serbian translation.
2003-12-04  Danilo Šegan  <dsegan@gmx.net>

	* sr.po, sr@Latn.po: Cleared up Serbian translation.
2003-12-04 20:11:54 +00:00
Sanlig Badral
b1c1e4a7db Updated Mongolian translation 2003-12-03 10:35:10 +00:00
Miloslav Trmac
82673cb51f Update Czech translation 2003-12-02 20:52:15 +00:00
Havoc Pennington
4ebdb0b9c0 fix up compositing manager to somewhat work
2003-11-29  Havoc Pennington  <hp@redhat.com>

	* fix up compositing manager to somewhat work
2003-11-30 03:30:27 +00:00
Ole Laursen
4c5e4442c1 Updated Danish translation.
2003-11-29  Ole Laursen  <olau@hardworking.dk>

	* da.po: Updated Danish translation.
2003-11-28 23:54:00 +00:00
Rob Adams
01fa9cfc63 fix a couple of minor typos.
2003-11-26  Rob Adams  <readams@readams.net>

	* COMPLIANCE: fix a couple of minor typos.
2003-11-26 18:11:57 +00:00
Vincent van Adrighem
6ff017e875 Dutch translation updated by Vincent van Adrighem.
2003-11-26   Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Dutch translation updated by Vincent van Adrighem.
2003-11-25 23:22:41 +00:00
Havoc Pennington
8d892f76da Oops, did not mean to do that. 2003-11-24 23:05:04 +00:00
Havoc Pennington
03bbe3de17 fix the extension checks
2003-11-24  Havoc Pennington  <hp@redhat.com>

	* src/compositor.c (meta_compositor_new): fix the extension checks
2003-11-24 23:00:52 +00:00
Havoc Pennington
47a1c285c7 init prev_mask field
2003-11-24  Havoc Pennington  <hp@redhat.com>

	* src/iconcache.c (meta_icon_cache_init): init prev_mask field

	* src/window.c (meta_window_new_with_attrs): init xgroup_leader
	prior to use
2003-11-24 19:09:25 +00:00
Havoc Pennington
4ccb120922 need to select PropertyChangeMask on the leader window 2003-11-24 18:38:38 +00:00
Havoc Pennington
423b5f5f39 add an event_serial argument and use it when the pointer is already
2003-11-24  Havoc Pennington  <hp@redhat.com>

	* src/display.c (meta_display_begin_grab_op): add an event_serial
	argument and use it when the pointer is already grabbed
	automatically on the button press. May fix bug #126871
2003-11-24 18:09:47 +00:00
Havoc Pennington
feefcdd892 Apply patch from Gregory Merchan to avoid using CurrentTime when setting
2003-11-24  Havoc Pennington  <hp@redhat.com>

	* Apply patch from Gregory Merchan to avoid using CurrentTime when
	setting input focus. Bug #108881
2003-11-24 17:47:48 +00:00
Havoc Pennington
927a6def1b move xcompmgr code in here (minus drop shadows), untested since Keith's
2003-11-23  Havoc Pennington  <hp@redhat.com>

	* src/compositor.c: move xcompmgr code in here (minus drop
	shadows), untested since Keith's server just crashes at the
	moment. "It compiles"
2003-11-23 18:16:01 +00:00
Havoc Pennington
d538690bd4 new function
2003-11-20  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new_with_attrs): new function

	* src/display.c, src/screen.c: create the compositor and feed
	windows and events to it
2003-11-21 02:32:05 +00:00
Havoc Pennington
24d8655188 revert the change here
2003-11-20  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_notify_focus): revert the change here
2003-11-20 05:52:37 +00:00
Rob Adams
917dfefd6c 2003-11-17 Rob Adams <readams@readams.net
* src/window.c (set_allowed_actions_hint): increment i between
	resize and fullscreen.
2003-11-17 16:46:01 +00:00
Rob Adams
9378a4fb4d Create COMPLIANCE document describing metacity specification compliance.
2003-11-16  Rob Adams  <readams@readams.net>

	Create COMPLIANCE document describing metacity specification
	compliance.  Right now gives detailed EWMH compliance; still need
	to add ICCCM compliance information.  Also some minor fixes to
	bring metacity into compliance on some points.

	* COMPLIANCE: new file

	* src/display.h, src/display.c (meta_display_open),
	src/screen.c (set_supported_hint): add
	atom_net_wm_action_fullscreen and atom_net_wm_action_minimize

	* src/window.c (set_allowed_actions_hint): some fixes to which
	hints to set and add fullscreen and minimize.
2003-11-17 00:06:58 +00:00
Rob Adams
67c36f0917 add paranoia check to make sure a window is really on a workspace before
2003-11-16  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_notify_focus): add paranoia check to
	make sure a window is really on a workspace before inserting it at
	the beginning of the MRU list.  Maybe there's a race condition
	with focusing and workspace switching.  Hopefully a fix for #122016.
2003-11-16 21:50:51 +00:00
Artur Flinta
d5083baea0 Updated Polish translation 2003-11-16 10:23:46 +00:00
Havoc Pennington
6a0f4f6ccb add the missing files 2003-11-16 04:35:16 +00:00
Havoc Pennington
901ad18a67 fix warning
2003-11-15  Havoc Pennington  <hp@redhat.com>

	* src/main.c (main): fix warning

	* src/compositor.c: add a new file to contain compositing manager
	functionality; not yet implemented at all.
2003-11-16 04:20:17 +00:00
Rob Adams
6ac67f80a6 Inherit visual from frame window so that metacity will work with the new
2003-11-15  Rob Adams  <readams@readams.net>

	Inherit visual from frame window so that metacity will work with
	the new compositing manager extension work by Keith on
	freedesktop.org, so that ARGB windows can be full
	alpha-transparent without a metacity frame getting drawn in the
	background.  In the long term, we need to actually set alpha
	values when drawing the frame so that it will really work; this is
	a stopgap solution.  Patch from Keith Packard; see Bug 126875.

	* src/frame.c (meta_window_ensure_frame): pass client visual to
	frame.

	* src/ui.[ch] (meta_ui_create_frame_window): add new xvisual
	parameter and use it to create new window.
2003-11-16 04:19:18 +00:00
Rob Adams
a88f44ea64 don't set window->type_atom here so that the type-inference code will
2003-11-15  Rob Adams  <readams@readams.net>

	* src/window.c (update_net_wm_type): don't set window->type_atom
	here so that the type-inference code will actually be called.  Fix
	for #126873 from Keith Packard.
2003-11-16 03:56:04 +00:00
Pablo Gonzalo del Campo
5c10e0a859 Updated Spanish translation by Francisco Javier F. Serrador
2003-11-10  Pablo Gonzalo del Campo  <pablodc@bigfoot.com>

        * es.po: Updated Spanish translation by
                 Francisco Javier F. Serrador <serrador@arrakis.es>.
2003-11-10 18:57:27 +00:00
Rob Adams
3c384d37c6 configure frame first if we grow more than we shrink combined in both
2003-11-08  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_move_resize_internal): configure frame
	first if we grow more than we shrink combined in both dimensions.
	Patch from Soren Sandmann for #108925.
2003-11-08 17:25:49 +00:00
Danilo Šegan
2592efeee4 Updated Serbian translation.
2003-11-08  Danilo Šegan  <dsegan@gmx.net>

	* sr.po, sr@Latn.po: Updated Serbian translation.
2003-11-08 16:21:22 +00:00
Rob Adams
66b2e8bc3f use maximize_after_placement to automaximize in meta_window_place; avoids
2003-11-07  Rob Adams  <readams@readams.net>

	* src/place.c (meta_window_place): use maximize_after_placement to
	automaximize in meta_window_place; avoids a problem with not
	recalculating the frame geometry after auto-maximizing.
2003-11-08 05:47:37 +00:00
Rob Adams
17dc2d6151 show the window if it's a transient of a dock or desktop, since otherwise
2003-11-07  Rob Adams  <readams@readams.net>

	* src/window.c (window_should_be_showing): show the window if it's
	a transient of a dock or desktop, since otherwise such windows are
	invisible in show desktop mode.  Fix for #124648.
2003-11-08 05:29:23 +00:00
Rob Adams
2218b79143 Try harder to find a theme in the event that the theme in the preference
2003-11-07  Rob Adams  <readams@readams.net>

	* src/main.c (main): Try harder to find a theme in the event that
	the theme in the preference cannot be found.  Patch from Marcin
	Krzyzanowski.  See #125815.

	* src/place.c (meta_window_place): use "visual" centering for
	dialog placement and clip new dialogs to an xinerama workspace.
	Fix for #118336.
2003-11-08 04:43:18 +00:00
Denis Lackovic
17b8a1f3e6 croatian translations added 2003-11-07 18:20:35 +00:00
Havoc Pennington
830a52ee25 patch to avoid creating stick/unstick menu items when only one workspace,
2003-10-30  Havoc Pennington  <hp@redhat.com>

	* src/menu.c (meta_window_menu_new): patch to avoid creating
	stick/unstick menu items when only one workspace, bug #116563
	from Michael Terry
2003-10-30 21:11:11 +00:00
Kostas Papadimas
18b38ac526 Updated the Greek translation 2003-10-30 17:42:29 +00:00
Havoc Pennington
8658268847 if a window is focused which is not either a dock or a transient in the
2003-10-25  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_notify_focus): if a window is focused
	which is not either a dock or a transient in the same group as a
	dock, shuffle all dock/desktop windows to the end of the MRU list
	so they won't annoyingly get focus all the time. #123816
2003-10-26 16:22:51 +00:00
Andras Timar
8a271ee5ac Updated Hungarian translation.
2003-10-20  Andras Timar  <timar@gnome.hu>

	* hu.po: Updated Hungarian translation.
2003-10-20 09:49:05 +00:00
Havoc Pennington
cf15ea0a3d add note about mouse focus heuristics 2003-10-17 01:28:11 +00:00
Danilo Šegan
669cdc4bb6 Updated Serbian translation.
2003-10-15  Danilo Šegan  <dsegan@gmx.net>

	* sr.po, sr@Latn.po: Updated Serbian translation.
2003-10-15 21:09:13 +00:00
Yukihiro Nakai
68d6a92972 Update Japanese translation. 2003-10-15 16:25:05 +00:00
Yukihiro Nakai
4770da34b3 Gettextize metacity-theme-viewer. #121747 2003-10-15 16:04:12 +00:00
Danilo Šegan
9197c4f835 Updated Serbian translation.
2003-10-13  Danilo Šegan  <dsegan@gmx.net>

	* sr.po, sr@Latn.po: Updated Serbian translation.
2003-10-13 20:22:37 +00:00
Havoc Pennington
6aff3466c6 In the "prefs cause code complexity" department, here's a "sloppy focus
2003-10-13  Havoc Pennington  <hp@redhat.com>

        In the "prefs cause code complexity" department, here's a "sloppy
	focus die die die" kind of moment.

	* src/display.c (meta_display_grab_focus_window_button): don't
	grab in sloppy focus mode, since we were dropping the grab on
	window enter anyway this just removes races from the current
	behavior.

	* src/display.c (prefs_changed_callback): ungrab/grab on focus
	mode changes, since we treat sloppy and click differently.
2003-10-13 20:15:40 +00:00
Havoc Pennington
e98fad3e62 Merge reduced_resources mode patch from the branch. Offers wireframe and
2003-10-12  Havoc Pennington  <hp@redhat.com>

        Merge reduced_resources mode patch from the branch. Offers
	wireframe and no-animations.

	* src/window.c (implement_showing): no animation if we are
	in reduced resources mode

	* src/prefs.c: add REDUCED_RESOURCES pref

	* src/window.c (meta_window_update_keyboard_resize): fix to
	modify grab_anchor_window_pos to grab_wireframe_rect if
	appropriate instead of window->rect

	* src/display.h (struct _MetaDisplay): add grab_start_serial used
	to avoid responding to events that occurred prior to the grab
	initialization.

	Still broken in various ways, specifically EnterNotify that
	occurred prior to XGrabPointer is processed as if it occurred
	after.

	* src/window.c (meta_window_update_keyboard_move): add this
	instead of meta_window_warp_pointer() crack

	* src/effects.c (meta_effects_update_wireframe): draw a kind of
	grid for the wireframe, instead of just a rectangle, like twm

	* src/screen.c (meta_screen_new): line width of 3 for the XOR gc

        "Reduced resources" mode based on wireframe patch from
	Erwann Chenede. Still pretty buggy.

	* src/keybindings.c (process_keyboard_move_grab)
	(process_keyboard_resize_grab): add gruesome wireframe hacks

	* src/display.c (meta_display_end_grab_op): end wireframe
	(meta_display_begin_grab_op): begin wireframe

	* src/effects.c (meta_effects_end_wireframe)
	(meta_effects_update_wireframe, meta_effects_begin_wireframe):
	routines to draw the wireframe stuff

	* src/window.c (window_should_be_showing): hide window when
	doing wireframe, commented out as it breaks grab
	* src/window.c (meta_window_refresh_resize_popup): handle wireframe

	* src/screen.c (meta_screen_new): create a screen->root_xor_gc
	for use in drawing wireframes

	* src/frames.c (meta_frames_push_delay_exposes): repaint
	everything before we delay
2003-10-12 06:25:38 +00:00
Havoc Pennington
6628acb59c initialize display->grab_have_pointer to FALSE, previously I think you
2003-10-11  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_begin_grab_op): initialize
	display->grab_have_pointer to FALSE, previously I think you could
	get a case where we didn't have the grab and thought we did.
	Bugs were reported with this happening. Of course we still have
	the "why did the grab fail" problem, but it should be less
	noticeable with this fixed.
2003-10-11 04:27:06 +00:00
Havoc Pennington
d76d953d69 rationales.txt updates 2003-10-11 04:16:12 +00:00
Andras Timar
e9358b5eea Updated Hungarian translation.
2003-10-08  Andras Timar  <timar@gnome.hu>

	* hu.po: Updated Hungarian translation.
2003-10-08 11:15:44 +00:00
Rob Adams
6d7d586f3c disable onscreen resize constraints for right, left, and bottom, since
2003-10-06  Rob Adams  <readams@readams.net>

	* src/constraints.c (constraint_onscreen_*_func): disable onscreen
	resize constraints for right, left, and bottom, since there is no
	way to violate onscreen constraints by resizing in these
	directions and the code to implement the constraints made some
	incorrect assumptions.  Fix for #120701, #120756, #123165,
	#123631, #123838.
2003-10-07 02:08:45 +00:00
Žygimantas Beručka
481accd6bd Added "lt" to ALL_LINGUAS. Added Lithuanian translation by Tomas Kuliavas.
2003-10-06  Žygimantas Beručka  <uid0@tuxfamily.org>

* configure.in: Added "lt" to ALL_LINGUAS.
* po/lt.po: Added Lithuanian translation by Tomas Kuliavas.
2003-10-06 13:49:37 +00:00
Mugurel Tudor
2a97ddd60a *** empty log message *** 2003-10-06 09:53:47 +00:00
Havoc Pennington
8441fada07 update
2003-10-01  Havoc Pennington  <hp@redhat.com>

	* NEWS: update

	* configure.in: 2.6.2
2003-10-01 21:51:11 +00:00
Havoc Pennington
a60b735e2d typo fix 2003-10-01 21:08:48 +00:00
Havoc Pennington
199d20197e add the moveresize idle at META_PRIORITY_RESIZE so it runs before GTK does
2003-09-30  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_queue_move_resize): add the moveresize
	idle at META_PRIORITY_RESIZE so it runs before GTK does any
	drawing, may fix bug #109211 (seem to for me)

	* src/ui.h (META_PRIORITY_RESIZE): add this between GTK
	resize/redraw priorities

	* src/display.c (meta_display_queue_retheme_all_windows): remove
	some debug spew from meta_warning
2003-09-30 20:36:02 +00:00
Havoc Pennington
5fdb8ab7d6 remove nonstandard header include, #121870
2003-09-30  Havoc Pennington  <hp@redhat.com>

	* src/testasyncgetprop.c: remove nonstandard header include,
	#121870
2003-09-30 20:05:35 +00:00
Havoc Pennington
7c80b0a335 call bind_textdomain_codeset(), fix from Yukihiro Nakai bug #121743
2003-09-30  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-message.c (main): call
	bind_textdomain_codeset(), fix from Yukihiro Nakai bug #121743
2003-09-30 19:59:15 +00:00
Kjartan Maraas
7eb5a67b3d Update Norwegian translation.
2003-09-30  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Update Norwegian translation.
2003-09-30 19:58:05 +00:00
Rached Ben Mustapha
37640a925e Fix bug #118428
2003-07-28  Rached Ben Mustapha <rached@benmur.net>

        Fix bug #118428

        * src/window.c (redraw_icon): Also redraw window icon if the window
	is not mapped but its frame is.
	(idle_update_icon): Unset the window->update_icon_queued flag.
2003-09-30 19:45:56 +00:00
Christian Neumair
c446955b8d Updated German translation. 2003-09-30 15:44:27 +00:00
Havoc Pennington
0895abd894 put a random cap on number of characters in the title of each window, bug
2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/tabpopup.c (meta_ui_tab_popup_new): put a random cap on
	number of characters in the title of each window, bug #109301
2003-09-29 23:42:45 +00:00
Havoc Pennington
f7c04aff1e put -lXext in Xrandr check, bug #115996
2003-09-29  Havoc Pennington  <hp@redhat.com>

	* configure.in: put -lXext in Xrandr check, bug #115996
2003-09-29 23:23:46 +00:00
Havoc Pennington
89ca4aab3d a little program to test size hints, for now just a 0x0 min size to verify
2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/wm-tester/test-size-hints.c: a little program to test size
	hints, for now just a 0x0 min size to verify bug #113320
2003-09-29 23:21:41 +00:00
Havoc Pennington
a4dc0d581a attempt to fix this to return the data as an array of long even on 64-bit
2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/async-getprop.c (async_get_property_handler): attempt to fix
	this to return the data as an array of long even on 64-bit as with
	XGetWindowProperty() breakage, bug #114035, credit to Gwenole
	Beauchesne for tracking down.
2003-09-29 22:17:16 +00:00
Havoc Pennington
a889ff3469 fix the 64-bit check not to use macros from the X tree that don't get set
2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/xprops.c (cvtINT16toInt): fix the 64-bit check not to use
	macros from the X tree that don't get set

	* configure.in: check for sizes of various types
2003-09-29 18:16:45 +00:00
Havoc Pennington
320ef83bfc don't move the focus after you click the close button on a window. bug
2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/delete.c (meta_window_delete): don't move the focus after
	you click the close button on a window. bug #108706
2003-09-29 17:35:11 +00:00
Havoc Pennington
8849fad8f9 fix warnings (one was a real bug)
2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/main.c (find_accessibility_module): fix warnings (one was a
	real bug)

	* src/ui.c (meta_gdk_pixbuf_get_from_pixmap): fix warning that
	probably explains remaining crash on bug #116923. Jeez, need to
	use -Werror here or something.

        Fix #103575, spawn child processes on proper screen.

	* src/keybindings.c (error_on_command): pass --screen to
	metacity-dialog
	(handle_run_command): launch user command with DISPLAY reflecting
	the screen you launch it from

	* src/delete.c (delete_ping_timeout_func): pass --screen to
	metacity-dialog
2003-09-29 16:55:26 +00:00
Metin Amiroff
9839087306 Updated Azerbaijani translation.
2003-09-27  Metin Amiroff  <metin@karegen.com>

	* az.po: Updated Azerbaijani translation.
2003-09-27 19:27:13 +00:00
Åsmund Skjæveland
d31e28be70 Updated Norwegian (nynorsk) translation.
2003-09-27  Åsmund Skjæveland  <aasmunds@fys.uio.no>

	* nn.po: Updated Norwegian (nynorsk) translation.
2003-09-27 10:37:02 +00:00
Havoc Pennington
26c2ae81ea when focus on root window becomes None, set it to something other than
2003-09-26  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): when focus on root window
	becomes None, set it to something other than None so keybindings
	keep working and print a warning about how some application sucks.
	#84564
	(event_callback): Fix debug spew to print focus event details
	properly
	(meta_display_open): when setting initial focus, always use
	RevertToPointerRoot and fix the focus if it's None or PointerRoot
2003-09-27 02:40:09 +00:00
Padraig O'Briain
922932d240 Add -DMETACITY_LIBDIR to support loading of modules Add functions
2003-09-26  Padraig O'Briain  <padraig.obriain@sun.com>

	* src/Makefile.am: Add -DMETACITY_LIBDIR to support loading of modules
	* src/main.c: Add functions find_accessibility_module,
	accessibility_invoke_module and accessibility_invoke
	(main); Check whether GConf accessibility key is true and if so
	load accessibility modules. This code is based on the libgnome code.

	src/tabpopup.c (meta_ui_tab_popup_new): Set accessible role of
	accessible for label containing window name to STATUSBAR so
	AT can be aware of window name.

	This fixes bug #120025
2003-09-26 17:04:37 +00:00
Havoc Pennington
28fbdc611e fix hang when we get EOF, #121376 from Laurent Vivier
2003-09-24  Havoc Pennington  <hp@pobox.com>

	* src/session.c (io_from_warning_dialog): fix hang when we get
	EOF, #121376 from Laurent Vivier
2003-09-25 01:50:30 +00:00
Stanislav Visnovsky
99c7dc8b85 Updated Slovak translation.
2003-09-24  Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>

        * sk.po: Updated Slovak translation.
2003-09-24 06:55:26 +00:00
Taneem Ahmed
ef0816bdce Added "bn" to ALL_LINGUAS. Added Bangla translation by Dr Anirban Mitra of
2003-09-22  Taneem Ahmed  <taneem@bengalinux.org>

	* configure.in: Added "bn" to ALL_LINGUAS.
	* po/bn.po: Added Bangla translation by Dr Anirban Mitra
	of Ankur group <gnome-translation@bengalinux.org>.
2003-09-23 03:33:19 +00:00
Changwoo Ryu
e99ebf6ef0 Updated Korean translation.
* ko.po: Updated Korean translation.
2003-09-22 19:24:21 +00:00
Metin Amiroff
ef44f8066b Updated Azerbaijani file
2003-09-21  Metin Amiroff  <metin@karegen.com>

	* az.po: Updated Azerbaijani file
2003-09-21 20:18:25 +00:00
Åsmund Skjæveland
47d5189812 2003-09-21 <85>smund Skjæveland <aasmunds@fys.uio.no>
* nn.po: Updated Norwegian (Nynorsk) translation.
2003-09-21 17:16:59 +00:00
Åsmund Skjæveland
d71ef42ded 2003-09-21 <85>smund Skjaeveland <aasmunds@fys.uio.no>
* nn.po: Updated Norwegian (nynorsk) translation.
2003-09-21 15:21:36 +00:00
Åsmund Skjæveland
e37091654f Started Norwegian (nynorsk) translation.
2003-09-20  Åsmund Skjæveland  <aasmunds@fys.uio.no>

        * nn.po: Started Norwegian (nynorsk) translation.
2003-09-20 21:49:04 +00:00
Åsmund Skjæveland
dcd097d67e Corrected my e-mail address, and changed to the correct charset (utf-8).
2003-09-20  Åsmund Skjæveland  <aasmunds@fys.uio.no>

        * ChangeLog: Corrected my e-mail address, and changed to the
	correct	charset (utf-8). Thank you, Emacs.
2003-09-20 21:46:13 +00:00
smund Skjveland
b5261cdbda Added Norwegian (nynorsk) translation code to ALL_LINGUAS
2003-09-20  smund Skjveland  <aasmunds@fys.uio.no>

        * configure.in: Added Norwegian (nynorsk) translation code to
        ALL_LINGUAS
2003-09-20 21:42:44 +00:00
Rob Adams
dc40522ea7 Fix bug where multiple entries could appear in MRU lists, or no entry when
2003-09-20  Rob Adams <readams@readams.net>

	Fix bug where multiple entries could appear in MRU lists, or no
	entry when sticking/unsticking windows.  Fix for #122016

	* src/window.c (meta_window_stick): use window->screen->workspaces
	instead of window->workspaces.
	(meta_window_unstick): use window->screen->workspaces instead of
	window->workspaces.
2003-09-20 17:05:35 +00:00
Rob Adams
de44b2d794 Fix a bug with partial-width panel struts caused by incorrect computation
2003-09-19  Rob Adams <readams@readams.net>

	Fix a bug with partial-width panel struts caused by incorrect
	computation of rectangle widths, and another when using different
	screen resolutions on xineramas.  See #122404.  Also fix a crash
	bug with the MRU list when sticking and unsticking windows.  See
	#120809.

	* src/constraints.c (get_outermost_onscreen_positions): Fix
	off-by-one error with partial-width struts.

	* src/window.c (meta_window_update_struts): Fix off-by-one error
	with partial-width struts.
	(meta_window_stick): assign back to GList after g_list_append
	(meta_window_unstick): assign back to GList after g_list_append

	* src/workspace.c (ensure_work_areas_validated): For right and
	bottom struts, compute strut relative to root window and not to
	xinerama edge in compliance with EWMH recommendations.
2003-09-20 04:58:25 +00:00
Fatih Demir
1117d45f8a Added Tamil translation by dinesh 2003-09-17 06:27:48 +00:00
Jonathan Blandford
294cc23179 Rerelease 2.4.0.1 to fix glib-gettext problem.
Wed Sep 10 15:38:09 2003  Jonathan Blandford  <jrb@redhat.com>

	* configure.in: Rerelease 2.4.0.1 to fix glib-gettext problem.
2003-09-10 19:45:51 +00:00
Guntupalli Karunakar
bd74d85560 Updated Hindi translation 2003-09-09 09:52:57 +00:00
Havoc Pennington
3a119e13db remove "this is the unstable branch" warning
2003-09-08  Havoc Pennington  <hp@redhat.com>

	* configure.in: remove "this is the unstable branch" warning
2003-09-08 20:38:35 +00:00
Havoc Pennington
b413f5e7e0 2.6.0
2003-09-08  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.6.0
2003-09-08 19:42:14 +00:00
Pablo Saratxaga
d75b9158bd updated vietnamese file 2003-09-08 13:34:03 +00:00
Nikos Charonitakis
b5b127f083 Review of Greek translation 2003-09-07 19:07:36 +00:00
Fixed mis-translations for ja.po. T.Aihana
1206f9880e 2003-09-06 Fixed mis-translations for ja.po. T.Aihana <aihana@gnome.gr.jp> 2003-09-06 09:30:40 +00:00
Kjartan Maraas
629af6bb36 Updated Norwegian translation.
2003-09-05  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Updated Norwegian translation.
2003-09-05 21:17:51 +00:00
Havoc Pennington
08ca40aad9 2.5.5
2003-09-04  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.5.5

	* HACKING: add instructions on how to make a release
2003-09-04 16:52:03 +00:00
Laurent Dhima
fa4c0bf54a Updated Albanian translation
* sq.po: Updated Albanian translation
2003-09-03 22:58:20 +00:00
Laurent Dhima
01f94925a5 Updated 2003-09-03 22:56:53 +00:00
Guntupalli Karunakar
ae83b19b28 Updated Hindi translations 2003-09-03 12:22:16 +00:00
Mugurel Tudor
9cdbfc53a8 *** empty log message *** 2003-09-02 21:32:30 +00:00
Pablo Saratxaga
a13dbea266 fixed typo 2003-09-02 18:08:18 +00:00
Stano Visnovsky
a236cfd7a8 Really update the po file 2003-09-01 15:56:43 +00:00
Stanislav Visnovsky
27b4e46a16 Updated Slovak translation.
2003-09-01  Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>

        * sk.po: Updated Slovak translation.
2003-09-01 15:55:07 +00:00
Rob Adams
9ddacb019e harden against null return from gdk_pixmap_foreign_new. Fix for #116923.
2003-08-29  Rob Adams  <robadams@ucla.edu>

	* src/ui.c (meta_gdk_pixbuf_get_from_pixmap): harden against null
	return from gdk_pixmap_foreign_new.  Fix for #116923.
2003-08-30 01:48:31 +00:00
Dafydd Harries
a4a32a54c3 Updated Welsh translation. 2003-08-29 16:17:39 +00:00
Pablo Gonzalo del Campo
8ff2a10c96 Revision of Spanish translation by Francisco Javier F. Serrador
2003-08-27  Pablo Gonzalo del Campo  <pablodc@bigfoot.com>

        * es.po: Revision of Spanish translation by
                 Francisco Javier F. Serrador <serrador@arrakis.es>.
2003-08-27 20:09:49 +00:00
Andraz Tori
586eda6199 Updated Slovenian translation 2003-08-27 11:50:31 +00:00
Guntupalli Karunakar
a522c3479e Added Hindi translation 2003-08-27 11:15:44 +00:00
Duarte Loreto
e5a2ddd777 Fixed missing accel in Portuguese translation.
2003-08-25  Duarte Loreto <happyguy_pt@hotmail.com>

	* pt.po: Fixed missing accel in Portuguese translation.
2003-08-25 18:56:10 +00:00
Changwoo Ryu
77fb995c4c Updated Korean translation by Young-Ho Cha <ganadist at mizi.com>.
* ko.po: Updated Korean translation by
	Young-Ho Cha <ganadist at mizi.com>.
2003-08-25 15:47:58 +00:00
Changwoo Ryu
0494e221af Updated Korean translation.
* ko.po: Updated Korean translation.
2003-08-23 18:10:57 +00:00
Stanislav Visnovsky
6e77b6f656 Update Slovak translation.
2003-08-22  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>

        * sk.po: Update Slovak translation.
2003-08-22 06:20:46 +00:00
Rob Adams
dbcf03535d Complete the transition to using the MRU window as the default focus
2003-08-20  Rob Adams  <robadams@ucla.edu>

	Complete the transition to using the MRU window as the default
	focus window instead of the topmost window; fixes a number of
	problems with sloppy focus and utility windows.  See #112031.

	* src/window.c (meta_window_free): call
	meta_workspace_focus_mru_window
	(meta_window_minimize): call meta_workspace_focus_mru_window
2003-08-21 04:32:21 +00:00
Rob Adams
a644753073 do northwest resize when maximizing and fullscreening to avoid potential
2003-08-20  Rob Adams  <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): do northwest resize
	when maximizing and fullscreening to avoid potential "off-by-one"
	problems.
2003-08-21 04:27:11 +00:00
Kjartan Maraas
23b5ea0eee Update Norwegian translation.
2003-08-20  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Update Norwegian translation.
2003-08-20 21:00:32 +00:00
Rob Adams
a2b6ff6d42 put windows with wm_state_below at the bottom. Make this higher priority
2003-08-19  Rob Adams  <robadams@uclu.edu>

	* src/stack.c (get_standalone_layer): put windows with
	wm_state_below at the bottom.  Make this higher priority than full
	screen layer; see #120238.
2003-08-19 20:10:45 +00:00
Dafydd Harries
5ea067a1d8 Updated Welsh translation. 2003-08-19 05:11:27 +00:00
Rob Adams
8b924ece14 recalculate frame geometry if the window gets maximized after placement,
2003-08-18  Rob Adams  <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): recalculate frame
	geometry if the window gets maximized after placement, since it's
	likely to change.  Fix for #120117.
2003-08-19 01:10:01 +00:00
Danilo Šegan
9615538389 Updated Belarusian translation by Ales Nyakhaychyk <nab@mail.by>.
2003-08-18  Danilo Šegan  <dsegan@gmx.net>

	* be.po: Updated Belarusian translation by Ales Nyakhaychyk
	<nab@mail.by>.
2003-08-18 20:03:03 +00:00
Metin Amiroff
9c53e2f5f1 Updated Azerbaijani translation.
2003-08-18  Metin Amiroff <metin@karegen.com>

	* az.po: Updated Azerbaijani translation.
2003-08-18 11:07:27 +00:00
Ray Strode
81da59a8a4 Use MRU list to find focusing window after a window is deleted instead of
2003-08-17  Ray Strode  <halfline@hawaii.rr.com>

	* src/delete.c (meta_window_delete): Use MRU list to find focusing
	window after a window is deleted instead of using top window. Fix
	for #108643.
2003-08-17 21:43:50 +00:00
Pauli Virtanen
22eab481b1 Updated Finnish translation.
2003-08-16  Pauli Virtanen  <pauli.virtanen@hut.fi>

	* fi.po: Updated Finnish translation.
2003-08-16 16:53:28 +00:00
Havoc Pennington
71cd8948d2 Patch from Soeren Sandmann #108926 to improve opaque resize
2003-08-16  Havoc Pennington  <hp@pobox.com>

	Patch from Soeren Sandmann #108926 to improve opaque resize

	* src/frame.c (meta_window_ensure_frame): new function

	* src/ui.c (meta_ui_create_frame_window): new function to create
	a frame with GDK, so that GDK's invalidation etc. work properly
2003-08-16 16:32:10 +00:00
Havoc Pennington
288e10f7fe credit 2003-08-16 14:37:26 +00:00
Havoc Pennington
a9e5560c36 fix cursor for META_GRAB_OP_MOVING, #111943
2003-08-16  Havoc Pennington  <hp@pobox.com>

	* src/display.c (xcursor_for_op): fix cursor for
	META_GRAB_OP_MOVING, #111943
2003-08-16 14:36:56 +00:00
Rob Adams
fcd56c3ef0 move to upper left corner since we're resizing/moving instead of
2003-08-15  Rob Adams  <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): move to upper left
	corner since we're resizing/moving instead of moving/resizing.
	Fix for #119988.
2003-08-16 01:07:24 +00:00
Rob Adams
7dc793c3be fix but with maximizing/fullscreening windows 2003-08-16 01:05:37 +00:00
Ray Strode
2fc880db19 Changed MRU list to be per workspace instead of per display, so sticky
2003-08-15  Ray Strode  <halfline@hawaii.rr.com>

	Changed MRU list to be per workspace instead of per display, so
	sticky windows don't hijack the window focus after workspace
	switching (Bug #97635).

	* src/delete.c (meta_window_delete): Use
	meta_workspace_focus_top_window instead of
	meta_screen_focus_top_window.

	* src/display.c (meta_display_open): Stop using display->mru_list.
	(find_tab_forward):
	(find_tab_backward):
	(meta_display_get_tab_list): Use workspace->mru_list instead of
	display->mru_list and remove unneeded calls to
	meta_window_visible_on_workspace

	* src/display.h: Remove mru_list from MetaDisplay

	* src/keybindings.c (handle_toggle_desktop): Use
	meta_workspace_focus_top_window instead of
	meta_screen_focus_top_window.

	* src/screen.c (meta_screen_focus_top_window):
	(meta_screen_focus_default_window): Remove functions.
	(meta_screen_show_desktop): Use meta_workspace_focus_top_window
	instead of meta_screen_focus_top_window.

	* src/screen.h: Remove meta_screen_focus_top_window and
	meta_screen_focus_default_window declarations.

	* src/window.c (meta_window_new): Stop using display->mru_list.
	(meta_window_free): Use meta_workspace_focus_top_window
	instead of meta_screen_focus_top_window and stop using
	display->mru_list.
	(meta_window_stick): Add sticky window to all workspace MRU lists.
	(meta_window_unstick): Remove non-sticky window from the workspace
	MRU lists it doesn't belong in.
	(meta_window_notify_focus): Move newly focused window to the front
	of active workspace's MRU list.

	* src/workspace.c (meta_workspace_new): Initialize
	workspace->mru_list to NULL.
	(meta_workspace_add_window): Add window to workspace's MRU list.
	(meta_workspace_remove_window): Remove window from workspace's MRU
	list.
	(meta_workspace_activate_with_focus): Use
	meta_workspace_focus_default_window instead of
	meta_screen_focus_default_window.
	(meta_workspace_focus_default_window):
	(meta_workspace_focus_mru_window):
	(meta_workspace_focus_top_window): Add functions.

	* src/workspace.h: Add mru_list to MetaWorkspace and add function
	declarations for meta_workspace_focus_default_window,
	meta_workspace_focus_mru_window, meta_workspace_focus_top_window.
2003-08-15 22:09:55 +00:00
Rob Adams
60a453f5a0 Allow windows that are too tall for the workarea to break the onscreen
2003-08-14  Rob Adams  <robadams@ucla.edu>

	Allow windows that are too tall for the workarea to break the
	onscreen constraints just enough so that their bottom edges can be
	made visible.  Fix for #106740.  Also, changes constraints to
	constrain the resize and then the move to avoid complexities in
	the code for the above fix.

	* src/constraints.c (get_outermost_onscreen_positions)
	Compute the "effective" height of the work area and the minimum
	size for the window to compute a value by which a window is
	allowed to violate the top constraint.
	(meta_window_constrain): convert to a resize then a move instead
	of a move then resize.
2003-08-15 01:07:58 +00:00
Rob Adams
32a587e4a3 remove metacity.spec from AC_OUTPUT
2003-08-13  Rob Adams  <robadams@ucla.edu>

	* configure.in: remove metacity.spec from AC_OUTPUT
2003-08-14 06:14:56 +00:00
Havoc Pennington
8deed5d601 remove, nobody is maintaining it.
2003-08-13  Havoc Pennington  <hp@redhat.com>

	* metacity.spec.in: remove, nobody is maintaining it.
2003-08-13 19:30:11 +00:00
Laurent Dhima
f8b4a391e3 Added "sq" to ALL_LINGUAS
* configure.in: Added "sq" to ALL_LINGUAS
2003-08-12 22:47:13 +00:00
Laurent Dhima
2f3ed8ab65 Added Albanian file
* sq.po: Added Albanian file
2003-08-12 22:43:39 +00:00
Dafydd Harries
306fc4ee61 Updated Welsh translation. 2003-08-12 18:47:02 +00:00
Havoc Pennington
5200e59ba3 don't select for button press/release events, as that keeps other clients
2003-08-10  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): don't select for button
	press/release events, as that keeps other clients from doing so,
	and it doesn't seem that metacity has any reason to do it.
	Patch from Andreas Volz.
2003-08-10 20:14:45 +00:00
Wang Jian
d06dee2778 *** empty log message *** 2003-08-09 11:04:50 +00:00
Christophe Merlet
19105eedb2 Updated French translation. 2003-08-09 08:26:00 +00:00
Bastien Nocera
a252050cb8 fix markup being ignored when a window title has a forbidden character in
2003-08-08  Bastien Nocera  <hadess@hadess.net>

	* src/metacity-dialog.c: (kill_window_question),
	(warn_about_no_sm_support): fix markup being ignored when a window
	title has a forbidden character in it (eg. "Send & Receive")
	* src/tools/metacity-window-demo.c: fix warning
2003-08-08 16:25:34 +00:00
Danilo Šegan
435bf3f2e4 Updated Serbian translation.
2003-08-08  Danilo Šegan  <dsegan@gmx.net>

	* sr.po, sr@Latn.po: Updated Serbian translation.
2003-08-08 03:01:55 +00:00
Hasbullah Bin Pit
1fcd5e9704 Updated Malay translation.
2003-08-07  Hasbullah Bin Pit <sebol@ikhlas.com>

        * ms.po: Updated Malay translation.
2003-08-07 17:34:13 +00:00
Metin Amiroff
5188e9c4d0 Updated Azerbaijani translation.
2003-08-06  Metin Amiroff  <metin@karegen.com>

        * az.po: Updated Azerbaijani translation.
2003-08-06 17:38:14 +00:00
Ole Laursen
1d57293511 Updated Danish translation.
2003-08-05  Ole Laursen  <olau@hardworking.dk>

	* da.po: Updated Danish translation.
2003-08-05 14:41:16 +00:00
Pablo Gonzalo del Campo
ebbc388205 Updated Spanish translation.
2003-08-05  Pablo Gonzalo del Campo  <pablodc@bigfoot.com>

        * es.po: Updated Spanish translation.
2003-08-05 14:24:09 +00:00
Arvind Samptur
fb5f3f6bb0 Number of strings we are processing is one more than required.
2003-07-29  Arvind Samptur  <arvind.samptur@wipro.com>

        * src/xprops.c (utf8_list_from_results): Number of
        strings we are processing is one more than required.

        Also get the string count right even without a null byte at the end.
        Pointed out by Havoc.
2003-07-31 09:35:56 +00:00
Andras Timar
5558451c11 Updated Hungarian translation.
2003-07-29  Andras Timar  <timar@gnome.hu>

	* hu.po: Updated Hungarian translation.
2003-07-29 13:35:37 +00:00
Rob Adams
5727235572 Update window shaking loose so that the window is moved to the pointer and
2003-07-27  Rob Adams  <robadams@ucla.edu>

	* src/window.c (update_move):  Update window shaking loose so that
	the window is moved to the pointer and certain drag state is
	properly restored once windows "reattach".  Fix for #115000 based
	on the patch by Jurg Billeter.

	* src/screen.c (meta_screen_resize): Invalidate work areas after
	an xrandr screen size update.  Fix for #117230.

	* src/stack.c (window_is_fullscreen_size): Check the bottom corner
	of the window in addition to the top corner.  Fix for #118194.

	* src/constraints.c (meta_window_constrain): Support aspect ratio
	hints in the new constraints code.  Fix for #113798.

	* src/tools/metacity-window-demo.c (toggle_aspect_ratio): toggle
	the aspect ratio hints to force a 16:9 aspect ratio.
	(do_appwindow): add a button to toggle aspect ratio.
2003-07-28 02:09:20 +00:00
Havoc Pennington
74fa2a7ab2 also measure wall clock time, and run over a number of window sizes.
2003-07-27  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c (run_theme_benchmark): also measure wall
	clock time, and run over a number of window sizes.
2003-07-27 23:35:40 +00:00
Sajith VK
e49cc883bb ok 2003-07-27 11:21:59 +00:00
Dafydd Harries
3b54d71058 Updated Welsh translation. 2003-07-25 00:16:24 +00:00
Pablo Saratxaga
2a90c0225d updated Vietnamese file 2003-07-24 11:20:28 +00:00
Evandro Fernandes Giovanini
f7e42bc4c4 Updated Brazilian Portuguese translation.
2003-07-20  Evandro Fernandes Giovanini <evandrofg@ig.com.br>

        * pt_BR.po: Updated Brazilian Portuguese translation.
2003-07-20 11:36:37 +00:00
updated ja.po. T.Aihana
2ffc505c19 2003-07-20 updated ja.po. T.Aihana <aihana@gnome.gr.jp> 2003-07-20 06:41:13 +00:00
Duarte Loreto
154da1f68a Updated Portuguese translation.
2003-07-18  Duarte Loreto <happyguy_pt@hotmail.com>

        * pt.po: Updated Portuguese translation.
2003-07-17 23:59:27 +00:00
Kostas Papadimas
b45a357652 Updated the Greek translation 2003-07-17 16:49:53 +00:00
Vincent van Adrighem
7962cfa83e Dutch translation updated by Tino Meinen.
2003-07-17  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>

	* nl.po: Dutch translation updated by Tino Meinen.
2003-07-17 08:03:31 +00:00
Havoc Pennington
2d89ba9c87 update
2003-07-15  Havoc Pennington  <hp@redhat.com>

	* NEWS: update

	* configure.in: 2.5.3
2003-07-15 21:54:22 +00:00
Christian Neumair
00672554ed Updated German translation. 2003-07-12 21:30:23 +00:00
Pablo Saratxaga
f2c0ff8979 Added Walloon file 2003-07-12 13:29:28 +00:00
Alessio Frusciante
dc52a32aad Updated Italian translation. 2003-07-12 13:02:50 +00:00
Vincent van Adrighem
bd779534af Dutch translation updated by Kees van den Broek.
2003-07-07  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>

	* nl.po: Dutch translation updated by Kees van den Broek.
2003-07-07 15:39:40 +00:00
Kwok-Koon Cheung
cf0bd5bdc1 Updated traditional Chinese translation.
* zh_TW.po: Updated traditional Chinese translation.
2003-07-07 15:24:19 +00:00
Evandro Fernandes Giovanini
5dcc25693a Updated Brazilian Portuguese translation.
2003-07-06  Evandro Fernandes Giovanini <evandrofg@ig.com.br>

        * pt_BR.po: Updated Brazilian Portuguese translation.
2003-07-07 01:30:44 +00:00
Havoc Pennington
1443f06471 add rationales.txt
2003-07-04  Havoc Pennington  <hp@pobox.com>

	* Makefile.am (EXTRA_DIST): add rationales.txt
2003-07-05 02:08:51 +00:00
Jordi Mallach
63a6f2121e Add X-GNOME-Bugzilla entries.
2003-07-02  Jordi Mallach  <jordi@sindominio.net>

	* src/metacity.desktop.in: Add X-GNOME-Bugzilla entries.
2003-07-02 17:15:56 +00:00
Artur Flinta
68fca2e5e5 Updated Polish translation.
2003-07-02  Artur Flinta  <aflinta@cvs.gnome.org>

	* pl.po: Updated Polish translation.
2003-07-01 23:31:41 +00:00
Padraig O'Briain
42182cbe77 Activate window before ending grab. This fixes bug #114037.
2003-07-01  Padraig O'Briain  <padraig.obriain@sun.com>

	* src/keybindings.c (process_tab_grab): Activate window before ending
	grab. This fixes bug #114037.
2003-07-01 14:59:09 +00:00
Rob Adams
d08fa29612 Update grab state when we unmaximize so double-clicking doesn't cause
2003-06-20  Rob Adams  <robadams@ucla.edu>

	* src/window.c (meta_window_unmaximize): Update grab state when we
	unmaximize so double-clicking doesn't cause weird window-jumping
	problems.  See #116292.
2003-06-30 14:49:11 +00:00
Rob Adams
311f435120 Actually maximize after placement. See #116285.
2003-06-29  Rob Adams  <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): Actually maximize
	after placement.  See #116285.
2003-06-29 22:33:28 +00:00
Jordi Mallach
788ea66b1f Updated Catalan translation. 2003-06-28 16:43:52 +00:00
Havoc Pennington
fa075eb8f1 nuke the lists of struts here, to improve confidence that we never try to
2003-06-26  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_invalidate_work_area): nuke the
	lists of struts here, to improve confidence that we never try to
	use them after a window with rects in the list gets freed.
	(it wasn't broken before I don't think, just making the
	code more robust against future mods)

	* src/window.c (meta_window_update_struts): replace magic "75"
	with a macro

	* src/constraints.c (constraint_hints_applies_func): don't apply
	hints to maximized or fullscreen, rather than only fullscreen
	(constrain_move): add paranoia max number of iterations to the
	heuristic loop
2003-06-28 16:12:32 +00:00
Miloslav Trmac
e1102bc6ff Update Czech translation 2003-06-28 15:55:07 +00:00
Christian Rose
f92eadf9d6 Updated Swedish translation.
2003-06-28  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2003-06-28 10:28:55 +00:00
Rob Adams
34ec58af0a Add keybinding to allow the user to toggle _NET_WM_STATE_ABOVE on windows.
2003-06-26  Rob Adams  <robadams@ucla.edu>

	Add keybinding to allow the user to toggle _NET_WM_STATE_ABOVE on
	windows.  Disabled by default.  See #98387.

	* src/keybindings.c (handle_toggle_above): new function implements
	the keybinding

	* src/metacity.schemas.in: add toggle_above keybinding

	* src/prefs.[ch]: add toggle_above keybinding

	* src/window.[ch] (meta_window_make_above): new function to put a
	window into the above state
	(meta_window_unmake_above): new function takes a window out of the
	above state
2003-06-27 14:49:56 +00:00
Mohammad DAMT
b6389fbf60 Updated Indonesian translation
2003-06-27  Mohammad DAMT  <mdamt@bisnisweb.com>

	* id.po: Updated Indonesian translation
2003-06-27 04:06:42 +00:00
Ole Laursen
e26992e419 Updated Danish translation.
2003-06-26  Ole Laursen  <olau@hardworking.dk>

	* da.po: Updated Danish translation.
2003-06-26 08:30:24 +00:00
Mohammad DAMT
40ea74f46c Added Indonesian translation Added "id" to ALL_LINGUAS
2003-06-26  Mohammad DAMT  <mdamt@bisnisweb.com>

	* po/id.po: Added Indonesian translation
	* configure.in: Added "id" to ALL_LINGUAS
2003-06-26 03:46:17 +00:00
Rob Adams
971f3f1207 Update constraints code to support the new _NET_WM_STRUT_PARTIAL EWMH
2003-06-10  Rob Adams  <robadams@ucla.edu>

	Update constraints code to support the new _NET_WM_STRUT_PARTIAL
	EWMH draft specification.  See #86682.  Also, fix a bug involving
	work area invalidation on metacity startup.  Fix for #108497.
	Finally, some minor fixes for full screen windows.

	* src/window.h: Add new MetaStruts structure to store strut rects
	for a window.  Remove has_struts and do_not_cover flag, and
	support new MetaStruts instead of the four ints.

	* src/window.c (meta_window_new): change initialization to work
	with new struts.  Also, move meta_window_update_struts call to
	after the workspaces are initialized to fix #108497.  Remove
	do_not_cover and related code.
	(process_property_notify): add strut_partial
	(update_struts): change function name to meta_window_update_struts
	and expose in external MetaWindow API.  Support partial width
	struts and the new strut rects.

	* src/workspace.h: add new GSLists containing pointers to all
	relevant struts for this workspace.

	* src/workspace.c (meta_workspace_new): initialize the list of
	strut rects for this workspace.
	(meta_workspace_free): free the strut rect lists
	(ensure_work_areas_validated): support new struts and new strut
	rect lists.  Unleash the per-xinerama work areas.

	* src/constraints.c (get_outermost_onscreen_positions): Use the
	current window position along with the new per-workspace strut
	rects to compute the constraints that apply to a particular
	window.
	(constraint_hint_applies_func): don't do hints constraints on
	fullscreen windows
	(update_position_limits): for maximized windows use the work areas
	to set the position limits; for other windows rely on the struts
	constraints to be computed later in
	get_outermost_onscreen_positions
	(meta_window_constrain): don't apply aspect ratio hints to full
	screen windows

	* src/display.c (meta_display_open): add _NET_WM_STRUT_PARTIAL atom
	(meta_rectangle_equal): new helper function for MetaRectangles
	(event_queue_callback): #ifndef out if USE_GDK_DISPLAY not set to
	avoid compiler warning

	* src/display.h: add atom_net_wm_strut_partial, and add
	meta_rectangle_equal.

	* src/screen.c (meta_screen_rect_intersects_xinerama): change
	_window_intersects_ to _rect_intersects_ which is more useful now.
	(meta_screen_resize_func): update struts on windows with struts
	since struts are relative to the screen size, and this function is
	called when the screen size updates.

	* src/screen.h (meta_screen_rect_intersects_xinerama): change
	_window_intersects_ to _rect_intersects_ which is more useful now.

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	hook for strut_partial

	* src/tools/metacity-window-demo.c: Support partial-width struts
	on the dock window tests for metacity testing purposes.
2003-06-26 03:09:38 +00:00
Vincent van Adrighem
3a39036dcb Dutch translation updated by Kees van den Broek.
2003-06-23  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>

	* nl.po: Dutch translation updated by Kees van den Broek.
2003-06-22 23:02:40 +00:00
Samel Jn Gunnarsson
3428ed1adf Added Icelandic translation
2003-06-22  Samel Jn Gunnarsson  <sammi@techattack.nu>

	* is.po: Added Icelandic translation
2003-06-22 15:21:40 +00:00
Christophe Merlet
81e4cb44aa Updated French translation. 2003-06-20 22:49:49 +00:00
Ivan Stojmirov
acb625ddeb added Macedonian translation 2003-06-19 10:33:44 +00:00
Pauli Virtanen
44508380dc Updated Finnish translation.
2003-06-17  Pauli Virtanen  <pauli.virtanen@hut.fi>

	* fi.po: Updated Finnish translation.
2003-06-17 18:34:50 +00:00
Rob Adams
4d8414acfd Focus on mouse click in sloppy/mouse to fix keynav. Fix for #115072.
2003-06-12  Rob Adams  <robadams@ucla.edu>

	* src/display.c (event_callback): Focus on mouse click in
	sloppy/mouse to fix keynav.  Fix for #115072.
2003-06-13 05:47:51 +00:00
Pablo Gonzalo del Campo
70d0446190 Updated Spanish translation.
2003-06-12  Pablo Gonzalo del Campo <pablodc@bigfoot.com>

	* es.po: Updated Spanish translation.
2003-06-12 21:55:08 +00:00
Rob Adams
793a630e2f honor --disable-schemas-install. Fix for #106123 from Julio Merino
2003-06-12  Rob Adams  <robadams@ucla.edu>

	* src/Makefile.am: honor --disable-schemas-install.  Fix for
	#106123 from Julio Merino
2003-06-12 17:41:38 +00:00
Rob Adams
2936391fc8 Update ChangeLog 2003-06-12 07:22:44 +00:00
Rob Adams
85826d0d9a Remove legacy support for Gnome 1 hints, since we deem it unlikely that
2003-06-12  Rob Adams  <robadams@ucla.edu>

	Remove legacy support for Gnome 1 hints, since we deem it unlikely
	that anyone is running a current metacity with Gnome 1.  The
	removed hints are _WIN_WORKSPACE, _WIN_LAYER, _WIN_PROTOCOLS,
	_WIN_SUPPORTING_WM_CHECK, and _WIN_HINTS.

	* display.c (meta_display_open): remove hints

	* display.h: remove atoms for hints

	* screen.c (set_wm_check_hint): don't set legacy hint
	(set_supported_hint): don't set legacy hint

	* window-props.c (init_win_workspace): removed
	(reload_win_workspace): removed
	(meta_display_init_window_prop_hooks): remove hints

	* window.h: remove do_not_cover flag

	* window.c: remove GnomeWinHints enum
	(recalc_do_not_cover_struts): removed
	(meta_window_new): don't initialize removed flags or compute
	legacy struts
	(move_resize_cmp): removed
	(idle_move_resize): Don't bother sorting the idle queue
	(meta_window_client_message): don't set legacy hint
	(process_property_notify): remove hints
	(update_net_wm_type): don't fall back to WIN_LAYER hint
	(update_struts): remove legacy struts
2003-06-12 07:03:04 +00:00
Havoc Pennington
0a20419628 make raise-on-click explicitly only happen in click to focus mode.
2003-06-12  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): make raise-on-click explicitly
	only happen in click to focus mode.

	* src/window.c (update_move): apply patch from Jurg Billeter to
	allow you to "shake loose" maximized windows and move them between
	Xinerama heads. #93586

	* src/display.c: delete event_queue_callback

	* src/display.h (struct _MetaDisplay): get rid of
	grab_current_window_pos and grab_current_root_[xy] as I could find
	absolutely no code using them for anything. They were just sort of
	randomly assigned to for no apparent reason.

	* src/display.c (event_callback): double-click timeout is per
	screen, so get the screen and pass screen->ui to
	meta_ui_get_double_click_timeout()

	* src/ui.c (meta_ui_get_double_click_timeout): take a MetaUI
	argument so we get the right settings for each screen
	(meta_ui_get_drag_threshold): new function
2003-06-12 05:55:06 +00:00
Bill Haneman
2d4503ee59 Fix for 114940. 2003-06-11 17:55:28 +00:00
Rob Adams
010e620a34 Revamp placement policy for windows that are maximized when they are
2003-06-09  Rob Adams  <robadams@ucla.edu>

	Revamp placement policy for windows that are maximized when they
	are mapped, including windows that set a hint to be maximized or
	windows that are auto-maximized using our heuristic.  See #111902.

	* src/window.h: add new flag maximize_after_placement and new
	function meta_window_maximize_internal.

	* src/window.c (meta_window_new): initialize
	maximize_after_placement to FALSE and remove the automaximize
	heuristic.
	(meta_window_maximize_internal): new function accepts a saved_rect
	argument to be used as the new saved_rect for the window, and does
	not queue a move_resize.
	(meta_window_maximize): re-implement using
	meta_window_maximize_internal.
	(update_net_wm_state): If a window has a maximize hint set on
	startup set maximize_after_placement to TRUE

	* src/constraints.c (meta_window_constrain): Update the xinerama
	information in the ConstraintInfo after placing the window, and
	maximize the window after placement if
	window->maximize_after_placement

	* src/place.c (find_first_fit): take a natural xinerama list as an
	argument instead of generating it here
	(constrain_placement): remove function, since it is no longer
	needed
	(meta_window_place): generate the natural xinerama list here and
	pass it into find_first_fit.  If find_first_fit fails, use the
	list to find empty xineramas where we can place windows that may
	be maximized later.  This makes maximized windows follow the
	correct placement policy.  Move the automaximize heuristic here.
2003-06-09 23:49:02 +00:00
Rob Adams
3f6bad087d install an alarm to timeout the no-sm-dialog after 4 minutes of
2003-06-09  Rob Adams  <robadams@ucla.edu>

	* src/metacity-dialog.c (warn_about_no_sm_support): install an
	alarm to timeout the no-sm-dialog after 4 minutes of inactivity.
	Patch from Ximian.  See #114789.
2003-06-09 18:58:53 +00:00
Garrett LeSage
c523d2827c Applying a fix for the "X" (close button) from Joe A. <joefefifo@yahoo.com> 2003-06-09 18:56:28 +00:00
Christophe Merlet
a53fea96ab Updated French translation. 2003-06-08 19:32:32 +00:00
Rob Adams
0bb8538e2f call meta_group_compute_group after setting window->desc to avoid SIGSEGV
2003-06-07  Rob Adams  <robadams@ucla.edu>

	* src/window.c (meta_window_new): call meta_group_compute_group
	after setting window->desc to avoid SIGSEGV when verbose mode is
	enabled.
2003-06-07 17:15:33 +00:00
Christian Neumair
03b3e98a51 Updated German translation. 2003-06-07 14:19:40 +00:00
Havoc Pennington
e0963e6b66 drop the mouse button grabs for the focused window; we'll see if this
2003-06-07  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_notify_focus): drop the mouse button
	grabs for the focused window; we'll see if this breaks anything.
	It should fix #102209
2003-06-07 05:07:08 +00:00
Jonathan Blandford
6262db51a2 fix the location of the schemas file.
Fri Jun  6 19:27:53 2003  Jonathan Blandford  <jrb@gnome.org>

	* src/metacity.schemas.in: fix the location of the schemas file.
2003-06-06 23:31:24 +00:00
Jordi Mallach
58df4ee985 Updated Catalan translation. 2003-06-06 12:22:58 +00:00
Rob Adams
85abc9bfe7 don't be stupid and set window->group = NULL after calling
2003-06-04  Rob Adams  <robadams@ucla.edu>

	* src/window.c (meta_window_new): don't be stupid and set
	window->group = NULL after calling meta_window_compute_group.

	* src/group.c (meta_window_get_group): assert that window->group
	!= NULL in here instead of computing the group to ensure
	robustness.
2003-06-04 19:28:19 +00:00
Rob Adams
993c7075f3 Precompute groups to guarantee that meta_group_list_windows always returns
2003-06-04  Rob Adams  <robadams@ucla.edu>

	Precompute groups to guarantee that meta_group_list_windows always
	returns the correct list of windows.  See Bug #96973

	* src/window.h: change cached_group variable to group

	* src/window.c (meta_window_new): change cached_group to group and
	call meta_window_compute_group

	* src/groups.c (meta_window_get_group): simply return
	window->group rather than computing it and returning
	window->cached_group
	(meta_window_compute_group): new function computes window->group.
	Designed to be called once from meta_window_new
	(remove_window_from_group): change cached_group to group
	(meta_window_group_leader_changed): call meta_window_compute_group
	instead of meta_window_get_group
2003-06-04 19:15:46 +00:00
Rob Adams
4469a42a77 Roll back broken update 2003-06-04 16:54:04 +00:00
Rob Adams
bf965f8465 Precompute groups to guarantee that meta_group_list_windows always returns
2003-06-04  Rob Adams  <robadams@ucla.edu>

	Precompute groups to guarantee that meta_group_list_windows always
	returns the correct list of windows.  See Bug #96973

	* src/window.h: change cached_group variable to group

	* src/window.c (meta_window_new): change cached_group to group and
	call meta_window_compute_group

	* src/groups.c (meta_window_get_group): simply return
	window->group rather than computing it and returning
	window->cached_group
	(meta_window_compute_group): new function computes window->group.
	Designed to be called once from meta_window_new
	(remove_window_from_group): change cached_group to group
2003-06-04 16:45:47 +00:00
Dmitry Mastrukov
f87a8c212f be.po: Updated Belarusian translation from Belarusian team <i18n@mova.org>. 2003-06-04 04:29:20 +00:00
Dmitry Mastrukov
3663ba0259 ru.po: Updated Russian translation from Russian team <gnome-cyr@gnome.org>. 2003-06-04 04:25:56 +00:00
Dafydd Harries
b9900681e7 Updated Welsh translation. 2003-05-31 15:57:36 +00:00
Rob Adams
3edad8599c CVS2003-05-29 Rob Adams <robadams@ucla.edu>
CVS2003-05-29  Rob Adams  <robadams@ucla.edu>

	Use a new property _METACITY_SENTINEL to eliminate a race
	condition that causes focus to behave badly with sloppy/mouse
	focus when lots of windows are mapped/unmapped, such as with a
	workspace switch.  The EnterNotify events on a display are ignored
	until the PropertyNotify sent after all the window maps is
	received.  This is a fix for #110970.

	* src/display.[ch]: New _METACITY_SENTINEL atom.
	(event_callback): ignore EnterNotify if the sentinel isn't clear,
	and decrement the sentinel counter when the PropertyNotify is
	received.
	(meta_display_increment_focus_sentinel): new function.  Increments
	the sentinel counter and updates the property on a root window on
	this display.
	(meta_display_decrement_focus_sentinel): Decrement the sentinel
	counter.
	(meta_display_focus_sentinel_clear): returns whether the sentinel
	counter is zero.

	* src/window.c (idle_calc_showing): after showing windows, call
	meta_display_increment_focus_sentinel on each display for windows
	to be shown.

	* src/workspace.[ch] (meta_workspace_activate_with_focus): new
	function activates a workspace and focuses a particular window
	after the workspace is activated.
	(meta_workspace_activate): now just a wrapper for
	meta_workspace_activate_with_focus

	* src/keybindings.c: use new meta_workspace_activate_with_focus
	function to ensure that focus will follow the focused window
	through the workspace switch.

: ----------------------------------------------------------------------
2003-05-30 20:24:00 +00:00
Paul Duffy
903f3d7e6e Updated Irish Translation
2003-05-30  Paul Duffy <dubhthach@frink.nuigalway.ie>
Updated Irish Translation
2003-05-30 19:01:18 +00:00
Havoc Pennington
051e404d09 s/int/gsize/ for g_file_get_contents() (found independently by
2003-05-29  Havoc Pennington  <hp@redhat.com>

	* src/theme-parser.c (meta_theme_load): s/int/gsize/ for
	g_file_get_contents() (found independently by
	marcus@freebsd.org on SPARC and James Laska on s390x;
	#113661

	* src/main.c (main): fix theme location mentioned in error message
2003-05-30 04:52:12 +00:00
Ray Strode
d1a853557b Get and use double-click speed from GtkSettings (Bug #103218).
2003-05-29  Ray Strode  <halfline@hawaii.rr.com>

	Get and use double-click speed from GtkSettings (Bug #103218).

	* src/ui.c, src/ui.h:
	add function meta_ui_get_double_click_timeout for looking up
	the global double-click speed.

	* src/display.c, src/display.h: remove double_click_time
	field from MetaDisplay and use meta_ui_get_double_click_timeout
	instead.
2003-05-30 02:53:42 +00:00
Kwok-Koon Cheung
f441033959 Updated traditional Chinese translation.
* zh_TW.po: Updated traditional Chinese translation.
2003-05-30 00:43:44 +00:00
Rob Adams
0fa4954c46 chdir to the user's home directory on startup. See #113755.
2003-05-29  Rob Adams  <robadams@ucla.edu>

	* src/main.c (main): chdir to the user's home directory on
	startup.  See #113755.

	* src/stack.c (get_standalone_layer): a window should be in the
	fullscreen layer if it or any of its transient descendants are
	focused or expecting the focus and it is either fullscreen or
	fullscreen sized.  Fix for #104369.

	* src/stack.c (is_focused_foreach): foreach used by
	get_standalone_layer to find focused transient descendants.
2003-05-29 17:16:22 +00:00
Duarte Loreto
59958b0f0a Updated Portuguese translation.
2003-05-26  Duarte Loreto <happyguy_pt@hotmail.com>

        * pt.po: Updated Portuguese translation.
2003-05-26 20:56:52 +00:00
Miloslav Trmac
4549e42480 Update Czech translation 2003-05-21 08:45:10 +00:00
Havoc Pennington
1620fd5408 the mask display->ignored_modifier_mask wasn't being bound, due to "<"
2003-05-20  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (meta_change_keygrab): the mask
	display->ignored_modifier_mask wasn't being bound,
	due to "<" instead of "<=" (most people didn't notice
	as display->ignored_modifier_mask included Scroll_Lock).
	Red Hat bugzilla #91301 reported by Youssef Makki

	* src/display.c (meta_change_button_grab): make corresponding
	change for button grabs.
2003-05-21 03:45:58 +00:00
Havoc Pennington
1d692936e0 2.5.2 2003-05-20 16:40:32 +00:00
Anders Carlsson
6153a17a64 Split up the strings to make life easier for translators.
2003-05-20  Anders Carlsson  <andersc@codefactory.se>

	* src/metacity-dialog.c: (kill_window_question):
	Split up the strings to make life easier for translators.
2003-05-20 15:54:42 +00:00
Christian Rose
b77590ba7a Updated Swedish translation.
2003-05-20  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2003-05-20 15:33:21 +00:00
Anders Carlsson
c9df553d02 Fix the wording and HIGify the dialog.
2003-05-20  Anders Carlsson  <andersca@codefactory.se>

	* src/metacity-dialog.c: (kill_window_question):
	Fix the wording and HIGify the dialog.
2003-05-20 15:06:01 +00:00
Telsa Gwynne
967ac0f1d9 More Welsh updates from Daf. 2003-05-19 14:27:00 +00:00
Christophe Merlet
ebf2c77c50 Updated French translation. 2003-05-18 22:55:45 +00:00
Havoc Pennington
c370a3e503 revert broken change that assumed foreach_ancestor iterated over the
2003-05-18  Havoc Pennington  <hp@pobox.com>

	* src/window.c (unminimize_window_and_all_transient_parents):
	revert broken change that assumed foreach_ancestor iterated
	over the window itself. Andrew Sobala, Rob Adams,
	#113232
`
2003-05-18 17:16:03 +00:00
Rob Adams
9e2608524d update ChangeLog 2003-05-17 04:16:34 +00:00
Rob Adams
7fc6c99987 Flip the workspace when using up/down/left/right for move window to, but
2003-05-16  Rob Adams  <robadams@ucla.edu>

	Flip the workspace when using up/down/left/right for move window
	to, but not when specifying a workspace explicitly as in move to
	workspace 4.  Possible fix for #105492.

	* src/keybindings.c (do_handle_move_to_workspace): new function
	moves a window to a workspace with the option to flip to that
	workspace.
	(handle_move_to_workspace): Use new do_handle_move_to_workspace
	function without flipping (a keybinding)
	(handle_move_to_workspace_flip): Use new
	do_handle_move_to_workspace function with flipping (a keybinding)
2003-05-17 00:00:55 +00:00
Havoc Pennington
3ad5618596 fix for bug #104018 from David Santiago, change button state to normal
2003-05-16  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_paint_to_drawable): fix for
	bug #104018 from David Santiago, change button state to
	normal while it's being pressed if you move the mouse
	outside it. Do this by tracking prelit_control for whether
	to draw a button as active, not just for whether to draw
	it as prelit.
	(meta_frames_motion_notify_event): also update prelit_control
	while clicking a button
2003-05-16 23:09:49 +00:00
Havoc Pennington
4b02b0ddf1 fill in window->desc sooner since we use it sooner now.
2003-05-16  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): fill in window->desc sooner
	since we use it sooner now.

	* src/display.c (meta_display_open): init
	display->grab_update_alarm

	* src/window.c (meta_window_new): initialize the always_sticky
	field
	(meta_window_new): initialize the update_icon_queued field

        Patch from Julien Olivier bug #92335 for converting "show desktop
	mode" to "all windows are minimized" when you open a new window,
	instead of just mapping all the windows again.

	* src/window.c (meta_window_activate): minimize all windows before
	coming out of show desktop mode.
	(meta_window_unminimize): don't toggle show desktop mode here

	* src/screen.c (meta_screen_minimize_all_except): new function
2003-05-16 21:59:08 +00:00
Telsa Gwynne
1ac3f938de Welsh translation from Dafydd Harries. 2003-05-16 15:38:29 +00:00
Pablo Gonzalo del Campo
b422d86256 Updated Spanish translation.
2003-05-16  Pablo Gonzalo del Campo <pablodc@bigfoot.com>

	* es.po: Updated Spanish translation.
2003-05-16 12:24:09 +00:00
Duarte Loreto
8ac4e04e12 Updated Portuguese translation.
2003-05-12  Duarte Loreto <happyguy_pt@hotmail.com>

        * pt.po: Updated Portuguese translation.
2003-05-12 23:49:34 +00:00
KAMAGASAKO Masatoshi
d05cfba523 Updated Japanese translation.
2003-05-10  KAMAGASAKO Masatoshi  <emerald@gnome.gr.jp>

	* ja.po: Updated Japanese translation.
2003-05-10 06:02:41 +00:00
KAMAGASAKO Masatoshi
6f458fc9d6 Updated Japanese translation.
2003-05-10  KAMAGASAKO Masatoshi  <emerald@gnome.gr.jp>

	* ja.po: Updated Japanese translation.
2003-05-10 05:54:02 +00:00
Jordi Mallach
a0d8c3c703 Updated Catalan translation. 2003-05-10 00:11:31 +00:00
Evandro Fernandes Giovanini
11ee26bb65 Updated Brazilian Portuguese translation.
2003-05-09  Evandro Fernandes Giovanini <evandrofg@ig.com.br>

        * pt_BR.po: Updated Brazilian Portuguese translation.
2003-05-10 00:03:07 +00:00
Christian Rose
96e20f83bb Updated Swedish translation.
2003-05-08  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2003-05-07 23:04:21 +00:00
Changwoo Ryu
e841a492c8 Updated Korean translation.
2003-05-08  Changwoo Ryu  <cwryu@debian.org>

	* ko.po: Updated Korean translation.
2003-05-07 17:35:41 +00:00
Danilo Šegan
d93b0d319c Added "sr" and "sr@Latn" to ALL_LINGUAS.
2003-05-05  Danilo Šegan  <dsegan@gmx.net>

	* configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.

	* po/sr.po, po/sr@Latn.po: Added Serbian translation by
	http://Prevod.org/.
2003-05-06 02:17:30 +00:00
Havoc Pennington
a7c344bbc5 when moving window to another workspace, don't switch to that workspace.
2003-05-03  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (handle_move_to_workspace): when moving
	window to another workspace, don't switch to that workspace.

	* src/window.c (menu_callback): when moving window to another
	workspace, don't switch to that workspace.
2003-05-03 18:14:17 +00:00
Havoc Pennington
f64a231620 2.5.1
2003-05-03  Havoc Pennington  <hp@pobox.com>

	* configure.in: 2.5.1

	* NEWS: update
2003-05-03 16:37:24 +00:00
Rob Adams
a8f9e2e919 Don't apply onscreen constraints to full screen windows. Fix for #110048
2003-05-01  Rob Adams  <robadams@ucla.edu>

	* src/constraints.c (constraint_onscreen_applies_func): Don't
	apply onscreen constraints to full screen windows.  Fix for
	#110048
2003-05-02 07:32:02 +00:00
Havoc Pennington
9569096991 include Xlib.h before XKBlib.h which is required on Solaris. #111877 from
2003-04-29  Havoc Pennington  <hp@redhat.com>

	* src/bell.h: include Xlib.h before XKBlib.h which is required on
	Solaris. #111877 from Peter O'Shea
2003-04-29 22:07:47 +00:00
Miloslav Trmac
2722c277ee Update Czech translation 2003-04-29 18:04:55 +00:00
Keith Packard
2eec8daff5 Initialize size_hints on window creation using code shared with size_hints property reload 2003-04-26 17:40:32 +00:00
Havoc Pennington
75fa56391d support diagonal keypad keybindings, from Dafydd Harries
2003-04-23  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (process_keyboard_move_grab): support
	diagonal keypad keybindings, from Dafydd Harries
2003-04-25 03:32:41 +00:00
Havoc Pennington
ec9cf27a81 purge HAVE_GTK_MULTIHEAD from the source code, not just from configure.in.
2003-04-21  Havoc Pennington  <hp@redhat.com>

	* purge HAVE_GTK_MULTIHEAD from the source code, not just from
	configure.in. Yes I am a loser.
2003-04-21 23:37:42 +00:00
Masahiro Sakai
0996da5e8e call AC_LIBTOOL_WIN32_DLL.
* configure.in: call AC_LIBTOOL_WIN32_DLL.

* src/Makefile.am: add -no-undefined to libmetacity_private_la_LDFLAGS
and write dependency libraries in libmetacity_private_la_LIBADD.
2003-04-19 07:19:04 +00:00
Dmitry Mastrukov
a8708e1c55 ru.po: Updated Russian translation from Russian team <gnome-cyr@gnome.org>. 2003-04-15 04:16:46 +00:00
Rob Adams
7c5e40e0ea cascade on xinerama with pointer instead of on first xinerama.
2003-04-06  Rob Adams  <robadams@ucla.edu>

	* src/place.c (find_next_cascade): cascade on xinerama with
	pointer instead of on first xinerama.
2003-04-07 03:33:45 +00:00
Rob Adams
e1d2b95459 Fix typo in ChangeLog entry.
2003-04-05  Rob Adams <robadams@ucla.edu>

	Fix typo in ChangeLog entry.
2003-04-06 05:59:25 +00:00
Rob Adams
9bd17f4fae Update placement policy for screen with multiple xineramas. Windows will
2003-04-05  Rob Adams  <robadams@ucla.edu>

	Update placement policy for screen with multiple xineramas.
	Windows will be placed preferentially on the xinerama with the
	pointer, and progressively further away as needed to find a place
	where the window does not overlap other windows.

	* src/place.c (rect_fits_in_work_area): function
	fit_rect_in_xinerama greatly simplified to work with new placement
	policy.
	(find_first_fit): implement new first first placement scheme

	* src/screen.c (meta_screen_get_xinerama_neighbor): look for an
	xinerama in the xinerama list that is adjacent to the specified
	xinerama.
	(meta_screen_get_natural_xinerama_list): return a list of
	xineramas in the order to be preferred by the placement algorithm
	as determined by the current location of the pointer.

	* src/screen.h: add function prototypes and an enum used by
	meta_screen_get_xinerama_neighbor.
2003-04-06 05:57:36 +00:00
Rob Adams
40ec58787f Fix a minor off-by-one error. See #110079.
2003-04-05  Rob Adams  <robadams@ucla.edu>

	* src/place.c (center_tile_rect_in_area):  Fix a minor off-by-one
	error.  See #110079.
2003-04-06 01:22:56 +00:00
Christophe Merlet
304fae9369 Updated French translation. 2003-04-03 21:15:09 +00:00
Rob Adams
72a7f57e5d When passing frame geometry to meta_window_constrain, send null if no
2003-03-30  Rob Adams  <robadams@ucla.edu>

	* src/window.c (meta_window_move_resize_internal): When passing
	frame geometry to meta_window_constrain, send null if no frame.
	Possible fix for #109039.
2003-03-30 10:52:07 +00:00
Havoc Pennington
0fee2ac499 add --noframes option for testing, showing how broken we currently are.
2003-03-29  Havoc Pennington  <hp@pobox.com>

	* src/wm-tester/test-gravity.c (main): add --noframes option for
	testing, showing how broken we currently are.
2003-03-29 20:04:19 +00:00
Soeren Sandmann
708a86cfee Only cap refresh rate when not using SYNC. Remove bogus
Fri Mar 28 14:13:37 2003  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/window.c (update_resize): Only cap refresh rate when not
	using SYNC. Remove bogus update-if-we-moved-more-than-a-delta.

	* src/window.c (update_move): Don't cap refresh rate during
	moves. Remove bogus update-if-we-moved-more-than-a-delta.
2003-03-28 13:11:24 +00:00
Havoc Pennington
04fcad7c13 2.5.0 2003-03-27 02:27:40 +00:00
Christophe Merlet
ebbc4c499b Updated French translation. 2003-03-27 00:30:14 +00:00
Soeren Sandmann
3c8b051e31 just return if we are not verbose.
Sun Mar 23 23:04:06 2003  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/display.c (meta_spew_event): just return if we are not
	verbose.
2003-03-23 21:54:48 +00:00
Havoc Pennington
d34e54785d Should fix #108108, #106217, tracked down by Owen Taylor and Frederic
2003-03-11  Havoc Pennington  <hp@pobox.com>

	Should fix #108108, #106217, tracked down by Owen Taylor and
	Frederic Crozat

	* src/window.c (meta_window_foreach_transient): change
	MetaWindowForeachFunc to return a boolean for whether to continue
	(meta_window_foreach_ancestor): new function
	(window_should_be_showing): use meta_window_foreach_ancestor
	(unminimize_window_and_all_transient_parents): ditto
	(update_sm_hints): ditto
	(meta_window_is_ancestor_of_transient): ditto

	* src/stack.c (get_maximum_layer_of_ancestor): use
	meta_window_foreach_ancestor
2003-03-17 06:36:39 +00:00
Rob Adams
51e74d4027 Free old window menu if it already exists so we don't end up with more
2003-03-16  Rob Adams <robadams@ucla.edu>

	* window.c (meta_window_show_menu): Free old window menu if it
	already exists so we don't end up with more than one.  Fix for
	#108392.
2003-03-17 01:19:07 +00:00
Rob Adams
2d662f67a5 Don't try to force a window onscreen by more than its width. Fix for
2003-03-14  Rob Adams <robadams@ucla.edu>

	* contraints.c (get_outermost_screen_positions): Don't try to
	force a window onscreen by more than its width.  Fix for #94815.
2003-03-16 00:13:58 +00:00
Rob Adams
67cbbeb6c1 Make it so that the alt-tabbing won't try to go to a minimized window by
2003-03-13  Rob Adams <robadams@ucla.edu>

        Make it so that the alt-tabbing won't try to go to a minimized
	window by default.  Fix for #107071.

	* display.c (meta_display_get_tab_list): use a GList instead of a
	GSList
	(meta_display_get_tab_next): use meta_display_get_tab_list to
	decide what the next/previous tab window should be.

	* display.h (meta_display_get_tab_list): update function prototype
	to return GList instead of GSList.

	* screen.c (meta_screen_ensure_tab_popup): update function to deal
	with GList returned by meta_display_get_tab_list instead of GSList.
2003-03-15 02:16:21 +00:00
Rob Adams
cc7493cac9 resolve a merge conflict 2003-03-15 02:12:02 +00:00
Christian Rose
be96be95f6 Added "ml" to ALL_LINGUAS. Added Malayalam translation by FSF-India
2003-03-13  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "ml" to ALL_LINGUAS.
	* po/ml.po: Added Malayalam translation by
	FSF-India <locale@gnu.org.in>.
2003-03-13 13:44:09 +00:00
Paul Duffy
6b144cd2eb Added "ga" to ALL_LINGUAS line in configure.in 2003-03-12 14:28:44 +00:00
Paul Duffy
38412b4460 Added Irish Translation (ga.po) 2003-03-12 14:27:26 +00:00
Rob Adams
b8287d3aca include left frame geometry when maximizing or fullscreening windows. Fix
2003-03-11  Rob Adams <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): include left frame
	geometry when maximizing or fullscreening windows.  Fix for
	#108127.
2003-03-12 05:08:29 +00:00
Rob Adams
5eb4eea57e include left frame geometry when maximizing or fullscreening windows. Fix
2003-03-11  Rob Adams <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): include left frame
	geometry when maximizing or fullscreening windows.  Fix for
	#108127.
2003-03-12 03:56:01 +00:00
Roozbeh Pournader
af3b5b77b1 Added "fa" to ALL_LINGUAS. Added Persian translation.
2003-03-10  Roozbeh Pournader  <roozbeh@sharif.edu>

	* configure.in: Added "fa" to ALL_LINGUAS.
	* po/fa.po: Added Persian translation.
2003-03-10 08:32:03 +00:00
Havoc Pennington
5f75334d57 Switch over to new constraints code, unquestionably introduces some bugs,
2003-02-27  Havoc Pennington  <hp@redhat.com>

	Switch over to new constraints code, unquestionably introduces
	some bugs, but should get us on the right path.

	* src/window.c (meta_window_get_work_area_all_xineramas): create
	this function again as it turned out to be legitimate for window
	position constraint
	(adjust_for_gravity): use the width/height from the configure
	request to compute the requested move
	(meta_window_move_resize_internal): use meta_window_constrain
	(update_size_hints): clamp max size to MAXSHORT to avoid worrying
	about overflow stuff

	* src/constraints.c (meta_window_constrain): don't base placement
	on uninitialized variables, general hacking

	* src/Makefile.am (metacity_SOURCES): add constraints.c,
	constraints.h

	* src/constraints.c (meta_window_constrain): update the
	cut-and-paste aspect ratio code to have latest bugfixes
2003-03-08 23:43:17 +00:00
Rob Adams
4481be72d1 Check that window min and max size hints are at least 1. Fix for #107110.
2003-03-08  Rob Adams <robadams@ucla.edu>

	* src/window-props.c (reload_normal_hints):  Check that window min
	and max size hints are at least 1.  Fix for #107110.
2003-03-08 18:15:22 +00:00
Havoc Pennington
c595a7ac0f fix changelog 2003-02-28 01:26:37 +00:00
Havoc Pennington
fa3de81741 add more debug spew about conditional build stuff (main): panic to
2003-02-27  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): add more debug spew about conditional
	build stuff
	(main): panic to "Simple" theme

	* src/window.c, src/window-props.c: move WM_NORMAL_HINTS and
	WM_PROTOCOLS to new property system; don't queue move resize on
	updating WM_PROTOCOLS; move WM_HINTS to new property system;
	reload icon in an idle handler.

	Changes made on plane from FOSDEM, syncing from laptop.
2003-02-28 01:24:44 +00:00
Mark McLoughlin
6094763def Give me back my keys.
2003-02-28  Mark McLoughlin  <mark@skynet.ie>

        Give me back my keys.

        * src/keybindings.c: (meta_window_grab_keys): don't
        grab keys on DOCK windows.

        * src/window.c: (recalc_window_type): re-grab the
        keys.
2003-02-27 22:44:36 +00:00
Dmitry Mastrukov
4e96dd7ea6 configure.in: Added Belarusian to ALL_LINGUAS. 2003-02-26 05:14:43 +00:00
Dmitry Mastrukov
6e6e85632a be.po: Added Belarusian translation from Belarusian team <i18n@infonet.by> 2003-02-26 05:13:07 +00:00
Mark McLoughlin
6af9a11361 release the keyboard grab before sending the action message to the panel.
2003-02-26  Mark McLoughlin  <mark@skynet.ie>

        * src/keybindings.c: (handle_panel_keybinding): release
        the keyboard grab before sending the action message to
        the panel.
2003-02-26 01:55:25 +00:00
Pablo Gonzalo del Campo
8377c7776c Fixed a translation string to match with libwnck.
2003-02-25  Pablo Gonzalo del Campo <pablodc@bigfoot.com>

	* es.po: Fixed a translation string to match with libwnck.
2003-02-25 18:04:00 +00:00
Mark McLoughlin
73cce3b174 Take control of the panel's global keybindings. The screenshot utility is
2003-02-24  Mark McLoughlin  <mark@skynet.ie>

        Take control of the panel's global keybindings. The
        screenshot utility is hooked up using a special case
        run_command and the menu and run dialog bindings are
        done using the _GNOME_PANEL_ACTION ClientMessage
        protocol.

        * src/display.[ch]: (meta_display_open): add some atoms.

        * src/keybindings.c:
        (handle_panel_keybinding): impl to handle a keybinding
        by sending an action message to the panel.

        * src/metacity.schemas.in: add schemas for the panel and
        screenshot keybindings and the screenshot commands.

        * src/prefs.[ch]: (update_command),
        (meta_prefs_get_gconf_key_for_command): impl special case
        handling for the screenshot commands. They are stored at
        the the end of the commands array but have named keys.
2003-02-24 02:16:09 +00:00
Rob Adams
947adb6d07 change toggle_maximized to toggle_maximize and toggle_shaded to
2003-02-22  Rob Adams <robadams@ucla.edu>

	* *.po: change toggle_maximized to toggle_maximize and
	toggle_shaded to toggle_shade in action_double_click_titlebar long
	description to match the values used by metacity
2003-02-23 19:24:56 +00:00
Rob Adams
d0f1f084e8 change toggle_maximized to toggle_maximize and toggle_shaded to
2003-02-22  Rob Adams <robadams@ucla.edu>

	* src/metacity.schemas.in: change toggle_maximized to
	toggle_maximize and toggle_shaded to toggle_shade in
	action_double_click_titlebar long description to match the values
	used by metacity

	* po/*.po: change toggle_maximized to toggle_maximize and
	toggle_shaded to toggle_shade in action_double_click_titlebar long
	description to match the values used by metacity
2003-02-23 19:21:10 +00:00
Havoc Pennington
c27d89218c Patch from Rob Adams addresses #95014 (placement issues), makes first fit
2003-02-23  Havoc Pennington  <hp@pobox.com>

	Patch from Rob Adams addresses #95014 (placement issues),
	makes first fit algorithm "center tile", adds most code
	for per-xinerama workspaces (#86682) but disables it for now.

	* src/workspace.c (meta_workspace_get_work_area_for_xinerama)
	(meta_workspace_get_work_area_all_xineramas): new xinerama
	functions, maintain workspace->work_areas with a different
	work area for each xinerama. However for now all the work
	areas are the same, because haven't quite figured out how
	_NET_WM_STRUT is supposed to work

	* src/window.c: adapt to new meta_window_* xinerama APIs
	(meta_window_get_work_area_current_xinerama): new xinerama
	API
	(meta_window_get_work_area_for_xinerama): new xinerama API
	(constrain_position): be a bit more clever about which xinerama's
	work area we choose to use.

	* src/stack.c: adapt to new Xinerama API

	* src/screen.c (reload_xinerama_infos): invalidate all work areas
	(meta_screen_get_xinerama_for_rect): new function
	(meta_screen_window_intersects_xinerama): new function

	* src/place.c (find_first_fit): change to use
	"center tiling" (center a screen full of tiled windows,
	rather than aligning them top left). Adapt to new
	xinerama functions.
2003-02-23 17:09:46 +00:00
Rob Adams
15c5ddbec4 change toggle_maximized to toggle_maximize and toggle_shaded to
2003-02-22  Rob Adams <robadams@ucla.edu>

	* src/metacity.schemas.in: change toggle_maximized to
	toggle_maximize and toggle_shaded to toggle_shade in
	action_double_click_titlebar long description to match the values
	used by metacity

	* po/*.po: change toggle_maximized to toggle_maximize and
	toggle_shaded to toggle_shade in action_double_click_titlebar long
	description to match the values used by metacity
2003-02-23 05:18:37 +00:00
Rob Adams
546679cbd1 modify comment to explain why the icon window element is set to None. Fix
2003-02-22  Rob Adams <robadams@ucla.edu>

	* window.c (set_wm_state): modify comment to explain why the icon
	window element is set to None.  Fix for #97357 thanks to Gregory
	Merchan.
2003-02-23 04:56:11 +00:00
Havoc Pennington
b54c422b93 fix a typo, pointed out by Steve Kemp
2003-02-22  Havoc Pennington  <hp@pobox.com>

        * README: fix a typo, pointed out by Steve Kemp
2003-02-23 03:30:48 +00:00
Havoc Pennington
5049fdc13a add system modal dialogs bug to rationales.txt 2003-02-22 22:51:30 +00:00
Havoc Pennington
d8bb7c8ae9 add "configure alt+click" etc. bug 2003-02-22 22:47:15 +00:00
Havoc Pennington
61d5423b5d change max workspaces to 36 #81855
2003-02-22  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (MAX_REASONABLE_WORKSPACES): change max workspaces
	to 36 #81855
2003-02-22 22:43:13 +00:00
Havoc Pennington
d85012ecfd fix to unfocus window only when you leave the window frame, not when you
2003-02-22  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): fix to unfocus window only when
	you leave the window frame, not when you leave the window itself,
	unless window has no frame. #100248 fix from Orien Vandenbergh
2003-02-22 22:19:19 +00:00
Havoc Pennington
fb9ad1eb13 when tabbing backward, we are still tabbing *from* the most recently used
2003-02-22  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_get_tab_next): when tabbing
	backward, we are still tabbing *from* the most recently used
	window, not from the least recently used window.

	* src/keybindings.c (struct _MetaKeyBinding): make keycode
	unsigned to match XEvent

	Patch for #84999 based on patch from Mark McLoughlin

	* src/prefs.c: add an add_shift field to MetaKeyPref to
	add shift when grabbing the given keybinding.

	* src/keybindings.c (rebuild_screen_binding_table)
	(rebuild_window_binding_table): refactor to share code,
	and honor add_shift field in MetaKeyPref
2003-02-22 20:31:51 +00:00
Havoc Pennington
8764b89942 add window size/position popup 2003-02-21 20:21:38 +00:00
Havoc Pennington
48bc82e82f don't create constraints between windows on different screens, #106086
2003-02-20  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (create_constraints): don't create constraints
	between windows on different screens, #106086 tracked down
	by Arvind
2003-02-21 17:51:48 +00:00
Arvind Samptur
e8d63890fc add bug to keep dialogs above entire app group. 2003-02-17 06:12:02 +00:00
Arvind Samptur
6ed08019c2 A small writeup on how to use dialogs in metacity. Approved by Havoc. 2003-02-17 05:00:40 +00:00
Arvind Samptur
00d6f549f9 : Update the workspace names from gconf and set the NET_DESKTOP_NAMES
2003-02-14  Arvind Samptur <arvind.samptur@wipro.com>
        * src/screen.c: (meta_screen_new) : Update the workspace
        names from gconf and set the NET_DESKTOP_NAMES atom.
        Renamed update_workspace_names() to set_workspace_names().
        Fixes #105498
2003-02-14 07:03:46 +00:00
Havoc Pennington
02a491c1bc require GTK+ 2.2.0
2003-02-13  Havoc Pennington  <hp@redhat.com>

	* configure.in: require GTK+ 2.2.0

	* src/ui.c (meta_ui_init): remove hackaround for Pango X core
	fonts backend
2003-02-13 23:16:49 +00:00
Christian Rose
ed25155fc1 Some fixes for problems catched in translation review.
2003-02-12  Christian Rose  <menthos@menthos.com>

	* sv.po: Some fixes for problems catched in translation review.
2003-02-11 23:24:07 +00:00
Fatih Demir
e65a70ded9 Heh 2003-02-10 23:36:34 +00:00
Fatih Demir
3b49b81ff5 Update. branch 2003-02-09 17:01:12 +00:00
Fatih Demir
bdcc6cb20d Updated 2003-02-08 21:37:11 +00:00
Kwok-Koon Cheung
e616f930d3 add missing ALL_LINGUAS 2003-02-05 15:11:46 +00:00
Abel Cheung
536d51183c Fix header. Fix positional parameters.
2003-02-05  Abel Cheung  <maddog@linux.org.hk>

	* en_GB.po: Fix header.
	* ko.po, pt_BR.po: Fix positional parameters.
2003-02-05 15:10:26 +00:00
Abel Cheung
6a3c1fbe57 Updated traditional Chinese translation.
2003-02-05  Abel Cheung  <maddog@linux.org.hk>

	* zh_TW.po: Updated traditional Chinese translation.
2003-02-05 15:06:40 +00:00
Yuri Syrota
2cca0f0eac Updated Ukrainian translation 2003-02-05 08:09:20 +00:00
Akira TAGOH
cdb4e2541c fix a typo and missing option. (#105186)
2003-02-05  Akira TAGOH  <tagoh@gnome.gr.jp>

	* src/main.c (usage): fix a typo and missing option. (#105186)
2003-02-05 04:56:19 +00:00
Havoc Pennington
9b03b75aaf nuke subdir ChangeLog, there can be only one true ChangeLog.
2003-02-04  Havoc Pennington  <hp@redhat.com>

	* src/themes/Simple/ChangeLog: nuke subdir ChangeLog,
	there can be only one true ChangeLog.

2003-01-30  Havoc Pennington  <hp@redhat.com>

	* src/keybindings.c (process_event): match handlers to key events
	using key codes, not key syms
2003-02-05 03:58:17 +00:00
Daniel Yacob
f5072b7f3a Updating Amharic translation. 2003-02-03 17:40:01 +00:00
Jonathan Blandford
b60bb724aa add Simple to the list of themes.
Thu Jan 30 22:55:16 2003  Jonathan Blandford  <jrb@redhat.com>

	* src/themes/Makefile.am (THEMES): add Simple to the list of
	themes.

	* src/metacity.schemas.in: change default theme to Simple.
2003-01-31 03:57:01 +00:00
Seth Nickell
7d7f8aab93 Change name in theme file to "Simple".
2003-01-30  Seth Nickell  <snickell@stanford.edu>

	* metacity-theme-1.xml:

	Change name in theme file to "Simple".
2003-01-31 03:44:05 +00:00
Marius Andreiana
3b133195fd updated ( thanks to Mugurel Tudor )
2003-01-30  Marius Andreiana <marius galuna.ro>

	* ro.po: updated ( thanks to Mugurel Tudor )
2003-01-30 12:38:14 +00:00
Havoc Pennington
18990530b0 don't create workspaces menu items if only 1 workspace. Fix for #101952
2003-01-29  Havoc Pennington  <hp@pobox.com>

	* src/menu.c (meta_window_menu_new): don't create workspaces
	menu items if only 1 workspace. Fix for #101952 from
	Orien Vandenbergh
2003-01-29 05:22:19 +00:00
Bill Haneman
b424364710 Reinstated visual-bell patch, fix for bug 99886. 2003-01-28 15:07:43 +00:00
Christophe Merlet
4fb05e54ab Updated French translation. 2003-01-25 22:04:53 +00:00
Christophe Merlet
3ee5ad8b12 Updated french translation. 2003-01-25 21:57:01 +00:00
Havoc Pennington
b73ea5eb0a When checking if a window is fullscreen size, only require it to be at the
2003-01-25  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (window_is_fullscreen_size): When checking if a
	window is fullscreen size, only require it to be at the origin
	of the work area, not at the origin of the screen/xinerama.
	Still require it to be full screen in width x height.
	May fix xine in the case where the user has a top panel.

	* src/window.c (constrain_position): restore the ability for
	undecorated windows to position themselves overlapping the top
	panel, but don't let decorated windows do so. Oh the hacks...
2003-01-25 16:58:43 +00:00
Kjartan Maraas
e710d9f1b8 Updated Norwegian (bokmal) translation.
2003-01-25  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Updated Norwegian (bokmal) translation.
2003-01-25 08:56:51 +00:00
He Qiangqiang
ae07c8677d Updated Simplified Chinese translation by Xiong Jiang
2003-01-23  He Qiangqiang  <carton@linux.net.cn>

        * zh_CN.po: Updated Simplified Chinese translation by
        Xiong Jiang <jxiong@offtopic.org>.
2003-01-23 15:05:31 +00:00
Dmitry Mastrukov
2a24562f45 ru.po: Updated Russian translation from Russian team <gnome-cyr@gnome.org>. 2003-01-23 09:32:32 +00:00
Abel Cheung
b7d27d9114 Updated traditional Chinese translation.
2003-01-23  Abel Cheung  <maddog@linux.org.hk>

	* zh_TW.po: Updated traditional Chinese translation.
2003-01-23 03:53:18 +00:00
Havoc Pennington
5169a06dd0 small code snippet to fix startup sequences that set legacy class/name
2003-01-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_apply_startup_properties): small code
	snippet to fix startup sequences that set legacy class/name
2003-01-23 01:53:18 +00:00
Havoc Pennington
e868a001f9 do not read sizeof(long) off the X connection. The X protocol does not
2003-01-22  Havoc Pennington  <hp@redhat.com>

	* src/async-getprop.c (async_get_property_handler): do not read
	sizeof(long) off the X connection. The X protocol does not vary
	by architecture. Fixes longstanding hang on all 64-bit platforms.
2003-01-22 23:13:24 +00:00
Havoc Pennington
a8526454b0 fix conditional so we get metacity-properties.c in the distribution
2003-01-22  Havoc Pennington  <hp@redhat.com>

	* src/tools/Makefile.am: fix conditional so we get
	metacity-properties.c in the distribution #103071
2003-01-22 19:40:04 +00:00
Havoc Pennington
fabc5507f3 be robust against the panel's lame "set a negative number for struts"
2003-01-22  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_struts): be robust against the panel's
	lame "set a negative number for struts" thing, even though
	we'll also fix the panel.
2003-01-22 05:17:29 +00:00
Havoc Pennington
82bd20911c Fix for the "mangles focus window when switching workspaces and using
2003-01-21  Havoc Pennington  <hp@pobox.com>

        Fix for the "mangles focus window when switching workspaces
	and using mouse focus" bug

	* src/stack.c (meta_stack_get_default_focus_window_at_point): new
	function

	* src/screen.c (meta_screen_focus_mouse_window): new function
	(meta_screen_focus_default_window): new function

	* src/workspace.c (meta_workspace_activate): use the
	new meta_screen_focus_default_window()

2003-01-17  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_handle_mouse_grab_op_event): fix event
	compression code to use GDK algorithm suggested by Owen, should be
	more efficient.
2003-01-22 04:54:04 +00:00
Christian Rose
95d747269b Added "mn" to ALL_LINGUAS. Added Mongolian translation by Ochirbat Batzaya
2003-01-22  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "mn" to ALL_LINGUAS.
	* po/mn.po: Added Mongolian translation by
	Ochirbat Batzaya <buuvei@yahoo.com>.
2003-01-22 02:36:57 +00:00
Havoc Pennington
d02dbd62e9 only hop window to the current workspace if the window was previously
2003-01-21  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): only hop window to the current
	workspace if the window was previously minimized. Should keep
	mozilla from popping windows over to your current workspace.

2003-01-20  Havoc Pennington  <hp@redhat.com>

        Attempt to fix #85916

	* src/keybindings.c (primary_modifier_still_pressed): new function
	(handle_workspace_switch): handle modifier release prior to
	getting the grab
	(do_choose_window): handle modifier release prior to getting the
	grab

	* src/keybindings.c (grab_keyboard): properly return failure
	if the GrabKeyboard doesn't work
2003-01-21 22:40:25 +00:00
Dmitry Mastrukov
bcb9de9198 ru.po: Updated Russian translation from Russian team <gnome-cyr@gnome.org>. 2003-01-21 14:24:58 +00:00
Yuri Syrota
3558657e53 Updated Ukrainian translation 2003-01-21 12:03:35 +00:00
Kjartan Maraas
1187edeadb Updated Norwegian (bokmal) translation.
2003-01-21  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Updated Norwegian (bokmal) translation.
2003-01-21 10:44:02 +00:00
Christian Neumair
0c684c6f35 Updated German translation. 2003-01-20 16:04:12 +00:00
Dmitry Mastrukov
c1b863ee75 ru.po: Updated Russian translation from Russian team <gnome-cyr@gnome.org>. 2003-01-20 11:32:45 +00:00
Dmitry Mastrukov
8922b0ecc6 ru.po: Updated Russian translation from Russian team <gnome-cyr@gnome.org>. 2003-01-20 10:05:14 +00:00
Dmitry Mastrukov
6cd916ea39 ru.po: Updated Russian translation from Russian team <gnome-cyr@gnome.org>. 2003-01-20 09:18:01 +00:00
Havoc Pennington
4b18f64914 add note about how this is the unstable branch, set version to 2.5.0
2003-01-19  Havoc Pennington  <hp@pobox.com>

	* configure.in: add note about how this is the unstable branch,
	set version to 2.5.0
2003-01-19 23:07:30 +00:00
Abel Cheung
1e6a8a31d1 Updated traditional Chinese translation, and replaced copyright symbol
2003-01-19  Abel Cheung  <maddog@linux.org.hk>

	* zh_TW.po: Updated traditional Chinese translation, and replaced
	  copyright symbol with correct one.
2003-01-19 21:21:34 +00:00
Andraz Tori
9e7a26500c Updated Slovenian translation 2003-01-19 13:43:05 +00:00
Andraz Tori
5d862ac29b Added sl to ALL_LINGUAS 2003-01-19 13:42:41 +00:00
Gustavo Noronha Silva
25b9a9e37d translation update 2003-01-17 04:00:55 +00:00
Seth Nickell
da7918554e First checkin. 2003-01-17 00:19:24 +00:00
Seth Nickell
e45eda148b Initial revision 2003-01-17 00:19:24 +00:00
Vincent van Adrighem
b24308eab1 Dutch translation updated by Tino Meinen.
2003-01-16  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>

	* nl.po: Dutch translation updated by Tino Meinen.
2003-01-16 22:52:21 +00:00
Vincent van Adrighem
366399eb0c Dutch translation updated by Tino Meinen.
2003-01-16  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>

	* nl.po: Dutch translation updated by Tino Meinen.
2003-01-16 17:16:44 +00:00
Havoc Pennington
25615f929e recalc_window_features() after making these changes, should fix #103317
2003-01-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_maximize, meta_window_unmaximize)
	(meta_window_make_fullscreen, meta_window_unmake_fullscreen):
	recalc_window_features() after making these changes, should fix
	#103317
2003-01-16 03:20:34 +00:00
Rob Adams
667a056066 Increase the number of run_command bindings in screen_bindings from 12 to
2003-01-14  Rob Adams <robadams@ucla.edu>

	* src/prefs.c: Increase the number of run_command bindings in
	screen_bindings from 12 to 32.

	* src/prefs.h: Increase the number of META_KEYBINDING_COMMAND_N
	macros from 12 to 32.

	* src/keybindings.c: Increase the number of run_command handlers
	from 12 to 32.
2003-01-15 02:39:07 +00:00
Yanko Kaneti
c2fbb37c8c Full Bulgarian translation by Alexander Shopov <al_shopov@yahoo.com>.
2003-01-14  Yanko Kaneti <yaneti@declera.com>

	* bg.po: Full Bulgarian translation by
	Alexander Shopov <al_shopov@yahoo.com>.
2003-01-15 00:18:41 +00:00
Daniel Yacob
45269e0e2d Updating Amharic translation. 2003-01-14 17:33:31 +00:00
Havoc Pennington
8f7eda43a8 implement compression of motion events (drop all but the most recently
2003-01-11  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_handle_mouse_grab_op_event): implement
	compression of motion events (drop all but the most recently
	received), guessing at fixes for #103009
2003-01-11 19:32:12 +00:00
Havoc Pennington
339a86150b add ability to --disable-shape
2003-01-11  Havoc Pennington  <hp@pobox.com>

	* configure.in: add ability to --disable-shape
2003-01-11 18:09:12 +00:00
Kjartan Maraas
374e5d400d Updated Norwegian (bokmal) translation.
2003-01-11  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Updated Norwegian (bokmal) translation.
2003-01-11 15:51:52 +00:00
Akira TAGOH
0e5727eeb3 fix the behavior of --enable-*.
2003-01-11  Akira TAGOH  <tagoh@gnome.gr.jp>

	* configure.in: fix the behavior of --enable-*.
2003-01-11 09:32:31 +00:00
Havoc Pennington
9073724c2b revert that change, I got the wrong .desktop file. doh.
2003-01-10  Havoc Pennington  <hp@redhat.com>

	* src/Makefile.am (desktopfiles_in_files): revert that change, I
	got the wrong .desktop file. doh.
2003-01-10 20:45:34 +00:00
Havoc Pennington
92c8ba0497 don't install .desktop file for properties dialog if we aren't
2003-01-10  Havoc Pennington  <hp@redhat.com>

	* src/Makefile.am (desktopfiles_DATA): don't install .desktop file
	for properties dialog if we aren't building/installing the
	properties dialog.
2003-01-10 20:43:47 +00:00
Vincent van Adrighem
efb26cb769 Dutch translation updated by Tino Meinen.
2003-01-10  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>

	* nl.po: Dutch translation updated by Tino Meinen.
2003-01-10 16:18:19 +00:00
Andras Timar
050e55c9d7 Updated Hungarian translation.
2003-01-10  Andras Timar  <timar@gnome.hu>

	* hu.po: Updated Hungarian translation.
2003-01-10 13:59:37 +00:00
Yukihiro Nakai
e402f41b33 ja.po: Minor fix. 2003-01-10 05:19:49 +00:00
Havoc Pennington
859c1e752d 2.4.13 2003-01-10 05:02:20 +00:00
James M. Cape
198398ba88 Use a line for the titlebar text bg.
2003-01-09  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Use a line for the titlebar
	text bg.
2003-01-10 02:00:21 +00:00
Havoc Pennington
5d2f307735 argh, we were making all dialogs skip taskbar; when did that get added.
2003-01-09  Havoc Pennington  <hp@redhat.com>

	* src/window.c (recalc_window_features): argh, we were making all
	dialogs skip taskbar; when did that get added.  Fix to match
	libwnck, only skip taskbar when the dialog is transient for some
	other app window.
2003-01-09 23:28:01 +00:00
Havoc Pennington
70bd23278b change Windows+click back to Alt+click, Windows+click just surprised
2003-01-09  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: change Windows+click back to Alt+click,
	Windows+click just surprised everybody and didn't work half the
	time. Maya users can configure it, and GTK DND can change its
	default.
2003-01-09 22:48:07 +00:00
Vincent van Adrighem
76bfdcf038 Dutch translation updated by Tino Meinen.
2003-01-09  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>

	* nl.po: Dutch translation updated by Tino Meinen.
2003-01-09 12:44:17 +00:00
Havoc Pennington
8e14da1759 assign Alt+F12 to shade window, per #102658
2003-01-08  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: assign Alt+F12 to shade window,
	per #102658
2003-01-09 04:50:13 +00:00
Pauli Virtanen
24ecc29f49 Fixed a string that had an invalid printf format.
2003-01-08  Pauli Virtanen  <pauli.virtanen@hut.fi>

	* fi.po: Fixed a string that had an invalid printf format.
2003-01-08 20:55:26 +00:00
Abel Cheung
4a23782f51 Updated traditional Chinese translation.
2003-01-09  Abel Cheung  <maddog@linux.org.hk>

	* zh_TW.po: Updated traditional Chinese translation.
2003-01-08 20:47:44 +00:00
Havoc Pennington
b619f9baa8 fix off-by-one, patch from readams@hmc.edu, #102806
2003-01-07  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (update_num_workspaces): fix off-by-one, patch from
	readams@hmc.edu, #102806
2003-01-08 04:23:18 +00:00
Daniel Yacob
878d6df404 Updated Amharic translation. 2003-01-07 16:09:06 +00:00
Vincent van Adrighem
5e5ebc7914 Dutch translation added by Tino Meinen.
2003-01-06  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>

	* nl.po: Dutch translation added by Tino Meinen.
2003-01-06 11:05:37 +00:00
Arvind Samptur
e2155c8fee don't apply offscreen height difference. This would get the window under
2003-01-06  Arvind Samptur <arvind.samptur@wipro.com>
        * src/window.c: (constrain_position) don't apply
        offscreen height difference. This would get the
        window under the panel on a resize or a move.
        Fixes #102418
2003-01-06 04:40:11 +00:00
Havoc Pennington
036747fba5 invert vertical_workspaces cases (we want to go down each column if it's
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_calc_workspace_layout): invert
	vertical_workspaces cases (we want to go down each column if
	it's vertical, and across each row if horizontal). Patch
	from readams@hmc.edu
2003-01-06 02:59:19 +00:00
Pablo Saratxaga
a8f93c454a updated Vietnamese file,
fixed various erros in Brazilian file,
added missing 'mk' to ALL_LINGUAS
2003-01-05 22:43:41 +00:00
Havoc Pennington
aad72e575d put in the HAVE_GTK_MULTIHEAD conditionals so we build with GTK 2.0
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_apply_shapes): put in the
	HAVE_GTK_MULTIHEAD conditionals so we build with GTK 2.0
2003-01-05 19:15:58 +00:00
Havoc Pennington
b799630ba5 focus new windows even in mouse focus mode, #89981, patch from
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): focus new windows even in
	mouse focus mode, #89981, patch from readams@hmc.edu
2003-01-05 18:39:55 +00:00
Havoc Pennington
90748385c2 redo using new calc_workspace_layout to fix #98302
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_neighbor): redo using new
	calc_workspace_layout to fix #98302

	* src/util.c (topic_name): shorten default prefix

	* src/screen.c (meta_screen_calc_workspace_layout): enhance this
	to handle all the funky layouts and calculate more information
	than before
2003-01-05 18:36:01 +00:00
Pauli Virtanen
1d22cb8518 Added "fi" (Finnish).
2003-01-05  Pauli Virtanen <pauli.virtanen@hut.fi>

	* configure.in (ALL_LINGUAS): Added "fi" (Finnish).
2003-01-05 16:03:10 +00:00
Pauli Virtanen
4832cc6d63 Added Finnish translation.
2003-01-05  Pauli Virtanen <pauli.virtanen@hut.fi>

	* fi.po: Added Finnish translation.
2003-01-05 15:59:59 +00:00
Stanislav Visnovsky
f8226bf1bb Updated Slovak translation.
2003-01-05  Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>

	* sk.po: Updated Slovak translation.
2003-01-05 13:26:31 +00:00
Havoc Pennington
6cfcc01334 handle the client having a shape mask, fixes #101806
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_apply_shapes): handle
	the client having a shape mask, fixes #101806

	* src/core.c (meta_core_get_client_xwindow): new function

	* src/frame.c, src/frame.h: keep a flag for whether we need to
	update the frame shape

	* src/window.c (meta_window_new): select for ShapeNotify

	* src/display.h, src/display.c: actually query the shape
	extension, instead of just using it all over the place.

	* src/prefs.c (update_application_based): don't let people turn on
	application_based, as it just causes funky bugs. We can reenable
	the pref when/if it ever does something useful.
2003-01-05 07:51:02 +00:00
Havoc Pennington
f8b2f6ca5c include the Xrandr header file
2003-01-03  Havoc Pennington  <hp@redhat.com>

	* src/display.c: include the Xrandr header file

	* src/window.c (meta_window_fill_horizontal)
	(meta_window_fill_vertical): maximize to work area, not entire
	screen. doh.
2003-01-03 19:06:53 +00:00
Kjartan Maraas
d9a2207ebe Updated Norwegian (bokmal) translation.
2003-01-03  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Updated Norwegian (bokmal) translation.
2003-01-03 14:53:11 +00:00
Gil Osher
1be097628f *** empty log message *** 2003-01-03 13:59:04 +00:00
Chyla Zbigniew
c51a55b0e5 Updated Polish translation by GNOME PL Team <translators@gnome.pl> 2003-01-02 14:38:16 +00:00
Daniel Yacob
f88852cff6 Updating Amharic translation. 2002-12-30 13:56:14 +00:00
Kostas Papadimas
8d266f5550 Updated the Greek translation 2002-12-29 16:12:07 +00:00
Ole Laursen
b9e86197f2 Updated Danish translation.
2002-12-25  Ole Laursen  <olau@hardworking.dk>

	* da.po: Updated Danish translation.
2002-12-25 17:35:41 +00:00
Ivan Stojmirov
b9e4faa1aa Added Macedonian translation 2002-12-25 11:35:21 +00:00
Kostas Papadimas
625b7a25b0 Updated the Greek translation 2002-12-25 09:54:58 +00:00
Yuri Syrota
0e6b393896 Updated Ukrainian translation 2002-12-24 11:26:22 +00:00
Yuri Syrota
109761e973 Updated Ukrainian translation 2002-12-24 10:11:16 +00:00
Yuri Syrota
fd5557f44c Updated Ukrainian translation 2002-12-24 08:41:31 +00:00
Ross Burton
79d28b4709 DTD fixes 2002-12-23 11:31:24 +00:00
Daniel Yacob
5cf84e6702 Updated Amharic translation. 2002-12-23 03:40:00 +00:00
Peteris Krisjanis
f218216a2c 2002-12-22 Artis Trops <hornet@navigator.lv> * lv.po: Updated Latvian translation. 2002-12-22 18:20:25 +00:00
Daniel Yacob
5f99b61f07 Updated Amharic translation. 2002-12-22 04:42:16 +00:00
Christian Neumair
a5fa06ebb1 Updated German translation. 2002-12-20 20:49:51 +00:00
Miloslav Trmac
a0d3c8e20b Update Czech translation 2002-12-20 12:15:17 +00:00
Havoc Pennington
1ece207400 Reverted visual bell patch, #99886
2002-12-19  Havoc Pennington  <hp@pobox.com>

	* Reverted visual bell patch, #99886
2002-12-19 20:20:59 +00:00
Havoc Pennington
91641c2cf3 select ColormapChangeMask on toplevel windows, maybe a partial fix for
2002-12-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): select ColormapChangeMask
	on toplevel windows, maybe a partial fix for #101478

2002-12-17  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_begin_grab_op): don't use "(null)"
	for null pointers, use "none", so I can distinguish
	glibc-generated (null) which is a bug.
	(key_event_description): ditto
	(meta_display_begin_grab_op): ditto

	* src/window.c (update_sm_hints): ditto

	* src/keybindings.c (reload_modmap): ditto
	(meta_display_process_key_event): ditto
2002-12-19 20:18:54 +00:00
Hasbullah Bin Pit
4045ee474d Updated Malay Translation. pening kepala tengok metacity ni
002-12-19  Hasbullah Bin Pit <sebol@ikhlas.com>

        * ms.po: Updated Malay Translation.
pening kepala tengok metacity ni
2002-12-19 15:52:48 +00:00
Yanko Kaneti
e3b364c055 Added Bulgarian (bg).
2002-12-19  Yanko Kaneti <yaneti@declera.com>

	* configure.in: (ALL_LINGUAS) Added Bulgarian (bg).

po/

	* bg.po (added): Added start of Bulgarian translation by
	Alexander Shopov <al_shopov@yahoo.com>.
2002-12-19 12:50:54 +00:00
Havoc Pennington
89c31c43ca select ColormapChangeMask on toplevel windows, maybe a partial fix for
2002-12-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): select ColormapChangeMask
	on toplevel windows, maybe a partial fix for #101478
2002-12-18 22:16:58 +00:00
Pablo Gonzalo del Campo
0d1e643e1c Updated Spanish translation.
2002-12-18  Pablo Gonzalo del Campo <pablodc@bigfoot.com>

	* es.po: Updated Spanish translation.
2002-12-18 16:28:41 +00:00
Hidetoshi Tajima
f6b4f11ebe added support for border only windows. #100984.
* src/themes/AgingGorilla/metacity-theme-1.xml: added support for
	border only windows. #100984.
2002-12-18 01:51:35 +00:00
Havoc Pennington
908198c25d s/focussed/focused/
2002-12-17  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: s/focussed/focused/
2002-12-17 18:36:24 +00:00
Havoc Pennington
f4cb740aac add a comma to message #101401
2002-12-17  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (validate_or_free_results): add a comma to message #101401
2002-12-17 18:26:08 +00:00
Miloslav Trmac
a2d0235d68 Update Czech translation 2002-12-17 13:36:19 +00:00
Christian Rose
bda692174a Updated Swedish translation.
2002-12-17  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2002-12-17 08:45:14 +00:00
Bill Haneman
e7e47a8b85 Added visual bell feature, fix for 99886. 2002-12-17 01:08:29 +00:00
Christian Rose
32a8bf50b7 Updated Swedish translation.
2002-12-17  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2002-12-17 01:04:18 +00:00
Christian Neumair
b0818f97f2 Updated German translation. 2002-12-16 23:07:10 +00:00
Havoc Pennington
ea45e43082 argh, screwed that up. get WM_NAME as VALUE_TEXT_PROPERTY #101383
2002-12-16  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c (init_wm_name): argh, screwed that up. get
	WM_NAME as VALUE_TEXT_PROPERTY #101383
2002-12-16 22:09:05 +00:00
Havoc Pennington
1ad94dec1c use META_PROP_VALUE_STRING_AS_UTF8 so we convert old Latin-1 WM_NAME to
2002-12-16  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c: use META_PROP_VALUE_STRING_AS_UTF8 so
	we convert old Latin-1 WM_NAME to UTF-8

	* src/xprops.h (enum): add META_PROP_VALUE_STRING_AS_UTF8 to get a
	latin1 string then convert.
2002-12-16 22:01:15 +00:00
Miloslav Trmac
995aef2577 Update Czech translation 2002-12-16 19:31:40 +00:00
Ole Laursen
5817e204b4 Updated Danish translation.
2002-12-16  Ole Laursen  <olau@hardworking.dk>

	* da.po: Updated Danish translation.
2002-12-16 16:30:52 +00:00
Daniel Yacob
50b5a2b8d8 Adding am to LINGUAS. 2002-12-16 14:33:27 +00:00
Havoc Pennington
8a9a4aba77 get window name before anything else.
2002-12-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): get window name before anything
	else.

	* src/xprops.c (validate_or_free_results): instead of suggesting
	how to get window title etc. with xprop, just print out the
	window title. much better.
2002-12-15 21:59:38 +00:00
Havoc Pennington
4ad2d1a048 make the warning about strange property contents blame the application and
2002-12-15  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (validate_or_free_results): make the warning about
	strange property contents blame the application and explain how to
	use xprop to diagnose which app is causing the problem.
2002-12-15 18:55:08 +00:00
Havoc Pennington
07296490b4 don't pass NULL string to gconf_client_set_string #101237
2002-12-15  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (meta_prefs_change_workspace_name): don't pass NULL
	string to gconf_client_set_string #101237
2002-12-15 18:51:29 +00:00
Kjartan Maraas
d3b2764ff6 Updated Norwegian (bokmål) translation.
2002-12-14  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Updated Norwegian (bokmål) translation.
2002-12-14 21:03:01 +00:00
Daniel Yacob
6c51b8ae6a For real this time. 2002-12-14 04:23:37 +00:00
Daniel Yacob
4fdc3667a3 Adding Amharic translation. 2002-12-14 04:23:16 +00:00
Havoc Pennington
fd8c3514d6 only install .desktop file for metacity-properties if we actually install
2002-12-13  Havoc Pennington  <hp@redhat.com>

	* src/tools/Makefile.am (Desktop_in_files): only install .desktop
	file for metacity-properties if we actually install
	metacity-properties

	* src/display.c (event_callback): not focusing on button 2 click
	was crack, revert that change.
2002-12-13 22:20:31 +00:00
Christian Rose
c2700863ca Updated Swedish translation.
2002-12-13  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2002-12-13 03:59:56 +00:00
Ole Laursen
18d32248ab Updated Danish translation.
2002-12-12  Ole Laursen  <olau@hardworking.dk>

	* da.po: Updated Danish translation.
2002-12-12 20:15:01 +00:00
Christian Neumair
d8a59d7cd1 Updated German translation, added src/tools/metacity-message.c to
POTFILES.in.
2002-12-11 17:07:08 +00:00
Evandro Fernandes Giovanini
4213beea4b Updated Brazilian Portuguese translation.
2002-12-11  Evandro Fernandes Giovanini <evandrofg@ig.com.br>

        * pt_BR.po: Updated Brazilian Portuguese translation.
2002-12-11 03:41:20 +00:00
Havoc Pennington
967777b965 add myself here, bug #100789
2002-12-09  Havoc Pennington  <hp@pobox.com>

	* AUTHORS: add myself here, bug #100789

	* src/display.c (meta_display_set_grab_op_cursor): drop
	PointerMotionHintMask

	* src/window.c (meta_window_handle_mouse_grab_op_event): don't use
	XQueryPointer, as we aren't using PointerMotionHint now

	* src/display.c (event_callback): rearrange a bit of code
	for slight speedup and clarity

	* src/window.c (update_resize)
	(meta_window_handle_mouse_grab_op_event): implement
	usage of the _METACITY_UPDATE_COUNTER
	(meta_window_handle_mouse_grab_op_event): fix code that
	used event->xbutton with a motion event

	* src/display.c (meta_display_open): add new atoms, and
	initialize Xsync if we have it
	(grab_op_is_resizing): new function
	(meta_display_begin_grab_op): create an alarm monitoring
	window's _METACITY_UPDATE_COUNTER
	(meta_spew_event): conditionalize this on WITH_VERBOSE_MODE
	and print alarm events.

	* src/window.c (meta_window_new): fetch _METACITY_UPDATE_COUNTER

	* configure.in (HAVE_XSYNC): check for Xsync extension
2002-12-10 03:23:04 +00:00
Soeren Sandmann
ba18c630b7 Handle crossing events during resizing. (#93384).
Mon Dec  9 22:09:56 2002  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/display.c, src/window.c: Handle crossing events during
	resizing. (#93384).
2002-12-09 21:07:27 +00:00
151 changed files with 143412 additions and 18773 deletions

View File

@@ -0,0 +1 @@
Havoc Pennington <hp@redhat.com>

161
COMPLIANCE Normal file
View File

@@ -0,0 +1,161 @@
Metacity Standards Compliance
=============================
$Id$
1) Introduction
2) EWMH Compliance
a. Root Window Properties
b. Root Window Messages
c. Application Window Properties
d. Window Manager Protocols
3) ICCCM Compliance
1) Introduction
---------------
This document details metacity compliance with the relevent standards.
The format of this document is as follows:
[-/+?] Hint Name/Feature Name (Version number)
Errata/Comments
The first character indicates the level of compliance as follows:
- none
/ partial
+ complete
? unknown
The title indicates a feature or a hint in the specification, and the
version number indicates the minimum version of the specification
supported by metacity. Later versions may be supported if no
incompatible changes have been made in the specification.
2) EWMH Compliance
------------------
The EWMH, or Extended Window Manager Hints is a freedesktop.org-
developed standard to support a number of conventions for
communication between the window manager and clients. It builds on
and extends the ICCCM (See Section 3). A copy of the current EWMH
standard is available at http://freedesktop.org/Standards/wm-spec/
a. Root Window Properties
-------------------------
+ _NET_SUPPORTED (1.3)
+ _NET_CLIENT_LIST (1.3)
+ _NET_NUMBER_OF_DESKTOPS (1.3)
- _NET_DESKTOP_GEOMETRY (-)
Metacity does not implement large desktops. Regardless, according
to the specification, metacity SHOULD set this property to the
screen size, and update it if the screen size changes because of a
RandR change.
- _NET_DESKTOP_VIEWPORT (-)
Metacity does not implement viewports. However, according to the
specification, metacity MUST set this property to (0,0)
+ _NET_CURRENT_DESKTOP (1.3)
+ _NET_DESKTOP_NAMES (1.3)
+ _NET_ACTIVE_WINDOW (1.3)
+ _NET_WORKAREA (1.3)
+ _NET_SUPPORTING_WM_CHECK (1.3)
+ _NET_VIRTUAL_ROOTS (1.3)
Metacity does not read or set this property, but it does not use
virtual roots to implement virtual desktops, so it complies with the
specification.
+ _NET_DESKTOP_LAYOUT (1.3)
+ _NET_SHOWING_DESKTOP (1.3)
b. Root Window Messages
-----------------------
+ _NET_CLOSE_WINDOW (1.3)
- _NET_MOVERESIZE_WINDOW (-)
Metacity does not support this message. The specification states
that metacity should treat this message like a ConfigureRequest.
Not hard to implement; just hasn't been done.
+ _NET_WM_MOVERESIZE (1.3)
- _NET_RESTACK_WINDOW (-)
Metacity does not currently support this message.
+ _NET_REQUEST_FRAME_EXTENTS (1.3)
c. Application Window Properties
--------------------------------
+ _NET_WM_NAME (1.3)
+ _NET_WM_VISIBLE_NAME (1.3)
Metacity does not set this property, but metacity will never display
a name different from _NET_WM_NAME
+ _NET_WM_ICON_NAME (1.3)
+ _NET_WM_VISIBLE_ICON_NAME (1.3)
Metacity does not set this property, but metacity will never display
a name different from _NET_WM_NAME
+ _NET_WM_DESKTOP (1.3)
+ _NET_WM_WINDOW_TYPE (1.3)
/ _NET_WM_STATE (1.3)
Metacity does not recognize separate vertical and horizontal
maximization states. Currently metacity will do a two-dimensional
maximization if either property is set.
See: http://bugzilla.gnome.org/show_bug.cgi?id=113601
Metacity doesn't implement viewports so _NET_WM_STATE_STICKY is
unimplemented.
_NET_WM_STATE_DEMANDS_ATTENTION is neither read nor updated by
metacity. Metacity should unset it on window activation.
+ _NET_WM_ALLOWED_ACTIONS (1.3)
Metacity keeps this hint up to date. The code is somewhat crufty
and should be rewritten, though it is functional.
See: http://bugzilla.gnome.org/show_bug.cgi?id=90420
+ _NET_WM_STRUT (1.3)
+ _NET_WM_STRUT_PARTIAL (1.3)
+ _NET_WM_ICON_GEOMETRY (1.3)
Metacity uses this property to draw minimize/restore animations
+ _NET_WM_ICON (1.3)
+ _NET_WM_PID (1.3)
+ _NET_WM_HANDLED_ICONS (1.3)
Metacity does not read or set this property. However, metacity
never managed iconified windows, and so has no need to do so.
- _NET_WM_USER_TIME (-)
Metacity does not read or set this property. The EWMH does not
require it to do so, but it should support it.
+ _NET_FRAME_EXTENTS (1.3)
If set in response to a _NET_REQUEST_FRAME_EXTENTS message received
prior to the window being mapped, this may be an estimate. This is,
however, expressly allowed by the specification.
d. Window Manager Protocols
---------------------------
+ _NET_WM_PING (1.3)
3) ICCCM Compliance
-------------------
TODO

2455
ChangeLog

File diff suppressed because it is too large Load Diff

44
HACKING
View File

@@ -1,3 +1,40 @@
Making a release
===
To make a release of metacity, do the following:
- check out a fresh copy from CVS
- increment the version number in configure.in,
see the comment above the version for the next fibonacci number
- update the file NEWS based on the ChangeLog
- add a ChangeLog entry containing the version number
you're releasing ("Released 2.5.4" or something)
so people can see which changes were before and after
a given release.
- "make distcheck" (DO NOT just "make dist" - pass the check!)
- if make distcheck fails, fix it.
- once distcheck succeeds, "cvs commit"
- if someone else made changes and the commit fails,
you have to "cvs up" and run "make distcheck" again
- once the commit succeeds, WITHOUT cvs updating, "cvs tag
METACITY_X_Y_Z" where
X_Y_Z map to version X.Y.Z
- scp the tarball to master.gnome.org
- run install-module on master.gnome.org to install the tarball
on the ftp site
Misc stuff
===
Don't commit substantive code in here without asking me,
hp@redhat.com. Adding translations, no-brainer typo fixes, etc. is
@@ -64,4 +101,9 @@ be NULL.
The code could use cleanup in a lot of places, feel free to do so.
Metacity is ideally a fully ICCCM and EWMH-compliant window manager.
Reading these specifications is a useful first step to understanding
the role of a window manager on an X11 desktop and the standards and
conventions on which X11 desktops are based. Please refer to the
COMPLIANCE file for additional information on these specifications and
metacity's compliance therewith.

View File

@@ -1,5 +1,5 @@
SUBDIRS=src po doc
EXTRA_DIST=HACKING metacity.spec.in metacity.spec \
EXTRA_DIST=HACKING rationales.txt \
intltool-extract.in intltool-merge.in intltool-update.in

236
NEWS
View File

@@ -1 +1,235 @@
See README.
2.8.1
===
Thanks to Olivier Crete, Jarrod Johnson, Neil Muller, Elijah Newren,
Mark McLoughlin, Rob Adams, and foser AT gentoo.org for fixes in this
release.
- make the --enable-xinerama switch work properly
- prevent unwanted grab op from occurring
- don't down-size nitems from a gulong to an int
- add a value type check for the visual/audible bell gconf settings
- make the no sm support warning resizable
- more translations
2.8.0
===
No code changes in this release, but some new translations.
2.7.1
===
Thanks to Rob Adams for fixes in this release.
- bug #122016 - fix a focus race
- Change move_to_workspace_left/right/up/down keybindings to
<Control><Alt><Shift> arrow to avoid conflicting with new
keybindings in spacial nautilus.
- fix dialog stacking order issues so e.g. panel properties
dialog is above the panel
2.7.0
===
First unstable release tarball for GNOME 2.6.
Thanks to Anders Carlsson, Elijah Newren, Rob Adams, James Cape,
Thomas Fitzimmons, Calum Benson for fixes in this release.
2.6.2
===
Thanks to Yukihiro Nakai, Rached Ben Mustapha, Gwenole Beauchesne,
Padraig O'Briain, Laurent Vivier, Rob Adams for contributions to this
release.
- fix to repaint after resize always, so on maximize
and theme changes we get things drawn properly
- fix a compile issue on HPUX
- fix translations of metacity-message output
- fix to update window icons when they change
- put a limit on number of characters displayed in
window titles during Alt+tab
- fix configure check for Xrandr
- fix 64-bit bug in property reading that broke
things badly on 64-bit
- don't move focus when clicking close button on a window
- fix a crash in getting pixmap icons
- spawn dialogs and child processes on the proper
screen in multihead situations
- if the focus gets set to None, set it back to
something sane
- load accessibility modules and set accessibility roles
- fix hang after displaying warning dialogs
- fix a memory corruption when sticking/unsticking windows
that lead to a frequent crash and windows appearing
in Alt+tab improperly
- fix some handling of partial-width panel struts
- more translations
2.6.1
===
- rebuild with fixed glib-gettext.m4
2.6.0
===
- some additional translations
2.5.5
===
Thanks to Rob Adams, Arvind Samptur, Andreas Volz, Ray Strode, John
Paul Wallington, Soeren Sandmann for contributions to this release.
And as always thanks to the translators.
- fix aspect ratio handling
- fix "shake loose" functionality for maximized windows
- handle Xrandr size changes properly again
- fix fullscreen window detection
- fix workspace name handling
- don't steal button press events on root window
- nuke metacity.spec due to nonmaintenance
- allow too-large-for-screen windows to move their titlebar offscreen
- keep an MRU list of windows per-workspace and use it to focus
the next window when the focused window disappears
- fix cursor when moving
- improve appearance of opaque resize
- make BELOW window state work
- fix a crash when gdk_pixmap_foreign_new() returned NULL
2.5.3
===
Thanks to Jordi Mallach, Padraig O'Briain, Rob Adams, Julio Merino,
Ben Jansens, Jurg Billeter, Ray Strode, marcus@freebsd.org, James
Laska, for contributions to this release. Thanks also to
all the tireless translators.
- fixups to .desktop file
- activate window prior to grab end, avoiding
extra focus events
- add support for partial-width panels (fixes corner panel
and xinerama window position constraints)
- added keybinding to toggle window as "always on top"
- support --disable-schemas-install option to configure
- destroy support for legacy GNOME 1.x hints; metacity
no longer works with GNOME 1.x
- disable raise-on-click for mouse focus modes
- fix bug that broke many Javascript popup menus with mozilla
- allow "shaking loose" maximized windows, to move them
between Xinerama heads or whatever
- honor desktop-wide double click timeout
- handle window placement properly for windows that
start out maximized
- integrate Ximian patch to go ahead and log out after 4 minutes
even if a dialog is open
- fix a segfault
- fix bug where window groups weren't always kept up to date
- fix bug where focus got confused when switching workspaces
with mouse focus mode
- fix 64-bit crash on s390x
- chdir to user's homedir on startup
- keep window in fullscreen layer when its transients are focused
- fix keybindings bug when you had ScrollLock enabled
- many translation updates
2.5.2
===
Thanks to David Santiago, Julien Olivier, Anders Carlsson, Rob Adams
for fixes in this release.
- improved wording/UI for some dialogs
- while clicking a window button, if you move the mouse outside
the button such that releasing the mouse button won't activate
the window button, visually indicate by "popping out" the button.
- fix some valgrind errors
- change "show desktop mode" to convert to "everything is minimized
mode" if you open a new window while showing desktop, rather
than previous behavior of simply leaving show desktop mode.
- fix a trivial memory leak
- change "move to workspace N" so it doesn't switch workspaces,
just moves the window.
- translation updates
2.5.1
===
Thanks to Rob Adams, Peter O'Shea, Dafydd Harries, Masahiro Sakai,
Soeren Sandmann for fixes in this release.
- fix bug where fullscreen windows were below top panels
- build fix for Solaris
- support diagonal window movement with numeric keypad
- multihead fix
- build fix for Cygwin
- place on xinerama containing the pointer
- fix totally hosed window placement/movement for frameless
windows
- improvement to smoothness of window move/resize
2.5.0
===
Thanks to Rob Adams, Owen Taylor, Frederic Crozat, Arvind Samptur,
Bill Haneman, Akira Tagoh for help with fixes in this release.
- many new translations
- fix an infinite loop while holding a server grab triggered by
some recent Qt versions doing weird stuff
- fix bug where Alt+rightclick repeatedly on titlebar resulted
in zillions of menus
- fix Alt+Tab to *actually* put minimized windows at the end,
though this was always intended
- rewrite size/positions constraint code (currently known
to be quite buggy, e.g. xmms is hosed)
- enforce size of at least 1x1 on windows
- reduce latency of managing new windows still further
by using async properties code in more places
- don't grab keybindings on docks, so gnome-panel
can handle them
- suck in the panel's screenshot and run dialog global
bindings
- lots of improvements to window placement
- sync max number of workspaces with pager applet
- fix to keep focus when inside window frame in
strict mouse focus mode
- make it possible to start a reverse tab with
shift+alt+tab (vs. alt+tab then shift)
- fix a multihead issue with constraints between two
windows on different heads
- require GTK+ 2.2.0 and fontconfig
- default theme is now Simple
- add visual bell feature
- incorporate many fixes from 2.4.34
- other stuff
2.4.13
===
- we were making all dialogs skip the taskbar, even non-transient
ones, though this was supposedly fixed a while ago. Now really
fixed.
- change back to Alt+click by default for the window drag feature.
- assign Alt+F12 to shade window
- fix not deleting enough workspaces when the number
was reduced via the pager config dialog (readams@hmc.edu)
- don't allow windows under the top panel ever, even if they
are tall windows (Arvind)
- fix up the window layout for directional workspace nav,
so you always stop at the edges and always end up
where you expect (hp, with tweaks from readams@hmc.edu)
- focus new windows in mouse focus mode (readams@hmc.edu)
- support xeyes, oclock, etc. by applying shape mask
to the window manager frame (yeah it resizes slow, deal)
- fix vertical/horizontal maximize
- handle crossing events resizing for more opaque resize goodness
(Soeren)
- add wacky _METACITY_UPDATE_COUNTER experimental extension
to do nice opaque resizing (does nothing without a GTK patch)
- fix a crash setting workspace names
- fix internationalized WM_NAME reading

53
README
View File

@@ -6,15 +6,18 @@ 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.x
Unstable branches are 2.3.x, 2.5.x
COMPILING METACITY
===
You need GTK+ 2.0, ideally the latest in the 2.0.x series. For
multihead/Xinerama support to work, you need GTK+ 2.1.x or 2.2. For
startup notification to work you need libstartup-notification at
You need GTK+ 2.2. For startup notification to work you need
libstartup-notification at
http://www.freedesktop.org/software/startup-notification/ or on the
GNOME ftp site. You also need GConf 1.2 (unless building a funky
extra-small embedded metacity with --disable-gconf).
GNOME ftp site. You also need GConf 1.2 (unless building a funky
extra-small embedded metacity with --disable-gconf, see below).
REPORTING BUGS AND SUBMITTING PATCHES
===
@@ -36,9 +39,9 @@ See the HACKING file for some notes on hacking Metacity.
SHRINKING METACITY
===
Not that metacity is huge (<400K binary last I checked), but about
half of that is in the preferences handling, in static strings that
aren't essential, and in the theme engine.
Not that metacity is huge, but a substantial amount of code is in
preferences handling, in static strings that aren't essential, and in
the theme engine.
You can strip about 70K from the metacity binary by compiling with
options such as:
@@ -78,7 +81,7 @@ METACITY FEATURES
- Does not expose the concept of "window manager" to the user. Some
of the features in the GNOME control panel and other parts of the
desktop happen to be implemented in metacity, such as changing your
window border theme, or changing your window navigation shorcuts,
window border theme, or changing your window navigation shortcuts,
but the user doesn't need to know this.
- Includes only the window manager; does not try to be a desktop
@@ -184,11 +187,10 @@ METACITY FEATURES
be respawned. It theoretically restores sizes/positions/workspace
for session-aware applications.
- Metacity implements much of the new window manager spec from
freedesktop.org
(http://www.freedesktop.org/standards/wm-spec.html), and much of
the ICCCM. But then there are parts of each that it doesn't
implement, just because I haven't yet.
- Metacity implements much of the EWMH window manager specification
from freedesktop.org, as well as the older ICCCM. Please refer to
the COMPLIANCE file for information on metacity compliance with
these standards.
- Uses Pango to render text, so has cool i18n capabilities.
Supports UTF-8 window titles and such.
@@ -213,6 +215,20 @@ METACITY FEATURES
- and much more! well, maybe not a lot more.
HOW TO ADD EXTERNAL FEATURES
===
You can write a metacity "plugin" such as a pager, window list, icon
box, task menu, or even things like "window matching" using the
Extended Window Manager Hints. See http://www.freedesktop.org for the
EWMH specification. An easy-to-use library called "libwnck" is
available that uses the EWMH and is specifically designed for writing
WM accessories.
You might be interested in existing accessories such as "Devil's Pie"
by Ross Burton, which add features to Metacity (or other
EWMH-compliant WMs).
METACITY BUGS, NON-FEATURES, AND CAVEATS
===
@@ -353,9 +369,11 @@ A: This one is also in rationales.txt. Because "ouija board" UI, where
http://pobox.com/~hp/free-software-ui.html
http://pobox.com/~hp/features.html
Q: Why no wireframe move/resize?
Q: Why does wireframe move/resize suck?
A: Also in rationales.txt. Because it has low usability, and is a pain
A: You can turn it on with the reduced_resources setting.
But: it has low usability, and is a pain
to implement, and there's no reason opaque move/resize should be a
problem on any setup that can run a modern desktop worth a darn to
begin with.
@@ -364,6 +382,9 @@ A: Also in rationales.txt. Because it has low usability, and is a pain
http://pobox.com/~hp/free-software-ui.html
http://pobox.com/~hp/features.html
The reason we had to add wireframe anyway was broken
proprietary apps that can't handle lots of resize events.
Q: Why no XYZ?
A: You are probably getting the idea by now - check rationales.txt,

View File

@@ -4,7 +4,8 @@ AC_INIT(src/display.c)
AM_CONFIG_HEADER(config.h)
# 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987
AM_INIT_AUTOMAKE(metacity, 2.4.8)
# releases on a branch add a 4th version like 2.4.21.1
AM_INIT_AUTOMAKE(metacity, 2.8.1)
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
@@ -19,8 +20,24 @@ AC_PROG_INTLTOOL([0.21])
AC_PROG_CC
AC_ISC_POSIX
AC_HEADER_STDC
AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
#### Integer sizes
AC_CHECK_SIZEOF(char)
AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(void *)
AC_CHECK_SIZEOF(long long)
AC_CHECK_SIZEOF(__int64)
## byte order
AC_C_BIGENDIAN
#### Warnings
changequote(,)dnl
if test "x$GCC" = "xyes"; then
case " $CFLAGS " in
@@ -82,44 +99,56 @@ if test "x$GCC" = "xyes"; then
fi
changequote([,])dnl
METACITY_PC_MODULES='gtk+-2.0 >= 2.0.0'
METACITY_PC_MODULES='gtk+-2.0 >= 2.2.0 pango >= 1.2.0'
AC_ARG_ENABLE(config-dialog, [ --enable-config-dialog enable the config dialog that you need with GNOME 2.0 (obsolete with GNOME 2.2)],enable_config_dialog=yes,enable_config_dialog=no)
AC_ARG_ENABLE(config-dialog, [ --enable-config-dialog enable the config dialog that you need with GNOME 2.0 (obsolete with GNOME 2.2)],,enable_config_dialog=no)
AM_CONDITIONAL(BUILD_CONFIG_DIALOG, test x$enable_config_dialog = xyes)
if test x$enable_config_dialog = xyes; then
AC_DEFINE(BUILD_CONFIG_DIALOG,1,[Build configuration dialog])
fi
AC_ARG_ENABLE(gconf, [ --disable-gconf disable gconf usage, for embedded/size-sensitive non-GNOME builds],enable_gconf=no,enable_gconf=yes)
AC_ARG_ENABLE(gconf, [ --disable-gconf disable gconf usage, for embedded/size-sensitive non-GNOME builds],,enable_gconf=yes)
if test x$enable_gconf = xyes; then
AC_DEFINE(HAVE_GCONF,1,[Build with gconf support])
METACITY_PC_MODULES="$METACITY_PC_MODULES gconf-2.0 >= 1.2.0"
fi
AC_ARG_ENABLE(verbose-mode, [ --disable-verbose disable metacity's ability to do verbose logging, for embedded/size-sensitive custom builds],enable_verbose_mode=no,enable_verbose_mode=yes)
AC_ARG_ENABLE(verbose-mode, [ --disable-verbose disable metacity's ability to do verbose logging, for embedded/size-sensitive custom builds],,enable_verbose_mode=yes)
if test x$enable_verbose_mode = xyes; then
AC_DEFINE(WITH_VERBOSE_MODE,1,[Build with verbose mode support])
fi
AC_ARG_ENABLE(sm, [ --disable-sm disable metacity's session management support, for embedded/size-sensitive custom non-GNOME builds],enable_sm=no,enable_sm=auto)
AC_ARG_ENABLE(sm, [ --disable-sm disable metacity's session management support, for embedded/size-sensitive custom non-GNOME builds],,enable_sm=auto)
AC_ARG_ENABLE(startup-notification, [ --disable-startup-notification disable metacity's startup notification support, for embedded/size-sensitive custom non-GNOME builds],enable_startup_notification=no,enable_startup_notification=auto)
AC_ARG_ENABLE(startup-notification, [ --disable-startup-notification disable metacity's startup notification support, for embedded/size-sensitive custom non-GNOME builds],,enable_startup_notification=auto)
AC_ARG_ENABLE(compositor, [ --disable-compositor disable metacity's compositing manager],,enable_compositor=auto)
AC_ARG_ENABLE(xsync, [ --disable-xsync disable metacity's use of the XSync extension],,enable_xsync=auto)
AC_ARG_ENABLE(shape, [ --disable-shape disable metacity's use of the shaped window extension],,enable_shape=auto)
## try definining HAVE_BACKTRACE
AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
ALL_LINGUAS="az ca cs da de el es fr gl hu it ja ko lv ms no pl pt pt_BR ro ru sk sv tr uk vi zh_CN zh_TW"
ALL_LINGUAS="am ar az be bg bn 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 nl nn no pa pl pt pt_BR ro ru sl sk sq sr sr@Latn sv ta th 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.0.0)
PKG_CHECK_MODULES(METACITY_WINDOW_DEMO, gtk+-2.0 >= 2.0.0)
PKG_CHECK_MODULES(METACITY_MESSAGE, gtk+-2.0 >= 2.2.0)
PKG_CHECK_MODULES(METACITY_WINDOW_DEMO, gtk+-2.0 >= 2.2.0)
if test x$enable_config_dialog = xyes; then
PKG_CHECK_MODULES(METACITY_PROPS, gtk+-2.0 >= 2.0.0 gconf-2.0 >= 1.1.9 libglade-2.0)
PKG_CHECK_MODULES(METACITY_PROPS, gtk+-2.0 >= 2.2.0 gconf-2.0 >= 1.1.9 libglade-2.0)
fi
if $PKG_CONFIG --atleast-version 1.2.0 pangoxft; then
echo "pangoxft found"
else
AC_MSG_ERROR("Pango 1.2.0 or greater based on Xft2 is required")
fi
STARTUP_NOTIFICATION_VERSION=0.4
@@ -148,14 +177,33 @@ else
echo "Building without libstartup-notification"
fi
PKG_CHECK_MODULES(METACITY, $METACITY_PC_MODULES)
if $PKG_CONFIG --atleast-version 2.1.0 gtk+-2.0; then
AC_DEFINE(HAVE_GTK_MULTIHEAD,,[gtk+ with multihead support found])
with_multihead=yes
XCOMPOSITE_VERSION=1.0
AC_MSG_CHECKING([Xcomposite >= $XCOMPOSITE_VERSION])
if $PKG_CONFIG --atleast-version $XCOMPOSITE_VERSION xcomposite; then
have_xcomposite=yes
else
with_multihead=no
have_xcomposite=no
fi
AC_MSG_RESULT($have_xcomposite)
if test x$enable_compositor = xyes; then
have_xcomposite=yes
echo "CompositeExt support forced on"
elif test x$enable_compositor = xauto; then
true
else
have_xcomposite=no
fi
if test x$have_xcomposite = xyes; then
echo "Building with CompositeExt"
METACITY_PC_MODULES="$METACITY_PC_MODULES xcomposite >= $XCOMPOSITE_VERSION xfixes xrender xdamage"
AC_DEFINE(HAVE_COMPOSITE_EXTENSIONS, , [Building with compositing manager support])
else
echo "Building without compositing manager"
fi
PKG_CHECK_MODULES(METACITY, $METACITY_PC_MODULES)
AC_PATH_XTRA
@@ -165,46 +213,51 @@ ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
metacity_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
AC_ARG_ENABLE(xinerama,[ --disable-xinerama disable metacity's use of the Xinerama extension],
try_xinerama=$enable_xinerama,try_xinerama=yes)
use_solaris_xinerama=no
use_xfree_xinerama=no
case "$host" in
*-*-solaris*)
# Check for solaris
use_solaris_xinerama=yes
AC_CHECK_LIB(Xext, XineramaGetInfo,
use_solaris_xinerama=yes, use_solaris_xinerama=no,
$ALL_X_LIBS)
if test "x$use_solaris_xinerama" = "xyes"; then
AC_CHECK_HEADER(X11/extensions/xinerama.h,
if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then
X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS"
fi
AC_DEFINE(HAVE_SOLARIS_XINERAMA, , [Have Solaris-style Xinerama])
AC_DEFINE(HAVE_XINERAMA, , [Have some version of Xinerama]),
use_solaris_xinerama=no,
[#include <X11/Xlib.h>])
fi
AC_MSG_CHECKING(for Xinerama support on Solaris)
AC_MSG_RESULT($use_solaris_xinerama);
;;
*)
# Check for XFree
use_xfree_xinerama=yes
AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
[AC_CHECK_HEADER(X11/extensions/Xinerama.h,
X_EXTRA_LIBS="-lXinerama $X_EXTRA_LIBS"
if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then
X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS"
fi
AC_DEFINE(HAVE_XFREE_XINERAMA, , [Have XFree86-style Xinerama])
AC_DEFINE(HAVE_XINERAMA,, [Have some version of Xinerama]),
use_xfree_xinerama=no,
[#include <X11/Xlib.h>])],
use_xfree_xinerama=no, -lXext $ALL_X_LIBS)
AC_MSG_CHECKING(for Xinerama support on XFree86)
AC_MSG_RESULT($use_xfree_xinerama);
;;
esac
if test "${try_xinerama}" != no; then
case "$host" in
*-*-solaris*)
# Check for solaris
use_solaris_xinerama=yes
AC_CHECK_LIB(Xext, XineramaGetInfo,
use_solaris_xinerama=yes, use_solaris_xinerama=no,
$ALL_X_LIBS)
if test "x$use_solaris_xinerama" = "xyes"; then
AC_CHECK_HEADER(X11/extensions/xinerama.h,
if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then
X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS"
fi
AC_DEFINE(HAVE_SOLARIS_XINERAMA, , [Have Solaris-style Xinerama])
AC_DEFINE(HAVE_XINERAMA, , [Have some version of Xinerama]),
use_solaris_xinerama=no,
[#include <X11/Xlib.h>])
fi
AC_MSG_CHECKING(for Xinerama support on Solaris)
AC_MSG_RESULT($use_solaris_xinerama);
;;
*)
# Check for XFree
use_xfree_xinerama=yes
AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
[AC_CHECK_HEADER(X11/extensions/Xinerama.h,
X_EXTRA_LIBS="-lXinerama $X_EXTRA_LIBS"
if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then
X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS"
fi
AC_DEFINE(HAVE_XFREE_XINERAMA, , [Have XFree86-style Xinerama])
AC_DEFINE(HAVE_XINERAMA,, [Have some version of Xinerama]),
use_xfree_xinerama=no,
[#include <X11/Xlib.h>])],
use_xfree_xinerama=no, -lXext $ALL_X_LIBS)
AC_MSG_CHECKING(for Xinerama support on XFree86)
AC_MSG_RESULT($use_xfree_xinerama);
;;
esac
fi
CPPFLAGS="$metacity_save_cppflags"
@@ -215,23 +268,69 @@ AC_CHECK_LIB(Xext, XShapeQueryExtension,
SHAPE_LIBS=-lXext found_shape=yes)],
, $ALL_X_LIBS)
if test x$enable_shape = xno; then
found_shape=no
fi
if test x$enable_shape = xyes; then
if test "$found_shape" = "no"; then
AC_MSG_ERROR([--enable-shape forced and Shape not found])
exit 1
fi
fi
if test "x$found_shape" = "xyes"; then
AC_DEFINE(HAVE_SHAPE, , [Have the shape extension library])
fi
found_xkb=no
AC_CHECK_LIB(X11, XkbQueryExtension,
[AC_CHECK_HEADER(X11/XKBlib.h,
found_xkb=yes)],
, $ALL_X_LIBS)
if test "x$found_xkb" = "xyes"; then
AC_DEFINE(HAVE_XKB, , [Have keyboard extension library])
fi
RANDR_LIBS=
found_randr=no
AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
[AC_CHECK_HEADER(X11/extensions/Xrandr.h,
RANDR_LIBS=-lXrandr found_randr=yes,,
[#include <X11/Xlib.h>])],
, -lXrender $ALL_X_LIBS)
, -lXrender -lXext $ALL_X_LIBS)
if test "x$found_randr" = "xyes"; then
AC_DEFINE(HAVE_RANDR, , [Have the Xrandr extension library])
fi
METACITY_LIBS="$RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_LIBS"
XSYNC_LIBS=
found_xsync=no
AC_CHECK_LIB(Xext, XSyncQueryExtension,
[AC_CHECK_HEADER(X11/extensions/sync.h,
found_xsync=yes,,
[#include <X11/Xlib.h>])],
, $ALL_X_LIBS)
if test x$enable_xsync = xno; then
found_xsync=no
fi
if test x$enable_xsync = xyes; then
if test "$found_xsync" = "no"; then
AC_MSG_ERROR([--enable-xsync forced and XSync not found])
exit 1
fi
fi
if test "x$found_xsync" = "xyes"; then
XSYNC_LIBS=-lXext
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"
@@ -301,7 +400,6 @@ src/libmetacity-private.pc
src/tools/Makefile
src/themes/Makefile
po/Makefile.in
metacity.spec
])
if test x$enable_gconf = xno; then
@@ -333,10 +431,12 @@ metacity-$VERSION:
GConf: ${enable_gconf}
XFree86 Xinerama: ${use_xfree_xinerama}
Solaris Xinerama: ${use_solaris_xinerama}
Multihead: ${with_multihead}
Startup notification: ${have_startup_notification}
Compositing manager: ${have_xcomposite}
Session management: ${found_sm}
Shape extension: ${found_shape}
Resize-and-rotate: ${found_randr}
Xsync: ${found_xsync}
Deprecated config dialog: ${enable_config_dialog}
"
#echo "This is the UNSTABLE branch of metacity, use 2.8.x for stable (gnome-2-6 branch in CVS)"

View File

@@ -1,2 +1,2 @@
EXTRA_DIST=theme-format.txt metacity-theme.dtd
EXTRA_DIST=theme-format.txt metacity-theme.dtd dialogs.txt

32
doc/dialogs.txt Normal file
View File

@@ -0,0 +1,32 @@
Dialogs which have no transient parent or root window being
their tranisent parent are the ones which will be visible in
the tasklist.
All such dialogs will be *always* on top of the window
group i.e they would transients for the whole group.
1) Modal dialogs
* If you wish to open another window from a modal dialog
open *only* a modal dialog and set it's transient parent.
2) Normal dialog
without transient parent
* If you wish to open another window from a normal dialog
open either a normal dialog or a modal dialog only.
Set the transient parent for the child dialog if you do not
want them to be transient for all the other windows in the group.
with transient parent
* If you wish to open another window from a normal dialog
you could open any type of window.

View File

@@ -70,7 +70,7 @@
<!ATTLIST frame
focus (yes|no) #REQUIRED
state (normal|maximized|shaded|maximized_and_shaded) #REQUIRED
resize (both|horizontal|vertical|none) #REQUIRED
resize (both|horizontal|vertical|none) #IMPLIED
style CDATA #REQUIRED
>
@@ -153,7 +153,7 @@
filled %boolean; 'false'
>
<!ELEMENT arc EMTPY>
<!ELEMENT arc EMPTY>
<!ATTLIST arc
color CDATA #REQUIRED
%xyrequired;

View File

@@ -1,87 +0,0 @@
%define ver @VERSION@
%define RELEASE 1
%define rel %{?CUSTOM_RELEASE} %{!?CUSTOM_RELEASE:%RELEASE}
Summary: Metacity window manager
Name: metacity
Version: %ver
Release: %rel
URL: http://people.redhat.com/~hp/metacity/
Source0: %{name}-%{version}.tar.gz
License: GPL
Group: User Interface/Desktops
BuildRoot: %{_tmppath}/%{name}-root
BuildRequires: gtk2-devel >= 2.0.0
BuildRequires: GConf2-devel >= 1.1.9
%description
Metacity is a simple window manager that integrates nicely with
GNOME 2.
%prep
%setup -q
%build
%configure
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
%makeinstall
unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
%clean
rm -rf $RPM_BUILD_ROOT
%post
export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
SCHEMAS="metacity.schemas"
for S in $SCHEMAS; do
gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/$S > /dev/null
done
%files
%defattr(-,root,root)
%doc README AUTHORS COPYING NEWS HACKING theme-format.txt
%{_bindir}/*
%{_libexecdir}/*
%{_datadir}/gnome/wm-properties/*
%{_sysconfdir}/gconf/schemas/*.schemas
%{_datadir}/control-center-2.0/capplets/*
%{_datadir}/metacity
%{_datadir}/pixmaps/*
%{_datadir}/themes/*
%changelog
* Tue Aug 20 2002 Steve Fox <drfickle@k-lug.org>
- Autoconf-ize the spec file to magic updates
- Include missing dirs
* Thu May 2 2002 Havoc Pennington <hp@redhat.com>
- 2.3.233
* Thu Apr 25 2002 Havoc Pennington <hp@redhat.com>
- rebuild in different environment
- add gconf schemas boilerplate
* Mon Apr 15 2002 Havoc Pennington <hp@pobox.com>
- 2.3.89
* Tue Oct 30 2001 Havoc Pennington <hp@redhat.com>
- 2.3.34
* Fri Oct 13 2001 Havoc Pennington <hp@redhat.com>
- 2.3.21
* Mon Sep 17 2001 Havoc Pennington <hp@redhat.com>
- 2.3.8
- 2.3.13
* Wed Sep 5 2001 Havoc Pennington <hp@redhat.com>
- Initial build.

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,6 @@
# List of source files containing translatable strings.
# Please keep this file sorted alphabetically.
src/tools/metacity-message.c
src/delete.c
src/display.c
src/errors.c
@@ -16,6 +17,7 @@ src/resizepopup.c
src/screen.c
src/session.c
src/theme-parser.c
src/theme-viewer.c
src/theme.c
src/tools/metacity-properties.desktop.in
src/tools/metacity-properties.glade

2684
po/am.po Normal file

File diff suppressed because it is too large Load Diff

3073
po/ar.po Normal file

File diff suppressed because it is too large Load Diff

2138
po/az.po

File diff suppressed because it is too large Load Diff

3278
po/be.po Normal file

File diff suppressed because it is too large Load Diff

3214
po/bg.po Normal file

File diff suppressed because it is too large Load Diff

3193
po/bn.po Normal file

File diff suppressed because it is too large Load Diff

1784
po/ca.po

File diff suppressed because it is too large Load Diff

923
po/cs.po

File diff suppressed because it is too large Load Diff

3253
po/cy.po Normal file

File diff suppressed because it is too large Load Diff

996
po/da.po

File diff suppressed because it is too large Load Diff

1051
po/de.po

File diff suppressed because it is too large Load Diff

1389
po/el.po

File diff suppressed because it is too large Load Diff

3179
po/en_CA.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1724
po/es.po

File diff suppressed because it is too large Load Diff

2660
po/et.po Normal file

File diff suppressed because it is too large Load Diff

3196
po/eu.po Normal file

File diff suppressed because it is too large Load Diff

2676
po/fa.po Normal file

File diff suppressed because it is too large Load Diff

3192
po/fi.po Normal file

File diff suppressed because it is too large Load Diff

1984
po/fr.po

File diff suppressed because it is too large Load Diff

2675
po/ga.po Normal file

File diff suppressed because it is too large Load Diff

850
po/gl.po

File diff suppressed because it is too large Load Diff

3231
po/gu.po Normal file

File diff suppressed because it is too large Load Diff

2711
po/he.po Normal file

File diff suppressed because it is too large Load Diff

3133
po/hi.po Normal file

File diff suppressed because it is too large Load Diff

3235
po/hr.po Normal file

File diff suppressed because it is too large Load Diff

1112
po/hu.po

File diff suppressed because it is too large Load Diff

3299
po/id.po Normal file

File diff suppressed because it is too large Load Diff

2701
po/is.po Normal file

File diff suppressed because it is too large Load Diff

2096
po/it.po

File diff suppressed because it is too large Load Diff

2046
po/ja.po

File diff suppressed because it is too large Load Diff

1423
po/ko.po

File diff suppressed because it is too large Load Diff

3273
po/lt.po Normal file

File diff suppressed because it is too large Load Diff

995
po/lv.po

File diff suppressed because it is too large Load Diff

3200
po/mk.po Normal file

File diff suppressed because it is too large Load Diff

2679
po/ml.po Normal file

File diff suppressed because it is too large Load Diff

3218
po/mn.po Normal file

File diff suppressed because it is too large Load Diff

1014
po/ms.po

File diff suppressed because it is too large Load Diff

3250
po/nl.po Normal file

File diff suppressed because it is too large Load Diff

3201
po/nn.po Normal file

File diff suppressed because it is too large Load Diff

1462
po/no.po

File diff suppressed because it is too large Load Diff

3082
po/pa.po Normal file

File diff suppressed because it is too large Load Diff

1165
po/pl.po

File diff suppressed because it is too large Load Diff

1964
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1241
po/ro.po

File diff suppressed because it is too large Load Diff

1743
po/ru.po

File diff suppressed because it is too large Load Diff

1314
po/sk.po

File diff suppressed because it is too large Load Diff

3221
po/sl.po Normal file

File diff suppressed because it is too large Load Diff

3211
po/sq.po Normal file

File diff suppressed because it is too large Load Diff

3241
po/sr.po Normal file

File diff suppressed because it is too large Load Diff

3241
po/sr@Latn.po Normal file

File diff suppressed because it is too large Load Diff

1093
po/sv.po

File diff suppressed because it is too large Load Diff

2664
po/ta.po Normal file

File diff suppressed because it is too large Load Diff

3063
po/th.po Normal file

File diff suppressed because it is too large Load Diff

1967
po/tr.po

File diff suppressed because it is too large Load Diff

1970
po/uk.po

File diff suppressed because it is too large Load Diff

1161
po/vi.po

File diff suppressed because it is too large Load Diff

2696
po/wa.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,43 @@
Focus windows on map: see http://bugzilla.gnome.org/show_bug.cgi?id=82921
History
====
Focus windows on map: see
http://bugzilla.gnome.org/show_bug.cgi?id=118372
http://bugzilla.gnome.org/show_bug.cgi?id=82921
Keep panel always on top: http://bugzilla.gnome.org/show_bug.cgi?id=81551
Edge flipping: http://bugzilla.gnome.org/show_bug.cgi?id=82917
Opaque resize: http://bugzilla.gnome.org/show_bug.cgi?id=92618
Super+click to resize: http://bugzilla.gnome.org/show_bug.cgi?id=79315
Alt+click to move/resize: http://bugzilla.gnome.org/show_bug.cgi?id=101151
minimized windows in Alt+tab: http://bugzilla.gnome.org/show_bug.cgi?id=89416
raise windows on click: http://bugzilla.gnome.org/show_bug.cgi?id=86108
dialogs above entire app group: http://bugzilla.gnome.org/show_bug.cgi?id=88926
display window size/position:
http://bugzilla.gnome.org/show_bug.cgi?id=85213
http://bugzilla.gnome.org/show_bug.cgi?id=106645
http://bugzilla.gnome.org/show_bug.cgi?id=130821
configure click actions, alt+click:
http://bugzilla.gnome.org/show_bug.cgi?id=83210
system modal dialogs: http://bugzilla.gnome.org/show_bug.cgi?id=83357
workspace wrapping: http://bugzilla.gnome.org/show_bug.cgi?id=89315
raise windows on click:
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
Some discussion of how pointer focus is inherently a bit buggy because
of the "sometimes focus window that isn't under the mouse" heuristics:
http://bugzilla.gnome.org/show_bug.cgi?id=124798
(there are some other bugs that may have better explanation)
Tracking bugs
====
session management: http://bugzilla.gnome.org/show_bug.cgi?id=107063
revise theme format: http://bugzilla.gnome.org/show_bug.cgi?id=102547

View File

@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libmetacity-private.la
SUBDIRS=wm-tester tools themes
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
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
EGGFILES= \
eggaccelerators.c \
@@ -11,7 +11,13 @@ EGGFILES= \
metacity_SOURCES= \
async-getprop.c \
async-getprop.h \
bell.h \
bell.c \
common.h \
compositor.c \
compositor.h \
constraints.c \
constraints.h \
core.c \
core.h \
delete.c \
@@ -97,6 +103,9 @@ libmetacity_private_la_SOURCES= \
util.h \
common.h
libmetacity_private_la_LDFLAGS = -no-undefined
libmetacity_private_la_LIBADD = @METACITY_LIBS@
libmetacityincludedir = $(includedir)/metacity-1/metacity-private
libmetacityinclude_HEADERS = \
@@ -131,7 +140,8 @@ testasyncgetprop_LDADD= @METACITY_LIBS@
desktopfilesdir=$(datadir)/gnome/wm-properties
desktopfiles_in_files=metacity.desktop.in
desktopfiles_DATA = $(desktopfiles_in_files:.desktop.in=.desktop)
desktopfiles_files=$(desktopfiles_in_files:.desktop.in=.desktop)
desktopfiles_DATA = $(desktopfiles_files)
@INTLTOOL_DESKTOP_RULE@
schemadir = @GCONF_SCHEMA_FILE_DIR@
@@ -140,8 +150,12 @@ schema_DATA = $(schema_in_files:.schemas.in=.schemas)
@INTLTOOL_SCHEMAS_RULE@
if GCONF_SCHEMAS_INSTALL
install-data-local:
GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(srcdir)/$(schema_DATA)
else
install-data-local:
endif
IMAGES=default_icon.png stock_maximize.png stock_minimize.png stock_delete.png
VARIABLES=default_icon_data $(srcdir)/default_icon.png \
@@ -159,7 +173,7 @@ pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libmetacity-private.pc
EXTRA_DIST=$(desktopfiles_DATA) \
EXTRA_DIST=$(desktopfiles_files) \
$(IMAGES) $(schema_DATA) \
update-from-egg.sh \
$(desktopfiles_in_files) \

View File

@@ -347,8 +347,9 @@ async_get_property_handler (Display *dpy,
break;
case 32:
/* NOTE buffer is in longs to match XGetWindowProperty() */
nbytes = reply->nItems * sizeof (long);
netbytes = reply->nItems << 2;
netbytes = reply->nItems << 2; /* wire size is always 32 bits though */
if (nbytes + 1 > 0 &&
(task->data = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
{
@@ -356,10 +357,41 @@ async_get_property_handler (Display *dpy,
printf ("%s: already read %d bytes using %ld more, eating %ld more\n",
__FUNCTION__, bytes_read, nbytes, netbytes);
#endif
/* _XRead32 (dpy, (long *) task->data, netbytes); */
_XGetAsyncData (dpy, task->data, buf, len,
bytes_read, nbytes,
netbytes);
/* We have to copy the XGetWindowProperty() crackrock
* and get format 32 as long even on 64-bit platforms.
*/
if (sizeof (long) == 8)
{
unsigned char *netdata;
unsigned char *lptr;
unsigned char *end_lptr;
/* Store the 32-bit values in the end of the array */
netdata = task->data + nbytes / 2;
_XGetAsyncData (dpy, netdata, buf, len,
bytes_read, netbytes,
netbytes);
/* Now move the 32-bit values to the front */
lptr = task->data;
end_lptr = task->data + nbytes;
while (lptr != end_lptr)
{
*(long*) lptr = *(CARD32*) netdata;
lptr += sizeof (long);
netdata += sizeof (CARD32);
}
}
else
{
/* Here the wire format matches our actual format */
_XGetAsyncData (dpy, task->data, buf, len,
bytes_read, netbytes,
netbytes);
}
}
break;

250
src/bell.c Normal file
View File

@@ -0,0 +1,250 @@
/* Metacity visual bell */
/*
* Copyright (C) 2002 Sun Microsystems 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>
#include "bell.h"
#include "screen.h"
#include "prefs.h"
static void
meta_bell_flash_screen (MetaDisplay *display,
MetaScreen *screen)
{
Window root = screen->xroot;
int width = screen->width;
int height = screen->height;
if (screen->flash_window == None)
{
Visual *visual = CopyFromParent;
XSetWindowAttributes xswa;
int depth = CopyFromParent;
xswa.save_under = True;
xswa.override_redirect = True;
/*
* TODO: use XGetVisualInfo and determine which is an
* overlay, if one is present, and use the Overlay visual
* for this window (for performance reasons).
* Not sure how to tell this yet...
*/
screen->flash_window = XCreateWindow (display->xdisplay, root,
0, 0, width, height,
0, depth,
InputOutput,
visual,
/* note: XSun doesn't like SaveUnder here */
CWSaveUnder | CWOverrideRedirect,
&xswa);
XSelectInput (display->xdisplay, screen->flash_window, ExposureMask);
XMapWindow (display->xdisplay, screen->flash_window);
XSync (display->xdisplay, False);
XFlush (display->xdisplay);
XUnmapWindow (display->xdisplay, screen->flash_window);
}
else
{
/* just draw something in the window */
GC gc = XCreateGC (display->xdisplay, screen->flash_window, 0, NULL);
XMapWindow (display->xdisplay, screen->flash_window);
XSetForeground (display->xdisplay, gc,
WhitePixel (display->xdisplay,
XScreenNumberOfScreen (screen->xscreen)));
XFillRectangle (display->xdisplay, screen->flash_window, gc,
0, 0, width, height);
XSetForeground (display->xdisplay, gc,
BlackPixel (display->xdisplay,
XScreenNumberOfScreen (screen->xscreen)));
XFillRectangle (display->xdisplay, screen->flash_window, gc,
0, 0, width, height);
XFlush (display->xdisplay);
XSync (display->xdisplay, False);
XUnmapWindow (display->xdisplay, screen->flash_window);
}
XFlush (display->xdisplay);
}
#ifdef HAVE_XKB
static void
meta_bell_flash_fullscreen (MetaDisplay *display,
XkbAnyEvent *xkb_ev)
{
XkbBellNotifyEvent *xkb_bell_ev = (XkbBellNotifyEvent *) xkb_ev;
MetaScreen *screen;
g_assert (xkb_ev->xkb_type == XkbBellNotify);
if (xkb_bell_ev->window != None)
{
screen = meta_display_screen_for_xwindow (display, xkb_bell_ev->window);
if (screen)
meta_bell_flash_screen (display, screen);
}
else
{
GSList *screen_list = display->screens;
while (screen_list)
{
screen = (MetaScreen *) screen_list->data;
meta_bell_flash_screen (display, screen);
screen_list = screen_list->next;
}
}
}
static gboolean
meta_bell_unflash_frame (gpointer data)
{
MetaFrame *frame = (MetaFrame *) data;
frame->is_flashing = 0;
meta_frame_queue_draw (frame);
return FALSE;
}
static void
meta_bell_flash_window_frame (MetaWindow *window)
{
g_assert (window->frame != NULL);
window->frame->is_flashing = 1;
meta_frame_queue_draw (window->frame);
g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, 100,
meta_bell_unflash_frame, window->frame, NULL);
}
static void
meta_bell_flash_frame (MetaDisplay *display,
XkbAnyEvent *xkb_ev)
{
XkbBellNotifyEvent *xkb_bell_event = (XkbBellNotifyEvent *) xkb_ev;
MetaWindow *window;
g_assert (xkb_ev->xkb_type == XkbBellNotify);
window = meta_display_lookup_x_window (display, xkb_bell_event->window);
if (!window && (display->focus_window) && (display->focus_window->frame))
{
window = display->focus_window;
}
if (window)
{
meta_bell_flash_window_frame (window);
}
else /* revert to fullscreen flash if there's no focussed window */
{
meta_bell_flash_fullscreen (display, xkb_ev);
}
}
static void
meta_bell_visual_notify (MetaDisplay *display,
XkbAnyEvent *xkb_ev)
{
switch (meta_prefs_get_visual_bell_type ())
{
case META_VISUAL_BELL_FULLSCREEN_FLASH:
meta_bell_flash_fullscreen (display, xkb_ev);
break;
case META_VISUAL_BELL_FRAME_FLASH:
meta_bell_flash_frame (display, xkb_ev); /* does nothing yet */
break;
case META_VISUAL_BELL_INVALID:
/* do nothing */
break;
}
}
void
meta_bell_notify (MetaDisplay *display,
XkbAnyEvent *xkb_ev)
{
/* flash something */
if (meta_prefs_get_visual_bell ())
meta_bell_visual_notify (display, xkb_ev);
}
#endif
void
meta_bell_set_audible (MetaDisplay *display, gboolean audible)
{
#ifdef HAVE_XKB
XkbChangeEnabledControls (display->xdisplay,
XkbUseCoreKbd,
XkbAudibleBellMask,
audible ? XkbAudibleBellMask : 0);
#endif
}
gboolean
meta_bell_init (MetaDisplay *display)
{
#ifdef HAVE_XKB
int xkb_base_error_type, xkb_opcode;
if (!XkbQueryExtension (display->xdisplay, &xkb_opcode,
&display->xkb_base_event_type,
&xkb_base_error_type,
NULL, NULL))
{
display->xkb_base_event_type = -1;
g_message ("could not find XKB extension.");
return FALSE;
}
else
{
unsigned int mask = XkbBellNotifyMask;
gboolean visual_bell_auto_reset = FALSE;
/* TRUE if and when non-broken version is available */
XkbSelectEvents (display->xdisplay,
XkbUseCoreKbd,
XkbBellNotifyMask,
XkbBellNotifyMask);
XkbChangeEnabledControls (display->xdisplay,
XkbUseCoreKbd,
XkbAudibleBellMask,
meta_prefs_bell_is_audible ()
? XkbAudibleBellMask : 0);
if (visual_bell_auto_reset) {
XkbSetAutoResetControls (display->xdisplay,
XkbAudibleBellMask,
&mask,
&mask);
}
return TRUE;
}
#endif
return FALSE;
}
void
meta_bell_shutdown (MetaDisplay *display)
{
#ifdef HAVE_XKB
/* TODO: persist initial bell state in display, reset here */
XkbChangeEnabledControls (display->xdisplay,
XkbUseCoreKbd,
XkbAudibleBellMask,
XkbAudibleBellMask);
#endif
}
void
meta_bell_notify_frame_destroy (MetaFrame *frame)
{
if (frame->is_flashing)
g_idle_remove_by_data (frame);
}

35
src/bell.h Normal file
View File

@@ -0,0 +1,35 @@
/* Metacity visual bell */
/*
* Copyright (C) 2002 Sun Microsystems 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 <X11/Xlib.h>
#ifdef HAVE_XKB
#include <X11/XKBlib.h>
#endif
#include "display.h"
#include "frame.h"
#ifdef HAVE_XKB
void meta_bell_notify (MetaDisplay *display, XkbAnyEvent *xkb_ev);
#endif
void meta_bell_set_audible (MetaDisplay *display, gboolean audible);
gboolean meta_bell_init (MetaDisplay *display);
void meta_bell_shutdown (MetaDisplay *display);
void meta_bell_notify_frame_destroy (MetaFrame *frame);

View File

@@ -42,7 +42,8 @@ typedef enum
META_FRAME_MAXIMIZED = 1 << 9,
META_FRAME_ALLOWS_SHADE = 1 << 10,
META_FRAME_ALLOWS_MOVE = 1 << 11,
META_FRAME_FULLSCREEN = 1 << 12
META_FRAME_FULLSCREEN = 1 << 12,
META_FRAME_IS_FLASHING = 1 << 13
} MetaFrameFlags;
typedef enum
@@ -57,7 +58,13 @@ typedef enum
META_MENU_OP_STICK = 1 << 7,
META_MENU_OP_WORKSPACES = 1 << 8,
META_MENU_OP_MOVE = 1 << 9,
META_MENU_OP_RESIZE = 1 << 10
META_MENU_OP_RESIZE = 1 << 10,
META_MENU_OP_ABOVE = 1 << 11,
META_MENU_OP_UNABOVE = 1 << 12,
META_MENU_OP_MOVE_LEFT = 1 << 13,
META_MENU_OP_MOVE_RIGHT = 1 << 14,
META_MENU_OP_MOVE_UP = 1 << 15,
META_MENU_OP_MOVE_DOWN = 1 << 16
} MetaMenuOp;
typedef struct _MetaWindowMenu MetaWindowMenu;

1305
src/compositor.c Normal file

File diff suppressed because it is too large Load Diff

56
src/compositor.h Normal file
View File

@@ -0,0 +1,56 @@
/* Metacity compositing manager */
/*
* Copyright (C) 2003 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.
*/
#ifndef META_COMPOSITOR_H
#define META_COMPOSITOR_H
#include "util.h"
#include "display.h"
MetaCompositor* meta_compositor_new (MetaDisplay *display);
void meta_compositor_unref (MetaCompositor *compositor);
void meta_compositor_process_event (MetaCompositor *compositor,
XEvent *xevent,
MetaWindow *window);
void meta_compositor_add_window (MetaCompositor *compositor,
Window xwindow,
XWindowAttributes *attrs);
void meta_compositor_remove_window (MetaCompositor *compositor,
Window xwindow);
void meta_compositor_manage_screen (MetaCompositor *compositor,
MetaScreen *screen);
void meta_compositor_unmanage_screen (MetaCompositor *compositor,
MetaScreen *screen);
void meta_compositor_damage_window (MetaCompositor *compositor,
MetaWindow *window);
#endif /* META_COMPOSITOR_H */

File diff suppressed because it is too large Load Diff

View File

@@ -2,6 +2,7 @@
/*
* Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2003 Rob Adams
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -46,6 +47,22 @@ meta_core_get_client_size (Display *xdisplay,
*height = window->rect.height;
}
Window
meta_core_get_client_xwindow (Display *xdisplay,
Window frame_xwindow)
{
MetaDisplay *display;
MetaWindow *window;
display = meta_display_for_x_display (xdisplay);
window = meta_display_lookup_x_window (display, frame_xwindow);
if (window == NULL || window->frame == NULL)
meta_bug ("No such frame window 0x%lx!\n", frame_xwindow);
return window->xwindow;
}
MetaFrameFlags
meta_core_get_frame_flags (Display *xdisplay,
Window frame_xwindow)
@@ -570,17 +587,17 @@ meta_core_get_menu_accelerator (MetaMenuOp menu_op,
name = META_KEYBINDING_MAXIMIZE;
break;
case META_MENU_OP_UNSHADE:
name = META_KEYBINDING_TOGGLE_SHADE;
break;
case META_MENU_OP_SHADE:
name = META_KEYBINDING_TOGGLE_SHADE;
break;
case META_MENU_OP_UNSTICK:
name = META_KEYBINDING_TOGGLE_STICKY;
break;
case META_MENU_OP_STICK:
name = META_KEYBINDING_TOGGLE_STICKY;
break;
case META_MENU_OP_ABOVE:
case META_MENU_OP_UNABOVE:
name = META_KEYBINDING_TOGGLE_ABOVE;
break;
case META_MENU_OP_WORKSPACES:
switch (workspace)
{
@@ -628,6 +645,18 @@ meta_core_get_menu_accelerator (MetaMenuOp menu_op,
case META_MENU_OP_RESIZE:
name = META_KEYBINDING_BEGIN_RESIZE;
break;
case META_MENU_OP_MOVE_LEFT:
name = META_KEYBINDING_MOVE_WORKSPACE_LEFT;
break;
case META_MENU_OP_MOVE_RIGHT:
name = META_KEYBINDING_MOVE_WORKSPACE_RIGHT;
break;
case META_MENU_OP_MOVE_UP:
name = META_KEYBINDING_MOVE_WORKSPACE_UP;
break;
case META_MENU_OP_MOVE_DOWN:
name = META_KEYBINDING_MOVE_WORKSPACE_DOWN;
break;
}
if (name)
@@ -662,6 +691,7 @@ meta_core_begin_grab_op (Display *xdisplay,
Window frame_xwindow,
MetaGrabOp op,
gboolean pointer_already_grabbed,
int event_serial,
int button,
gulong modmask,
Time timestamp,
@@ -683,6 +713,7 @@ meta_core_begin_grab_op (Display *xdisplay,
return meta_display_begin_grab_op (display, screen, window,
op, pointer_already_grabbed,
event_serial,
button, modmask,
timestamp, root_x, root_y);
}

View File

@@ -31,6 +31,9 @@ void meta_core_get_client_size (Display *xdisplay,
int *width,
int *height);
Window meta_core_get_client_xwindow (Display *xdisplay,
Window frame_xwindow);
MetaFrameFlags meta_core_get_frame_flags (Display *xdisplay,
Window frame_xwindow);
MetaFrameType meta_core_get_frame_type (Display *xdisplay,
@@ -130,6 +133,7 @@ gboolean meta_core_begin_grab_op (Display *xdisplay,
Window frame_xwindow,
MetaGrabOp op,
gboolean pointer_already_grabbed,
int event_serial,
int button,
gulong modmask,
Time timestamp,
@@ -160,6 +164,8 @@ void meta_core_get_screen_size (Display *xdisplay,
*/
void meta_core_increment_event_serial (Display *display);
int meta_ui_get_last_event_serial (Display *xdisplay);
#endif

View File

@@ -23,6 +23,7 @@
#include "util.h"
#include "window.h"
#include "errors.h"
#include "workspace.h"
#include <sys/types.h>
#include <signal.h>
@@ -30,6 +31,7 @@
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
static void meta_window_present_delete_dialog (MetaWindow *window);
@@ -294,7 +296,8 @@ delete_ping_timeout_func (MetaDisplay *display,
GError *err;
int child_pid;
int outpipe;
char *argv[5];
char *argv[7];
char numbuf[32];
char *window_id_str;
GIOChannel *channel;
@@ -309,12 +312,16 @@ delete_ping_timeout_func (MetaDisplay *display,
}
window_id_str = g_strdup_printf ("0x%lx", window->xwindow);
sprintf (numbuf, "%d", window->screen->number);
argv[0] = METACITY_LIBEXECDIR"/metacity-dialog";
argv[1] = "--kill-window-question";
argv[2] = window->title;
argv[3] = window_id_str;
argv[4] = NULL;
argv[1] = "--screen";
argv[2] = numbuf;
argv[3] = "--kill-window-question";
argv[4] = window->title;
argv[5] = window_id_str;
argv[6] = NULL;
err = NULL;
if (!g_spawn_async_with_pipes ("/",
@@ -380,14 +387,24 @@ meta_window_delete (MetaWindow *window,
if (window->has_focus)
{
/* FIXME Clean this up someday
* http://bugzilla.gnome.org/show_bug.cgi?id=108706
*/
#if 0
/* This is unfortunately going to result in weirdness
* if the window doesn't respond to the delete event.
* I don't know how to avoid that though.
*/
meta_topic (META_DEBUG_FOCUS,
"Focusing top window because focus window %s was deleted/killed\n",
"Focusing MRU window because focus window %s was deleted/killed\n",
window->desc);
meta_screen_focus_top_window (window->screen, window);
meta_workspace_focus_mru_window (window->screen->active_workspace,
window);
#else
meta_topic (META_DEBUG_FOCUS,
"Not unfocusing %s on delete/kill\n",
window->desc);
#endif
}
else
{

File diff suppressed because it is too large Load Diff

View File

@@ -2,6 +2,8 @@
/*
* Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2002 Red Hat, Inc.
* Copyright (C) 2003 Rob Adams
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -35,6 +37,10 @@
#include <libsn/sn.h>
#endif
#ifdef HAVE_XSYNC
#include <X11/extensions/sync.h>
#endif
#define meta_XFree(p) do { if ((p)) XFree ((p)); } while (0)
/* this doesn't really belong here, oh well. */
@@ -48,6 +54,7 @@ struct _MetaRectangle
int height;
};
typedef struct MetaCompositor MetaCompositor;
typedef struct _MetaDisplay MetaDisplay;
typedef struct _MetaFrame MetaFrame;
typedef struct _MetaKeyBinding MetaKeyBinding;
@@ -115,10 +122,6 @@ struct _MetaDisplay
Atom atom_net_client_list_stacking;
Atom atom_net_wm_state_skip_taskbar;
Atom atom_net_wm_state_skip_pager;
Atom atom_win_workspace;
Atom atom_win_layer;
Atom atom_win_protocols;
Atom atom_win_supporting_wm_check;
Atom atom_net_wm_icon_name;
Atom atom_net_wm_icon;
Atom atom_net_wm_icon_geometry;
@@ -129,7 +132,6 @@ struct _MetaDisplay
Atom atom_net_active_window;
Atom atom_metacity_restart_message;
Atom atom_net_wm_strut;
Atom atom_win_hints;
Atom atom_metacity_reload_theme_message;
Atom atom_metacity_set_keybindings_message;
Atom atom_net_wm_state_hidden;
@@ -152,6 +154,8 @@ struct _MetaDisplay
Atom atom_net_wm_allowed_actions;
Atom atom_net_wm_action_move;
Atom atom_net_wm_action_resize;
Atom atom_net_wm_action_fullscreen;
Atom atom_net_wm_action_minimize;
Atom atom_net_wm_action_shade;
Atom atom_net_wm_action_stick;
Atom atom_net_wm_action_maximize_horz;
@@ -162,7 +166,16 @@ struct _MetaDisplay
Atom atom_net_wm_state_below;
Atom atom_net_startup_id;
Atom atom_metacity_toggle_verbose;
Atom atom_metacity_update_counter;
Atom atom_sync_counter;
Atom atom_gnome_panel_action;
Atom atom_gnome_panel_action_main_menu;
Atom atom_gnome_panel_action_run_dialog;
Atom atom_metacity_sentinel;
Atom atom_net_wm_strut_partial;
Atom atom_net_frame_extents;
Atom atom_net_request_frame_extents;
/* This is the actual window from focus events,
* not the one we last set
*/
@@ -172,11 +185,6 @@ struct _MetaDisplay
*/
MetaWindow *expected_focus_window;
/* Most recently focused list. Always contains all
* live windows.
*/
GList *mru_list;
guint static_gravity_works : 1;
/*< private-ish >*/
@@ -195,7 +203,6 @@ struct _MetaDisplay
Window no_focus_window;
/* for double click */
int double_click_time;
Time last_button_time;
Window last_button_xwindow;
int last_button_num;
@@ -224,27 +231,44 @@ struct _MetaDisplay
MetaScreen *grab_screen;
MetaWindow *grab_window;
Window grab_xwindow;
gulong grab_start_serial;
int grab_button;
int grab_initial_root_x;
int grab_initial_root_y;
int grab_current_root_x;
int grab_current_root_y;
int grab_anchor_root_x;
int grab_anchor_root_y;
MetaRectangle grab_anchor_window_pos;
int grab_latest_motion_x;
int grab_latest_motion_y;
gulong grab_mask;
guint grab_have_pointer : 1;
guint grab_have_keyboard : 1;
guint grab_wireframe_active : 1;
guint grab_was_cancelled : 1;
MetaRectangle grab_wireframe_rect;
MetaRectangle grab_initial_window_pos;
MetaRectangle grab_current_window_pos;
MetaResizePopup *grab_resize_popup;
GTimeVal grab_last_moveresize_time;
Time grab_motion_notify_time;
/* we use property updates as sentinels for certain window focus events
* to avoid some race conditions on EnterNotify events
*/
int sentinel_counter;
#ifdef HAVE_XKB
int xkb_base_event_type;
#endif
#ifdef HAVE_XSYNC
/* alarm monitoring client's _METACITY_UPDATE_COUNTER */
XSyncAlarm grab_update_alarm;
#endif
/* Keybindings stuff */
MetaKeyBinding *screen_bindings;
int n_screen_bindings;
MetaKeyBinding *window_bindings;
int n_window_bindings;
int min_keycode;
int max_keycode;
unsigned int min_keycode;
unsigned int max_keycode;
KeySym *keymap;
int keysyms_per_keycode;
XModifierKeymap *modmap;
@@ -273,13 +297,27 @@ struct _MetaDisplay
/* Managed by group-props.c */
MetaGroupPropHooks *group_prop_hooks;
/* Managed by compositor.c */
MetaCompositor *compositor;
#ifdef HAVE_STARTUP_NOTIFICATION
/* This is at the end in case someone doesn't include config.h before this file
* the results won't be catastrophic
*/
SnDisplay *sn_display;
#endif
#ifdef HAVE_XSYNC
int xsync_event_base;
int xsync_error_base;
#define META_DISPLAY_HAS_XSYNC(display) ((display)->xsync_event_base != 0)
#else
#define META_DISPLAY_HAS_XSYNC(display) FALSE
#endif
#ifdef HAVE_SHAPE
int shape_event_base;
int shape_error_base;
#define META_DISPLAY_HAS_SHAPE(display) ((display)->shape_event_base != 0)
#else
#define META_DISPLAY_HAS_SHAPE(display) FALSE
#endif
};
gboolean meta_display_open (const char *name);
@@ -331,6 +369,7 @@ gboolean meta_display_begin_grab_op (MetaDisplay *display,
MetaWindow *window,
MetaGrabOp op,
gboolean pointer_already_grabbed,
int event_serial,
int button,
gulong modmask,
Time timestamp,
@@ -345,9 +384,9 @@ void meta_display_ungrab_window_buttons (MetaDisplay *display,
Window xwindow);
void meta_display_grab_focus_window_button (MetaDisplay *display,
Window xwindow);
MetaWindow *window);
void meta_display_ungrab_focus_window_button (MetaDisplay *display,
Window xwindow);
MetaWindow *window);
/* make a request to ensure the event serial has changed */
void meta_display_increment_event_serial (MetaDisplay *display);
@@ -380,10 +419,10 @@ typedef enum
} MetaTabList;
GSList* meta_display_get_tab_list (MetaDisplay *display,
MetaTabList type,
MetaScreen *screen,
MetaWorkspace *workspace);
GList* meta_display_get_tab_list (MetaDisplay *display,
MetaTabList type,
MetaScreen *screen,
MetaWorkspace *workspace);
MetaWindow* meta_display_get_tab_next (MetaDisplay *display,
MetaTabList type,
@@ -399,12 +438,21 @@ MetaWindow* meta_display_get_tab_current (MetaDisplay *display,
int meta_resize_gravity_from_grab_op (MetaGrabOp op);
gboolean meta_grab_op_is_moving (MetaGrabOp op);
gboolean meta_grab_op_is_resizing (MetaGrabOp op);
gboolean meta_rectangle_intersect (MetaRectangle *src1,
MetaRectangle *src2,
MetaRectangle *dest);
gboolean meta_rectangle_equal (const MetaRectangle *src1,
const MetaRectangle *src2);
void meta_display_devirtualize_modifiers (MetaDisplay *display,
MetaVirtualModifier modifiers,
unsigned int *mask);
void meta_display_increment_focus_sentinel (MetaDisplay *display);
void meta_display_decrement_focus_sentinel (MetaDisplay *display);
gboolean meta_display_focus_sentinel_clear (MetaDisplay *display);
#endif

View File

@@ -409,5 +409,108 @@ meta_effects_draw_box_animation (MetaScreen *screen,
XFlush (context->screen->display->xdisplay);
}
void
meta_effects_begin_wireframe (MetaScreen *screen,
const MetaRectangle *rect)
{
/* Grab the X server to avoid screen dirt */
meta_display_grab (screen->display);
meta_ui_push_delay_exposes (screen->ui);
meta_effects_update_wireframe (screen, NULL, rect);
}
static void
draw_xor_rect (MetaScreen *screen,
const MetaRectangle *rect)
{
/* The lines in the center can't overlap the rectangle or each
* other, or the XOR gets reversed. So we have to draw things
* a bit oddly.
*/
XSegment segments[8];
int i;
#define LINE_WIDTH META_WIREFRAME_XOR_LINE_WIDTH
XDrawRectangle (screen->display->xdisplay,
screen->xroot,
screen->root_xor_gc,
rect->x, rect->y,
rect->width, rect->height);
/* Don't put lines inside small rectangles where they won't fit */
if (rect->width < (LINE_WIDTH * 4) ||
rect->height < (LINE_WIDTH * 4))
return;
/* Two vertical lines at 1/3 and 2/3 */
segments[0].x1 = rect->x + rect->width / 3;
segments[0].y1 = rect->y + LINE_WIDTH / 2 + LINE_WIDTH % 2;
segments[0].x2 = segments[0].x1;
segments[0].y2 = rect->y + rect->height - LINE_WIDTH / 2;
segments[1] = segments[0];
segments[1].x1 = rect->x + (rect->width / 3) * 2;
segments[1].x2 = segments[1].x1;
/* Now make two horizontal lines at 1/3 and 2/3, but not
* overlapping the verticals
*/
segments[2].x1 = rect->x + LINE_WIDTH / 2 + LINE_WIDTH % 2;
segments[2].x2 = segments[0].x1 - LINE_WIDTH / 2;
segments[2].y1 = rect->y + rect->height / 3;
segments[2].y2 = segments[2].y1;
segments[3] = segments[2];
segments[3].x1 = segments[2].x2 + LINE_WIDTH;
segments[3].x2 = segments[1].x1 - LINE_WIDTH / 2;
segments[4] = segments[3];
segments[4].x1 = segments[3].x2 + LINE_WIDTH;
segments[4].x2 = rect->x + rect->width - LINE_WIDTH / 2;
/* Second horizontal line is just like the first, but
* shifted down
*/
i = 5;
while (i < 8)
{
segments[i] = segments[i - 3];
segments[i].y1 = rect->y + (rect->height / 3) * 2;
segments[i].y2 = segments[i].y1;
++i;
}
XDrawSegments (screen->display->xdisplay,
screen->xroot,
screen->root_xor_gc,
segments,
G_N_ELEMENTS (segments));
}
void
meta_effects_update_wireframe (MetaScreen *screen,
const MetaRectangle *old_rect,
const MetaRectangle *new_rect)
{
if (old_rect)
draw_xor_rect (screen, old_rect);
if (new_rect)
draw_xor_rect (screen, new_rect);
XFlush (screen->display->xdisplay);
}
void
meta_effects_end_wireframe (MetaScreen *screen,
const MetaRectangle *old_rect)
{
meta_effects_update_wireframe (screen, old_rect, NULL);
meta_display_ungrab (screen->display);
meta_ui_pop_delay_exposes (screen->ui);
}

View File

@@ -41,4 +41,12 @@ void meta_effects_draw_box_animation (MetaScreen *screen,
double seconds_duration,
MetaBoxAnimType anim_type);
void meta_effects_begin_wireframe (MetaScreen *screen,
const MetaRectangle *rect);
void meta_effects_update_wireframe (MetaScreen *screen,
const MetaRectangle *old_rect,
const MetaRectangle *new_rect);
void meta_effects_end_wireframe (MetaScreen *screen,
const MetaRectangle *old_rect);
#endif /* META_EFFECTS_H */

View File

@@ -48,7 +48,6 @@ meta_fixed_tip_show (Display *xdisplay, int screen_number,
if (tip == NULL)
{
tip = gtk_window_new (GTK_WINDOW_POPUP);
#ifdef HAVE_GTK_MULTIHEAD
{
GdkScreen *gdk_screen;
@@ -59,10 +58,6 @@ meta_fixed_tip_show (Display *xdisplay, int screen_number,
screen_width = gdk_screen_get_width (gdk_screen);
screen_height = gdk_screen_get_height (gdk_screen);
}
#else
screen_width = gdk_screen_width ();
screen_height = gdk_screen_height ();
#endif
gtk_widget_set_app_paintable (tip, TRUE);
gtk_window_set_policy (GTK_WINDOW (tip), FALSE, FALSE, TRUE);

View File

@@ -2,6 +2,7 @@
/*
* Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2003 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
@@ -21,6 +22,7 @@
#include <config.h>
#include "frame.h"
#include "bell.h"
#include "errors.h"
#include "keybindings.h"
@@ -38,6 +40,7 @@ meta_window_ensure_frame (MetaWindow *window)
{
MetaFrame *frame;
XSetWindowAttributes attrs;
Visual *visual;
if (window->frame)
return;
@@ -58,9 +61,9 @@ meta_window_ensure_frame (MetaWindow *window)
frame->current_cursor = 0;
frame->mapped = FALSE;
frame->need_reapply_frame_shape = TRUE;
frame->is_flashing = FALSE;
attrs.event_mask = EVENT_MASK;
meta_verbose ("Framing window %s: visual %s default, depth %d default depth %d\n",
window->desc,
XVisualIDFromVisual (window->xvisual) ==
@@ -76,24 +79,25 @@ meta_window_ensure_frame (MetaWindow *window)
* e.g. DRI games can't be children of a parent that has the same
* visual as the client.
*/
frame->xwindow = XCreateWindow (window->display->xdisplay,
window->screen->xroot,
frame->rect.x,
frame->rect.y,
frame->rect.width,
frame->rect.height,
0,
window->screen->default_depth,
CopyFromParent,
window->screen->default_xvisual,
CWEventMask,
&attrs);
/* So our UI can find the window ID */
XFlush (window->display->xdisplay);
visual = 0;
/* XXX special case for depth 32 windows (assumed to be ARGB) */
if (window->depth == 32)
visual = window->xvisual;
frame->xwindow = meta_ui_create_frame_window (window->screen->ui,
window->display->xdisplay,
visual,
frame->rect.x,
frame->rect.y,
frame->rect.width,
frame->rect.height,
frame->window->screen->number);
meta_verbose ("Frame for %s is 0x%lx\n", frame->window->desc, frame->xwindow);
attrs.event_mask = EVENT_MASK;
XChangeWindowAttributes (window->display->xdisplay,
frame->xwindow, CWEventMask, &attrs);
meta_display_register_x_window (window->display, &frame->xwindow, window);
@@ -130,8 +134,6 @@ meta_window_ensure_frame (MetaWindow *window)
/* stick frame to the window */
window->frame = frame;
meta_ui_add_frame (window->screen->ui, frame->xwindow);
if (window->title)
meta_ui_set_frame_title (window->screen->ui,
window->frame->xwindow,
@@ -144,7 +146,9 @@ meta_window_ensure_frame (MetaWindow *window)
meta_ui_apply_frame_shape (frame->window->screen->ui,
frame->xwindow,
frame->rect.width,
frame->rect.height);
frame->rect.height,
frame->window->has_shape);
frame->need_reapply_frame_shape = FALSE;
meta_display_ungrab (window->display);
}
@@ -157,9 +161,11 @@ meta_window_destroy_frame (MetaWindow *window)
if (window->frame == NULL)
return;
meta_verbose ("Unframing window %s\n", window->desc);
frame = window->frame;
meta_ui_remove_frame (window->screen->ui, frame->xwindow);
meta_bell_notify_frame_destroy (frame);
/* Unparent the client window; it may be destroyed,
* thus the error trap.
@@ -183,6 +189,8 @@ meta_window_destroy_frame (MetaWindow *window)
window->frame->rect.y);
meta_error_trap_pop (window->display, FALSE);
meta_ui_destroy_frame_window (window->screen->ui, frame->xwindow);
meta_display_unregister_x_window (window->display,
frame->xwindow);
@@ -191,9 +199,6 @@ meta_window_destroy_frame (MetaWindow *window)
/* Move keybindings to window instead of frame */
meta_window_grab_keys (window);
/* should we push an error trap? */
XDestroyWindow (window->display->xdisplay, frame->xwindow);
g_free (frame);
/* Put our state back where it should be */
@@ -255,6 +260,9 @@ meta_frame_get_flags (MetaFrame *frame)
if (frame->window->fullscreen)
flags |= META_FRAME_FULLSCREEN;
if (frame->is_flashing)
flags |= META_FRAME_IS_FLASHING;
return flags;
}
@@ -277,6 +285,20 @@ meta_frame_calc_geometry (MetaFrame *frame,
*geomp = geom;
}
static void
update_shape (MetaFrame *frame)
{
if (frame->need_reapply_frame_shape)
{
meta_ui_apply_frame_shape (frame->window->screen->ui,
frame->xwindow,
frame->rect.width,
frame->rect.height,
frame->window->has_shape);
frame->need_reapply_frame_shape = FALSE;
}
}
void
meta_frame_sync_to_window (MetaFrame *frame,
int resize_gravity,
@@ -284,8 +306,11 @@ meta_frame_sync_to_window (MetaFrame *frame,
gboolean need_resize)
{
if (!(need_move || need_resize))
return;
{
update_shape (frame);
return;
}
meta_topic (META_DEBUG_GEOMETRY,
"Syncing frame geometry %d,%d %dx%d (SE: %d,%d)\n",
frame->rect.x, frame->rect.y,
@@ -301,36 +326,24 @@ meta_frame_sync_to_window (MetaFrame *frame,
frame->rect.width,
frame->rect.height);
/* Done before the window resize, because doing it before means
* part of the window being resized becomes unshaped, which may
* be sort of hard to see with bg = None. If we did it after
* window resize, part of the window being resized would become
* shaped, which might be more visible.
*/
meta_ui_apply_frame_shape (frame->window->screen->ui,
frame->xwindow,
frame->rect.width,
frame->rect.height);
/* we need new shape if we're resized */
frame->need_reapply_frame_shape = TRUE;
}
/* Done before the window resize, because doing it before means
* part of the window being resized becomes unshaped, which may
* be sort of hard to see with bg = None. If we did it after
* window resize, part of the window being resized would become
* shaped, which might be more visible.
*/
update_shape (frame);
if (need_move && need_resize)
XMoveResizeWindow (frame->window->display->xdisplay,
frame->xwindow,
frame->rect.x,
frame->rect.y,
frame->rect.width,
frame->rect.height);
else if (need_move)
XMoveWindow (frame->window->display->xdisplay,
frame->xwindow,
frame->rect.x,
frame->rect.y);
else if (need_resize)
XResizeWindow (frame->window->display->xdisplay,
frame->xwindow,
frame->rect.width,
frame->rect.height);
meta_ui_move_resize_frame (frame->window->screen->ui,
frame->xwindow,
frame->rect.x,
frame->rect.y,
frame->rect.width,
frame->rect.height);
if (need_resize)
{
@@ -354,8 +367,9 @@ meta_frame_queue_draw (MetaFrame *frame)
frame->xwindow);
}
void meta_frame_set_screen_cursor (MetaFrame *frame,
MetaCursor cursor)
void
meta_frame_set_screen_cursor (MetaFrame *frame,
MetaCursor cursor)
{
Cursor xcursor;
if (cursor == frame->current_cursor)

View File

@@ -57,6 +57,8 @@ struct _MetaFrame
int bottom_height;
guint mapped : 1;
guint need_reapply_frame_shape : 1;
guint is_flashing : 1; /* used by the visual bell flash */
};
void meta_window_ensure_frame (MetaWindow *window);

View File

@@ -2,6 +2,7 @@
/*
* Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2003 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
@@ -452,7 +453,6 @@ meta_frames_calc_geometry (MetaFrames *frames,
MetaFrames*
meta_frames_new (int screen_number)
{
#ifdef HAVE_GTK_MULTIHEAD
GdkScreen *screen;
screen = gdk_display_get_screen (gdk_display_get_default (),
@@ -460,32 +460,25 @@ meta_frames_new (int screen_number)
return g_object_new (META_TYPE_FRAMES,
"screen", screen,
NULL);
#else
return g_object_new (META_TYPE_FRAMES,
NULL);
#endif
NULL);
}
void
meta_frames_manage_window (MetaFrames *frames,
Window xwindow)
Window xwindow,
GdkWindow *window)
{
MetaUIFrame *frame;
g_assert (window);
frame = g_new (MetaUIFrame, 1);
frame->window = gdk_window_foreign_new (xwindow);
frame->window = window;
if (frame->window == NULL)
{
g_free (frame);
meta_bug ("Frame 0x%lx doesn't exist\n", xwindow);
return;
}
gdk_window_set_user_data (frame->window, frames);
gtk_style_set_background (GTK_WIDGET (frames)->style,
frame->window, GTK_STATE_NORMAL);
/* Don't set event mask here, it's in frame.c */
@@ -495,6 +488,7 @@ meta_frames_manage_window (MetaFrames *frames,
frame->text_height = -1;
frame->title = NULL;
frame->expose_delayed = FALSE;
frame->shape_applied = FALSE;
frame->prelit_control = META_FRAME_CONTROL_NONE;
meta_core_grab_buttons (gdk_display, frame->xwindow);
@@ -526,7 +520,7 @@ meta_frames_unmanage_window (MetaFrames *frames,
g_hash_table_remove (frames->frames, &frame->xwindow);
g_object_unref (G_OBJECT (frame->window));
gdk_window_destroy (frame->window);
if (frame->layout)
g_object_unref (G_OBJECT (frame->layout));
@@ -664,7 +658,8 @@ void
meta_frames_apply_shapes (MetaFrames *frames,
Window xwindow,
int new_window_width,
int new_window_height)
int new_window_height,
gboolean window_has_shape)
{
#ifdef HAVE_SHAPE
/* Apply shapes as if window had new_window_width, new_window_height */
@@ -685,10 +680,25 @@ meta_frames_apply_shapes (MetaFrames *frames,
if (!(fgeom.top_left_corner_rounded ||
fgeom.top_right_corner_rounded ||
fgeom.bottom_left_corner_rounded ||
fgeom.bottom_right_corner_rounded))
fgeom.bottom_right_corner_rounded ||
window_has_shape))
{
XShapeCombineMask (gdk_display, frame->xwindow,
ShapeBounding, 0, 0, None, ShapeSet);
if (frame->shape_applied)
{
meta_topic (META_DEBUG_SHAPES,
"Unsetting shape mask on frame 0x%lx\n",
frame->xwindow);
XShapeCombineMask (gdk_display, frame->xwindow,
ShapeBounding, 0, 0, None, ShapeSet);
frame->shape_applied = FALSE;
}
else
{
meta_topic (META_DEBUG_SHAPES,
"Frame 0x%lx still doesn't need a shape mask\n",
frame->xwindow);
}
return; /* nothing to do */
}
@@ -804,12 +814,118 @@ meta_frames_apply_shapes (MetaFrames *frames,
XSubtractRegion (window_xregion, corners_xregion, window_xregion);
XShapeCombineRegion (gdk_display, frame->xwindow,
ShapeBounding, 0, 0, window_xregion, ShapeSet);
XDestroyRegion (corners_xregion);
if (window_has_shape)
{
/* The client window is oclock or something and has a shape
* mask. To avoid a round trip to get its shape region, we
* create a fake window that's never mapped, build up our shape
* on that, then combine. Wasting the window is assumed cheaper
* than a round trip, but who really knows for sure.
*/
XSetWindowAttributes attrs;
Window shape_window;
Window client_window;
Region client_xregion;
GdkScreen *screen;
int screen_number;
meta_topic (META_DEBUG_SHAPES,
"Frame 0x%lx needs to incorporate client shape\n",
frame->xwindow);
screen = gtk_widget_get_screen (GTK_WIDGET (frames));
screen_number = gdk_x11_screen_get_screen_number (screen);
attrs.override_redirect = True;
shape_window = XCreateWindow (gdk_display,
RootWindow (gdk_display, screen_number),
-5000, -5000,
new_window_width,
new_window_height,
0,
CopyFromParent,
CopyFromParent,
CopyFromParent,
CWOverrideRedirect,
&attrs);
/* Copy the client's shape to the temporary shape_window */
client_window = meta_core_get_client_xwindow (gdk_display,
frame->xwindow);
XShapeCombineShape (gdk_display, shape_window, ShapeBounding,
fgeom.left_width,
fgeom.top_height,
client_window,
ShapeBounding,
ShapeSet);
/* Punch the client area out of the normal frame shape,
* then union it with the shape_window's existing shape
*/
client_xregion = XCreateRegion ();
xrect.x = fgeom.left_width;
xrect.y = fgeom.top_height;
xrect.width = new_window_width - fgeom.right_width - xrect.x;
xrect.height = new_window_height - fgeom.bottom_height - xrect.y;
XUnionRectWithRegion (&xrect, client_xregion, client_xregion);
XSubtractRegion (window_xregion, client_xregion, window_xregion);
XDestroyRegion (client_xregion);
XShapeCombineRegion (gdk_display, shape_window,
ShapeBounding, 0, 0, window_xregion, ShapeUnion);
/* Now copy shape_window shape to the real frame */
XShapeCombineShape (gdk_display, frame->xwindow, ShapeBounding,
0, 0,
shape_window,
ShapeBounding,
ShapeSet);
XDestroyWindow (gdk_display, shape_window);
}
else
{
/* No shape on the client, so just do simple stuff */
meta_topic (META_DEBUG_SHAPES,
"Frame 0x%lx has shaped corners\n",
frame->xwindow);
XShapeCombineRegion (gdk_display, frame->xwindow,
ShapeBounding, 0, 0, window_xregion, ShapeSet);
}
frame->shape_applied = TRUE;
XDestroyRegion (window_xregion);
XDestroyRegion (corners_xregion);
#endif
#endif /* HAVE_SHAPE */
}
void
meta_frames_move_resize_frame (MetaFrames *frames,
Window xwindow,
int x,
int y,
int width,
int height)
{
MetaUIFrame *frame = meta_frames_lookup_window (frames, xwindow);
int old_width, old_height;
gdk_drawable_get_size (frame->window, &old_width, &old_height);
gdk_window_move_resize (frame->window, x, y, width, height);
if (old_width != width || old_height != height)
gdk_window_invalidate_rect (frame->window, NULL, FALSE);
}
void
@@ -947,11 +1063,8 @@ show_tip_now (MetaFrames *frames)
/* get conversion delta for root-to-frame coords */
dx = root_x - x;
dy = root_y - y;
#ifdef HAVE_GTK_MULTIHEAD
screen_number = gdk_screen_get_number (gtk_widget_get_screen (GTK_WIDGET (frames)));
#else
screen_number = DefaultScreen (gdk_display);
#endif
meta_fixed_tip_show (gdk_display,
screen_number,
rect->x + dx,
@@ -1145,6 +1258,7 @@ meta_frames_button_press_event (GtkWidget *widget,
frame->xwindow,
op,
TRUE,
meta_ui_get_last_event_serial (gdk_display),
event->button,
0,
event->time,
@@ -1224,6 +1338,7 @@ meta_frames_button_press_event (GtkWidget *widget,
frame->xwindow,
op,
TRUE,
meta_ui_get_last_event_serial (gdk_display),
event->button,
0,
event->time,
@@ -1243,6 +1358,7 @@ meta_frames_button_press_event (GtkWidget *widget,
frame->xwindow,
META_GRAB_OP_MOVING,
TRUE,
meta_ui_get_last_event_serial (gdk_display),
event->button,
0,
event->time,
@@ -1482,6 +1598,7 @@ meta_frames_motion_notify_event (GtkWidget *widget,
{
MetaUIFrame *frame;
MetaFrames *frames;
MetaGrabOp grab_op;
frames = META_FRAMES (widget);
@@ -1492,16 +1609,43 @@ meta_frames_motion_notify_event (GtkWidget *widget,
clear_tip (frames);
frames->last_motion_frame = frame;
grab_op = meta_core_get_grab_op (gdk_display);
switch (meta_core_get_grab_op (gdk_display))
switch (grab_op)
{
case META_GRAB_OP_CLICKING_MENU:
case META_GRAB_OP_CLICKING_DELETE:
case META_GRAB_OP_CLICKING_MINIMIZE:
case META_GRAB_OP_CLICKING_MAXIMIZE:
case META_GRAB_OP_CLICKING_UNMAXIMIZE:
{
MetaFrameControl control;
int x, y;
gdk_window_get_pointer (frame->window, &x, &y, NULL);
/* Control is set to none unless it matches
* the current grab
*/
control = get_control (frames, frame, x, y);
if (! ((control == META_FRAME_CONTROL_MENU &&
grab_op == META_GRAB_OP_CLICKING_MENU) ||
(control == META_FRAME_CONTROL_DELETE &&
grab_op == META_GRAB_OP_CLICKING_DELETE) ||
(control == META_FRAME_CONTROL_MINIMIZE &&
grab_op == META_GRAB_OP_CLICKING_MINIMIZE) ||
(control == META_FRAME_CONTROL_MAXIMIZE &&
(grab_op == META_GRAB_OP_CLICKING_MAXIMIZE ||
grab_op == META_GRAB_OP_CLICKING_UNMAXIMIZE))))
control = META_FRAME_CONTROL_NONE;
/* Update prelit control and cursor */
meta_frames_update_prelit_control (frames, frame, control);
/* No tooltip while in the process of clicking */
}
break;
case META_GRAB_OP_NONE:
{
MetaFrameControl control;
@@ -1549,7 +1693,7 @@ meta_frames_expose_event (GtkWidget *widget,
MetaFrames *frames;
frames = META_FRAMES (widget);
frame = meta_frames_lookup_window (frames, GDK_WINDOW_XID (event->window));
if (frame == NULL)
return FALSE;
@@ -1589,6 +1733,7 @@ meta_frames_paint_to_drawable (MetaFrames *frames,
int n_areas;
int screen_width, screen_height;
MetaButtonLayout button_layout;
MetaGrabOp grab_op;
widget = GTK_WIDGET (frames);
@@ -1600,53 +1745,47 @@ meta_frames_paint_to_drawable (MetaFrames *frames,
++i;
}
grab_frame = meta_core_get_grab_frame (gdk_display);
grab_op = meta_core_get_grab_op (gdk_display);
if (grab_frame != frame->xwindow)
grab_op = META_GRAB_OP_NONE;
/* Set prelight state */
switch (frame->prelit_control)
{
case META_FRAME_CONTROL_MENU:
button_states[META_BUTTON_TYPE_MENU] = META_BUTTON_STATE_PRELIGHT;
if (grab_op == META_GRAB_OP_CLICKING_MENU)
button_states[META_BUTTON_TYPE_MENU] = META_BUTTON_STATE_PRESSED;
else
button_states[META_BUTTON_TYPE_MENU] = META_BUTTON_STATE_PRELIGHT;
break;
case META_FRAME_CONTROL_MINIMIZE:
button_states[META_BUTTON_TYPE_MINIMIZE] = META_BUTTON_STATE_PRELIGHT;
if (grab_op == META_GRAB_OP_CLICKING_MINIMIZE)
button_states[META_BUTTON_TYPE_MINIMIZE] = META_BUTTON_STATE_PRESSED;
else
button_states[META_BUTTON_TYPE_MINIMIZE] = META_BUTTON_STATE_PRELIGHT;
break;
case META_FRAME_CONTROL_MAXIMIZE:
if (grab_op == META_GRAB_OP_CLICKING_MAXIMIZE)
button_states[META_BUTTON_TYPE_MAXIMIZE] = META_BUTTON_STATE_PRESSED;
else
button_states[META_BUTTON_TYPE_MAXIMIZE] = META_BUTTON_STATE_PRELIGHT;
break;
case META_FRAME_CONTROL_UNMAXIMIZE:
button_states[META_BUTTON_TYPE_MAXIMIZE] = META_BUTTON_STATE_PRELIGHT;
if (grab_op == META_GRAB_OP_CLICKING_UNMAXIMIZE)
button_states[META_BUTTON_TYPE_MAXIMIZE] = META_BUTTON_STATE_PRESSED;
else
button_states[META_BUTTON_TYPE_MAXIMIZE] = META_BUTTON_STATE_PRELIGHT;
break;
case META_FRAME_CONTROL_DELETE:
button_states[META_BUTTON_TYPE_CLOSE] = META_BUTTON_STATE_PRELIGHT;
if (grab_op == META_GRAB_OP_CLICKING_DELETE)
button_states[META_BUTTON_TYPE_CLOSE] = META_BUTTON_STATE_PRESSED;
else
button_states[META_BUTTON_TYPE_CLOSE] = META_BUTTON_STATE_PRELIGHT;
break;
default:
break;
}
grab_frame = meta_core_get_grab_frame (gdk_display);
if (frame->xwindow == grab_frame)
{
switch (meta_core_get_grab_op (gdk_display))
{
case META_GRAB_OP_CLICKING_MENU:
button_states[META_BUTTON_TYPE_MENU] =
META_BUTTON_STATE_PRESSED;
break;
case META_GRAB_OP_CLICKING_DELETE:
button_states[META_BUTTON_TYPE_CLOSE] =
META_BUTTON_STATE_PRESSED;
break;
case META_GRAB_OP_CLICKING_MAXIMIZE:
case META_GRAB_OP_CLICKING_UNMAXIMIZE:
button_states[META_BUTTON_TYPE_MAXIMIZE] =
META_BUTTON_STATE_PRESSED;
break;
case META_GRAB_OP_CLICKING_MINIMIZE:
button_states[META_BUTTON_TYPE_MINIMIZE] =
META_BUTTON_STATE_PRESSED;
break;
default:
break;
}
}
/* Map button function states to button position states */
button_states[META_BUTTON_TYPE_LEFT_LEFT_BACKGROUND] =
@@ -1975,6 +2114,13 @@ get_control (MetaFrames *frames,
void
meta_frames_push_delay_exposes (MetaFrames *frames)
{
if (frames->expose_delay_count == 0)
{
/* Make sure we've repainted things */
gdk_window_process_all_updates ();
XFlush (gdk_display);
}
frames->expose_delay_count += 1;
}

View File

@@ -72,7 +72,8 @@ struct _MetaUIFrame
int text_height;
char *title; /* NULL once we have a layout */
guint expose_delayed : 1;
guint shape_applied : 1;
/* FIXME get rid of this, it can just be in the MetaFrames struct */
MetaFrameControl prelit_control;
};
@@ -102,7 +103,8 @@ GType meta_frames_get_type (void) G_GNUC_CONST;
MetaFrames *meta_frames_new (int screen_number);
void meta_frames_manage_window (MetaFrames *frames,
Window xwindow);
Window xwindow,
GdkWindow *window);
void meta_frames_unmanage_window (MetaFrames *frames,
Window xwindow);
void meta_frames_set_title (MetaFrames *frames,
@@ -127,8 +129,14 @@ void meta_frames_unflicker_bg (MetaFrames *frames,
void meta_frames_apply_shapes (MetaFrames *frames,
Window xwindow,
int new_window_width,
int new_window_height);
int new_window_height,
gboolean window_has_shape);
void meta_frames_move_resize_frame (MetaFrames *frames,
Window xwindow,
int x,
int y,
int width,
int height);
void meta_frames_queue_draw (MetaFrames *frames,
Window xwindow);

View File

@@ -2,6 +2,7 @@
/*
* Copyright (C) 2002 Red Hat Inc.
* Copyright (C) 2003 Rob Adams
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -105,67 +106,71 @@ meta_window_get_group (MetaWindow *window)
{
if (window->unmanaging)
return NULL;
if (window->cached_group == NULL)
g_assert (window->group != NULL);
return window->group;
}
void
meta_window_compute_group (MetaWindow* window)
{
MetaGroup *group;
/* use window->xwindow if no window->xgroup_leader */
group = NULL;
if (window->display->groups_by_leader)
{
MetaGroup *group;
/* use window->xwindow if no window->xgroup_leader */
group = NULL;
if (window->display->groups_by_leader)
{
if (window->xgroup_leader != None)
group = g_hash_table_lookup (window->display->groups_by_leader,
&window->xgroup_leader);
else
group = g_hash_table_lookup (window->display->groups_by_leader,
&window->xwindow);
}
if (group != NULL)
{
window->cached_group = group;
group->refcount += 1;
}
if (window->xgroup_leader != None)
group = g_hash_table_lookup (window->display->groups_by_leader,
&window->xgroup_leader);
else
{
if (window->xgroup_leader != None)
group = meta_group_new (window->display,
window->xgroup_leader);
else
group = meta_group_new (window->display,
window->xwindow);
group = g_hash_table_lookup (window->display->groups_by_leader,
&window->xwindow);
}
if (group != NULL)
{
window->group = group;
group->refcount += 1;
}
else
{
if (window->xgroup_leader != None)
group = meta_group_new (window->display,
window->xgroup_leader);
else
group = meta_group_new (window->display,
window->xwindow);
window->cached_group = group;
}
window->cached_group->windows = g_slist_prepend (window->cached_group->windows,
window);
meta_topic (META_DEBUG_GROUPS,
"Adding %s to group with leader 0x%lx\n",
window->desc, group->group_leader);
window->group = group;
}
return window->cached_group;
window->group->windows = g_slist_prepend (window->group->windows,
window);
meta_topic (META_DEBUG_GROUPS,
"Adding %s to group with leader 0x%lx\n",
window->desc, group->group_leader);
}
static void
remove_window_from_group (MetaWindow *window)
{
if (window->cached_group != NULL)
if (window->group != NULL)
{
meta_topic (META_DEBUG_GROUPS,
"Removing %s from group with leader 0x%lx\n",
window->desc, window->cached_group->group_leader);
window->desc, window->group->group_leader);
window->cached_group->windows =
g_slist_remove (window->cached_group->windows,
window->group->windows =
g_slist_remove (window->group->windows,
window);
meta_group_unref (window->cached_group);
window->cached_group = NULL;
meta_group_unref (window->group);
window->group = NULL;
}
}
@@ -173,7 +178,7 @@ void
meta_window_group_leader_changed (MetaWindow *window)
{
remove_window_from_group (window);
meta_window_get_group (window);
meta_window_compute_group (window);
}
void
@@ -255,4 +260,5 @@ meta_group_property_notify (MetaGroup *group,
event->xproperty.atom);
return TRUE;
}

View File

@@ -26,6 +26,7 @@
/* note, can return NULL */
MetaGroup* meta_window_get_group (MetaWindow *window);
void meta_window_compute_group (MetaWindow* window);
void meta_window_shutdown_group (MetaWindow *window);
void meta_window_group_leader_changed (MetaWindow *window);

View File

@@ -46,7 +46,7 @@ get_fallback_icons (MetaScreen *screen,
static gboolean
find_largest_sizes (gulong *data,
int nitems,
gulong nitems,
int *width,
int *height)
{
@@ -81,7 +81,7 @@ find_largest_sizes (gulong *data,
static gboolean
find_best_size (gulong *data,
int nitems,
gulong nitems,
int ideal_width,
int ideal_height,
int *width,
@@ -520,6 +520,7 @@ meta_icon_cache_init (MetaIconCache *icon_cache)
icon_cache->origin = USING_NO_ICON;
icon_cache->prev_pixmap = None;
icon_cache->prev_mask = None;
#if 0
icon_cache->icon = NULL;
icon_cache->mini_icon = NULL;

File diff suppressed because it is too large Load Diff

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