Compare commits

...

439 Commits

Author SHA1 Message Date
Thomas James Alexander Thurman
ae6032e58e 2.25.89 release.
svn path=/trunk/; revision=4066
2008-12-26 18:14:40 +00:00
Jorge Gonzalez Gonzalez
c4d7e0568f Updated Spanish translation
svn path=/trunk/; revision=4065
2008-12-26 11:45:07 +00:00
Thomas James Alexander Thurman
c311e96b63 alt-F10 toggles maximisation, alt-F5 only restores. Also rename
* src/include/all-keybindings.h: alt-F10 toggles maximisation,
          alt-F5 only restores.  Also rename "unmaximize" to "restore".
	* src/ui/frames.c: Rename "unmaximize" to "restore".
          Closes #343824.


svn path=/trunk/; revision=4064
2008-12-25 16:53:33 +00:00
Frederic Peters
b66fbc0369 added call to g_thread_init(), as ORBit2 stopped doing it and Metacity is
* src/core/main.c: (main): added call to g_thread_init(), as ORBit2
stopped doing it and Metacity is using gconf; closes #565517.


svn path=/trunk/; revision=4063
2008-12-25 13:06:00 +00:00
Thomas James Alexander Thurman
151ddc08ec add screenshot commands which had mistakenly been removed; closes #564343,
* src/metacity.schemas.in.in: add screenshot commands which had
          mistakenly been removed; closes #564343, Launchpad bug 298463,
          Red Hat bug 474635, and probably others.


svn path=/trunk/; revision=4062
2008-12-24 20:39:00 +00:00
Thomas James Alexander Thurman
b81c7c48d5 fix move_to_corner_se
* src/include/all-keybindings.h: fix move_to_corner_se


svn path=/trunk/; revision=4061
2008-12-24 06:03:56 +00:00
Thomas James Alexander Thurman
01027006a7 windows which attempt to present themselves but are offscreen end up
* src/core/window.c: windows which attempt to present themselves
          but are offscreen end up demanding attention, unless they
          are transient, when they move to the current workspace
          as before.  Closes #482354.


svn path=/trunk/; revision=4060
2008-12-21 05:35:30 +00:00
Thomas James Alexander Thurman
38faa8fe10 when the user double-clicks the title bar, end the grab op. Closes
* src/ui/frames.c: when the user double-clicks the title bar,
	  end the grab op.  Closes #401028.


svn path=/trunk/; revision=4059
2008-12-19 12:47:11 +00:00
Thomas James Alexander Thurman
9abdc6c0fa Post-release bump to 2.25.89.
svn path=/trunk/; revision=4058
2008-12-16 01:40:23 +00:00
Thomas James Alexander Thurman
34b483ed75 2.25.55 release.
svn path=/trunk/; revision=4056
2008-12-16 01:36:00 +00:00
Thomas James Alexander Thurman
c48c5e44bd fix build on Solaris. Closes #564123.
* configure.in: fix build on Solaris.  Closes #564123.


svn path=/trunk/; revision=4055
2008-12-16 01:35:30 +00:00
Luca Ferretti
b943a74476 Imported updated translation from gnome-2-24 branch.
2008-12-12  Luca Ferretti  <elle.uca@libero.it>

	* it.po: Imported updated translation from gnome-2-24 branch.

svn path=/trunk/; revision=4054
2008-12-12 12:39:46 +00:00
Priit Laes
e1e5cc8f42 Translation updated by Mattias Põldaru
2008-12-08  Priit Laes  <plaes at svn dot gnome dot org>

	* et.po: Translation updated by Mattias Põldaru

svn path=/trunk/; revision=4053
2008-12-08 08:35:17 +00:00
Thomas James Alexander Thurman
6e1ed9ad55 Post-release bump to 2.25.55.
svn path=/trunk/; revision=4052
2008-12-02 09:30:37 +00:00
Thomas James Alexander Thurman
dd2370d9dd 2.25.34 release.
svn path=/trunk/; revision=4050
2008-12-02 09:26:21 +00:00
Thomas James Alexander Thurman
45f2ec5f64 patches to fixes for -Wall. Closes #562939.
* src/core/iconcache.c: patches to fixes for -Wall.  Closes #562939.


svn path=/trunk/; revision=4049
2008-12-02 08:15:00 +00:00
Thomas James Alexander Thurman
e7a69b6a13 Post-release bump to 2.25.34.
svn path=/trunk/; revision=4048
2008-12-01 23:01:20 +00:00
Thomas James Alexander Thurman
10b12f24f0 2.25.21 release.
svn path=/trunk/; revision=4046
2008-12-01 22:56:19 +00:00
Thomas James Alexander Thurman
3b1e91342e gnome-doc-tools version doesn't need to be so high. disable the entire
* configure.in: gnome-doc-tools version doesn't need to be so high.
	* src/compositor/compositor-xrender.c: disable the entire file if the
          compositor is disabled.
	* src/core/async-getprop.[ch]: fixes for -Wall
	* src/core/iconcache.c: fixes for -Wall
	* src/core/testasyncgetprop.c: fixes for -Wall
	* src/core/xprops.c: fixes for -Wall


svn path=/trunk/; revision=4045
2008-12-01 22:54:57 +00:00
Thomas James Alexander Thurman
e7cef5bbcb linked language codes to po files print revision url
* tools/announce-wrangler.py: linked language codes to po files
	* tools/commit-wrangler.py: print revision url


svn path=/trunk/; revision=4044
2008-11-26 16:38:17 +00:00
Thomas James Alexander Thurman
6ddec0d855 renamed ini file rewriting in terms of moap
* tools/announce-wrangler.py: renamed ini file
	* tools/commit-wrangler.py: rewriting in terms of moap


svn path=/trunk/; revision=4043
2008-11-26 05:28:02 +00:00
Thomas James Alexander Thurman
c0d90e5b76 Post-release bump to 2.25.21.
svn path=/trunk/; revision=4042
2008-11-25 23:29:08 +00:00
Thomas James Alexander Thurman
6c22a997e6 2.25.13 release.
svn path=/trunk/; revision=4040
2008-11-25 23:22:01 +00:00
Thomas James Alexander Thurman
945c9cb8e0 script to produce announcements
* tools/announce-wrangler.py (added): script to produce announcements


svn path=/trunk/; revision=4039
2008-11-25 23:20:46 +00:00
Thomas James Alexander Thurman
cf2206352f add casts (#562106)
* src/core/xprops.c: add casts (#562106)


svn path=/trunk/; revision=4038
2008-11-25 23:18:08 +00:00
Thomas James Alexander Thurman
4c5f125a6a change to standard description.
* metacity.doap: change to standard description.


svn path=/trunk/; revision=4037
2008-11-25 21:59:25 +00:00
Jorge Gonzalez Gonzalez
1fd45f10a2 Updated Spanish translation
svn path=/trunk/; revision=4036
2008-11-23 22:24:32 +00:00
Thomas James Alexander Thurman
3592f8e92e Post-release bump to 2.25.13.
svn path=/trunk/; revision=4035
2008-11-23 22:03:37 +00:00
Thomas James Alexander Thurman
036fe284c2 2.25.8 release.
svn path=/trunk/; revision=4033
2008-11-23 21:59:32 +00:00
Thomas James Alexander Thurman
a1cc5fea1f add new bindings file
* po/POTFILES.in: add new bindings file


svn path=/trunk/; revision=4032
2008-11-23 21:55:33 +00:00
Thomas James Alexander Thurman
9442d21f44 2.25.8 release.
svn path=/trunk/; revision=4031
2008-11-23 21:43:36 +00:00
Thomas James Alexander Thurman
a0cd86d2ac 2.25.8 release.
svn path=/trunk/; revision=4030
2008-11-23 21:37:08 +00:00
Thomas James Alexander Thurman
157aa0af6d reviewed by: Thomas Thurman
* src/Makefile.am: reorder compiler flags so local includes come last.
	  Closes #562033.


svn path=/trunk/; revision=4029
2008-11-23 20:29:18 +00:00
Thomas James Alexander Thurman
88cd978837 reviewed by: Thomas Thurman
* configure.in: only accept --enable-compositor if we find we can
	  actually composite.


svn path=/trunk/; revision=4028
2008-11-23 20:23:57 +00:00
Thomas James Alexander Thurman
e146c24483 added
svn path=/trunk/; revision=4027
2008-11-23 20:05:13 +00:00
Thomas James Alexander Thurman
41b6f0803e remove apparently spurious warnings about operations on window "none"
* src/core/display.c: remove apparently spurious warnings about
	operations on window "none"


svn path=/trunk/; revision=4026
2008-11-23 18:53:55 +00:00
Thomas James Alexander Thurman
68ac59ff6d Set -ansi so people stop complaining about C99.
* configure.in: Set -ansi so people stop complaining about C99.


svn path=/trunk/; revision=4025
2008-11-22 19:47:02 +00:00
Thomas James Alexander Thurman
c2abbce2ed fix stupid infinite loop when GConf is turned off.
* src/core/prefs.c: fix stupid infinite loop when GConf is turned off.


svn path=/trunk/; revision=4024
2008-11-22 19:34:03 +00:00
Thomas James Alexander Thurman
38cd6a6c1f fix two places where there was a warning if GConf was turned off.
* src/core/prefs.c: fix two places where there was a warning
	if GConf was turned off.


svn path=/trunk/; revision=4023
2008-11-22 19:10:50 +00:00
Thomas Thurman
ac365b4ead (Apologies for huge commit; these were done on a transatlantic flight. This is why we need bzr.)
2008-11-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/all-keybindings.h: "backward", not "backwards" throughout.

2008-11-20  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: turned on -Wall and -Werror in order to
          trap as many problems as possible.
        * src/ui/resizepopup.c: added correct #include.
        * src/ui/theme-viewer.c: initialised variable.
        * src/core/xprops.c: corrected cast.
        * src/core/main.c: added warning if chdir() fails.
        * src/core/schema-bindings.c: checking the return
          result of fgets().

2008-11-20  Thomas Thurman  <tthurman@gnome.org>

        Merged screen and window keybinding tables so that
        we can use just one file for the both.  Also incidentally
        closes #528337.  Further efficiencies of scale to come.

        * src/include/prefs.h: replace META_PREF_*_KEYBINDINGS
          with META_PREF_KEYBINDINGS
        * src/core/keybindings.c: replace *_bindings with key_bindings
          and similar throughout; all window-based functions are now
          guaranteed to receive a window so don't need to check for
          themselves
          (find_handler): moved so it can also be called from
                          rebuild_binding_table
        * src/core/display-private.h: replace *_bindings with key_bindings
        * src/core/prefs.c: update_*_binding becomes update_key_binding;
          (change_notify): tidy up references to "enormous if statement"
                           since it's almost entirely gone now
        * src/core/all-keybindings.h: new merged version of
                           screen-bindings.h and window-bindings.h.


svn path=/trunk/; revision=4022
2008-11-22 19:02:54 +00:00
Thomas James Alexander Thurman
a06d96316e This change adds support for the new _NET_WM_FULLSCREEN_MONITORS
property and client message.  This allows client applications to request
 	that a fullscreen window cover more than one monitor.
 	* src/include/boxes.h:
	* src/core/boxes.c: Add meta_rectangle_union
 	* src/core/window-private.h:
	* src/core/window.c:
 	(meta_window_new_with_attrs, meta_window_free, set_net_wm_state,
 	meta_window_update_fullscreen_monitors, meta_window_client_message): Add
 	MetaWindow property to store fullscreen monitors field, update
 	_NET_WM_FULLSCREEN_MONITORS property on windows, and handle client
 	message.
 	* src/core/atomnames.h: Add _NET_WM_FULLSCREEN_MONITORS atom.
 	* src/core/constraints.c (setup_constraint_info): If
 	_NET_WM_FULLSCREEN_MONITORS is interesting, use the data stored in
 	MetaWindow::fullscreen_monitors to determine the fullscreen area instead
 	of the basic xinerama_info area.


svn path=/trunk/; revision=4021
2008-11-17 02:57:20 +00:00
Thomas James Alexander Thurman
6e8c233d6a Updated Latin translation
svn path=/trunk/; revision=4020
2008-11-15 04:06:56 +00:00
Jorge Gonzalez Gonzalez
c627368ea1 Updated Spanish translation
svn path=/trunk/; revision=4019
2008-11-14 21:02:09 +00:00
Thomas James Alexander Thurman
8524f510c6 Removed deprecated calls. Closes #560445.
* src/core/delete.c: remove deprecated g_strcasecmp.
	* src/include/main.h: no actual deprecated call, but
	  a mention of one which was out of date.


svn path=/trunk/; revision=4018
2008-11-12 03:56:01 +00:00
Thomas James Alexander Thurman
39e389cc5b Clean up #includes according to the GNOME Goal.
Closes #560449.  Patch is 122467.
	* src/core/place.c:
	* src/ui/draw-workspace.h:
	* src/ui/gradient.h:
	* src/ui/metaaccellabel.c:
	* src/ui/metaaccellabel.h:
	* src/ui/preview-widget.c:
	* src/ui/preview-widget.h:
	* src/ui/resizepopup.c:
	* src/ui/theme.c:
	* src/ui/theme.h:
	* src/ui/themewidget.h:


svn path=/trunk/; revision=4017
2008-11-12 03:43:51 +00:00
Thomas James Alexander Thurman
d079ef538c updated description of raise_on_click:
* src/metacity.schemas.in.in: updated description of
	  raise_on_click:
	  http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6


svn path=/trunk/; revision=4016
2008-11-10 12:51:33 +00:00
Jorge Gonzalez Gonzalez
203046237c Updated Spanish translation
svn path=/trunk/; revision=4015
2008-11-09 11:26:32 +00:00
Jorge Gonzalez Gonzalez
7a5606d241 Updated Spanish translation
svn path=/trunk/; revision=4014
2008-11-08 19:34:33 +00:00
Thomas James Alexander Thurman
c4768a3b9f added dependency on Zenity remove error_on_generic_command() and
* configure.in: added dependency on Zenity
	* src/core/keybindings.c: remove error_on_generic_command() and
	  error_on_terminal_command(); rewrite error_on_command
	  in terms of meta_show_dialog()
	* src/core/util.c: add meta_show_dialog() to call Zenity
	* src/include/util.h: ditto


svn path=/trunk/; revision=4013
2008-11-08 18:51:56 +00:00
Leonardo Ferreira Fontenelle
51468bfb56 Merged from branch gnome-2-24. Minor capitalization fix in the Brazilian
2008-11-03  Leonardo Ferreira Fontenelle  <leonardof@gnome.org>

	* pt_BR.po: Merged from branch gnome-2-24. Minor capitalization fix in
	the Brazilian Portuguese translation.

svn path=/trunk/; revision=4012
2008-11-03 04:14:28 +00:00
Olav Vitters
f7b0c532aa Fix build by readding accidentally removed '}'.
* src/ui/theme-parser.c: Fix build by readding accidentally removed
	'}'.


svn path=/trunk/; revision=4010
2008-11-02 23:29:09 +00:00
Thomas James Alexander Thurman
4c9bfecac5 variable names in messages should be double-quoted. Closes #558309.
* src/ui/theme-parser.c: variable names in messages should be
	  double-quoted.  Closes #558309.


svn path=/trunk/; revision=4009
2008-10-29 23:38:48 +00:00
Thomas James Alexander Thurman
5dc36e1201 fix accidental name change of run_command_terminal. Closes #557943.
* src/include/screen-bindings.h: fix accidental name change of
	  run_command_terminal.  Closes #557943.


svn path=/trunk/; revision=4008
2008-10-28 13:12:33 +00:00
Og B. Maciel
6a86912554 Fixed a couple of typos with the Brazilian Portuguese translation.
svn path=/trunk/; revision=4006
2008-10-27 16:17:59 +00:00
Thomas Thurman
7405f040e8 Add initialisation which I missed on the previous checkin. Also an extra
2008-10-27  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (titlebar_handler, handle_preference_update_enum):
        Add initialisation which I missed on the previous checkin.  Also
        an extra comment.


svn path=/trunk/; revision=4004
2008-10-27 12:30:18 +00:00
Brian Cameron
5ed940e101 Fix some crashes with the new GDM 2.24. Closes #558058.
2008-10-27  Brian Cameron  <brian.cameron@sun.com>

        Fix some crashes with the new GDM 2.24.  Closes #558058.

        * src/ui/ui.c (meta_ui_parse_modifier): another null check
        * src/core/prefs.c (titlebar_handler, button_layout_handler):
          more null checks.


svn path=/trunk/; revision=4003
2008-10-27 11:52:47 +00:00
Daniel Nylander
11f18a25c2 sv.po: Updated Swedish translation
svn path=/trunk/; revision=4002
2008-10-27 09:05:56 +00:00
Thomas Thurman
d819b99d99 Ignore values of .../mouse_button_modifier key if the key's missing.
2008-10-26  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (mouse_button_mods_handler): Ignore values
          of .../mouse_button_modifier key if the key's missing.
          Closes Launchpad bug #258054, Launchpad bug #266929.


svn path=/trunk/; revision=4001
2008-10-26 17:25:42 +00:00
Gil Forcada Codinachs
8201b0361a Added Asturian translation on behalf of Mikel González
svn path=/trunk/; revision=3999
2008-10-23 13:55:20 +00:00
Frederic Peters
f97f20e3b0 added missing @id on <book> top element.
* doc/creating_themes/C/creating-metacity-themes.xml: added missing @id
on <book> top element.


svn path=/trunk/; revision=3998
2008-10-23 13:45:58 +00:00
Frederic Peters
fc4ef3417f renamed document to creating-metacity-themes to match other manuals usage
* doc/creating_themes/Makefile.am:
* doc/creating_themes/C/creating_metacity_themes.xml: renamed document
to creating-metacity-themes to match other manuals usage of dashes.


svn path=/trunk/; revision=3997
2008-10-23 13:43:26 +00:00
Thomas James Alexander Thurman
c1348f0322 Post-release bump to 2.25.8.
svn path=/trunk/; revision=3996
2008-10-23 04:42:57 +00:00
Thomas James Alexander Thurman
647f75c4e8 2.25.5 release.
svn path=/trunk/; revision=3994
2008-10-23 04:32:03 +00:00
Thomas Thurman
348795b94d Post-release bump to 2.25.5.
2008-10-23  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.25.5.


svn path=/trunk/; revision=3993
2008-10-23 04:29:11 +00:00
Thomas Thurman
bb539466d5 fix stupid thinko which caused defaults to be incorrect "space" needs to
2008-10-23  Thomas Thurman  <tthurman@gnome.org>

        * src/core/schema-bindings.c: fix stupid thinko which
          caused defaults to be incorrect
        * src/include/window-bindings.h: "space" needs to be
          lowercase


svn path=/trunk/; revision=3992
2008-10-23 04:27:31 +00:00
Thomas Thurman
ab9bdf228b Support _NET_WM_STATE_STICKY (i.e. allow third-party apps to decide
2008-10-23  Thomas Thurman  <tthurman@gnome.org>

        Support _NET_WM_STATE_STICKY (i.e. allow third-party apps to decide
        whether a window is on all workspaces).  Bug found by Ka-Hing
        Cheung.  Closes #557536.

        * src/core/window.c (set_net_wm_state): report it
        * src/core/window.c (meta_window_client_message): set sticky
          if we receive it
        * src/core/window-props.c: set sticky if we find it
        * src/core/atomnames.h: add _NET_WM_STATE_STICKY


svn path=/trunk/; revision=3991
2008-10-23 04:09:14 +00:00
Thomas Thurman
c91475f20f support builds outside tree properly. ditto. ditto.
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/schema-bindings.c: support builds outside tree properly.
        * src/Makefile.am: ditto.
        * po/POTFILES.skip: ditto.


svn path=/trunk/; revision=3990
2008-10-23 04:03:54 +00:00
Thomas Thurman
445b6ae6ed support builds outside tree properly. ditto.
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/schema-bindings.c: support builds outside tree properly.
        * src/Makefile.am: ditto.


svn path=/trunk/; revision=3989
2008-10-23 04:02:48 +00:00
Thomas Thurman
2e9857b560 support builds outside tree properly.
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/schema-bindings.c: support builds outside tree properly.


svn path=/trunk/; revision=3988
2008-10-23 04:01:14 +00:00
Thomas James Alexander Thurman
8c1a5c6a11 2.25.3 release.
svn path=/trunk/; revision=3987
2008-10-22 13:12:57 +00:00
Thomas Thurman
7a9da7eb69 bump to 2.25.3 (thought the release script had already done this)
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: bump to 2.25.3 (thought the release script
          had already done this)


svn path=/trunk/; revision=3986
2008-10-22 13:09:59 +00:00
Thomas Thurman
788cbc91b2 Fixes to make distcheck work again.
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        Fixes to make distcheck work again.

        * src/Makefile.am: include *-binding.h, and make the schema
          building work when builddir != srcdir
        * po/POTFILES.in (src/core/keybindings.): include *-binding.h


svn path=/trunk/; revision=3985
2008-10-22 13:08:44 +00:00
Götz Waschk
9cb0b6ff52 add libm reference. Closes #557357.
2008-10-22  Götz Waschk  <waschk@mandriva.org>

        * configure.in: add libm reference.  Closes #557357.


svn path=/trunk/; revision=3984
2008-10-22 12:08:48 +00:00
Jordi Mallach
22d5f3fa57 New Valencian (Southern Catalan) translation based on the Catalan file.
2008-10-22  Jordi Mallach  <jordi@sindominio.net>

	* ca@valencia.po: New Valencian (Southern Catalan) translation
	based on the Catalan file.
	* LINGUAS: Added Valencian (Southern Catalan) (ca@valencia).

svn path=/trunk/; revision=3981
2008-10-22 07:57:08 +00:00
Jordi Mallach
627dcede64 Apply Catalan fixes from Robert Millan.
2008-10-22  Jordi Mallach  <jordi@sindominio.net>

	* ca.po: Apply Catalan fixes from Robert Millan.

svn path=/trunk/; revision=3980
2008-10-22 07:54:17 +00:00
Murray Cumming
fbefdce4c1 Fixed various tags to make this validate. Bug #557337:
2008-10-22  Murray Cumming  <murrayc@murrayc.com>

* doc/creating_themes/C/creating_metacity_themes.xml:
Fixed various tags to make this validate.
Bug #557337:

svn path=/trunk/; revision=3979
2008-10-22 05:31:28 +00:00
Murray Cumming
77785ac321 Fixed various tags to make this validate. Bug #557337:
2008-10-22  Murray Cumming  <murrayc@murrayc.com>

* doc/creating_themes/C/creating_metacity_themes.xml:
Fixed various tags to make this validate.
Bug #557337:

svn path=/trunk/; revision=3978
2008-10-22 05:29:48 +00:00
Thomas James Alexander Thurman
922b490499 2.25.2 release.
svn path=/trunk/; revision=3977
2008-10-22 03:50:25 +00:00
Thomas James Alexander Thurman
ee49194cf5 2.25.2 release.
svn path=/trunk/; revision=3976
2008-10-22 03:45:28 +00:00
Thomas James Alexander Thurman
f2bf9703db 2.25.2 release.
svn path=/trunk/; revision=3975
2008-10-22 03:42:44 +00:00
Joe Marcus Clarke
1866268c94 new functions add sigterm_handler in case we receive a SIGTERM. Closes
2008-10-22  Joe Marcus Clarke  <marcus@freebsd.org>

        * src/core/main.c (meta_finalize, sigterm_handler): new functions
        * src/core/main.c (main): add sigterm_handler in case we receive
          a SIGTERM.  Closes #553980.


svn path=/trunk/; revision=3974
2008-10-22 03:35:48 +00:00
Thomas James Alexander Thurman
b7ee7bdd9b fixup
svn path=/trunk/; revision=3973
2008-10-22 03:35:11 +00:00
Matthew Martin
ba3cf5dfad minimised windows are necessarily obscured.
2008-10-22  Matthew Martin  <mtt.martin@gmail.com>

        * src/core/window.c (meta_window_set_demands_attention): minimised
          windows are necessarily obscured.

(Apologies for previous incorrect entry)


svn path=/trunk/; revision=3972
2008-10-22 03:23:06 +00:00
Thomas Thurman
f186d90dd3 minimised windows are necessarily obscured.
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window.c (meta_window_set_demands_attention): minimised
          windows are necessarily obscured.


svn path=/trunk/; revision=3971
2008-10-22 03:21:23 +00:00
Thomas Thurman
671b69a251 Slight transformation of the x-macros used in keybindings to make them
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        Slight transformation of the x-macros used in keybindings
        to make them clearer: write handler names out in full
        because the old suffix system was confusing to people
        skim-reading, and switched the order of the last two
        parameters so more would generally fit on a screen.

        * src/core/keybindings.c, src/core/schema-bindings.c
          src/core/prefs.c: sympathy changes
        * src/core/window-bindings.h, src/core/screen-bindings.h:
          transformation as above


svn path=/trunk/; revision=3970
2008-10-22 01:02:45 +00:00
Christian Persch
fd01dbaaea fix build when schemas are not installed. Closes #557335.
2008-10-21   Christian Persch  <chpe@gnome.org>

        * src/Makefile.am: fix build when schemas are not installed.
        Closes #557335.


svn path=/trunk/; revision=3969
2008-10-21 23:57:38 +00:00
Tomas Frydrych
4854710de2 Fix off-by-one error. Fix off-by-one error. Closes #557201.
2008-10-21  Tomas Frydrych  <tf@linux.intel.com>

       * src/core/screen-bindings.h: Fix off-by-one error.
       * src/core/window-bindings.h: Fix off-by-one error.
       Closes #557201.


svn path=/trunk/; revision=3968
2008-10-21 11:58:04 +00:00
Thomas Thurman
493408167b During a discussion with Rodney Dawes about making life easier for the
2008-10-18  Thomas Thurman  <tthurman@gnome.org>

        During a discussion with Rodney Dawes about making life easier
        for the translators, he pointed out that the short and long
        forms of almost all the keybindings say much the same thing
        in different words.  I believe this is an unconscionable burden
        to place on translators, and have therefore merged the short
        and long descriptions into the short description.  The long
        is now a general explanation of the format, plus possibly a
        notice about reversibility.  Closes #469361, and should solve
        the l10n issue previously mentioned.

        * src/core/keybindings.c: reflect changes in *-bindings.h
        * src/core/schema-bindings.c: reflect changes in *-bindings.h
        * src/core/prefs.c: reflect changes in *-bindings.h
        * src/core/window-bindings.h: Add flags field, always the same
          currently, so that it's the same as screen-bindings.h.
          Also, lose ONLY_BOUND_BY_DEFAULT, since we already had a
          rather more elegant way to perform the same effect.
          And merge the long and short descriptions.
        * src/core/screen-bindings.h (, item): Merge the long and
          short descriptions.


svn path=/trunk/; revision=3966
2008-10-18 04:33:14 +00:00
Thomas Thurman
a8f1a61242 Updated Latin translation.
2008-10-17  Thomas Thurman  <tthurman@gnome.org>

        * la.po: Updated Latin translation.


svn path=/trunk/; revision=3965
2008-10-18 02:07:56 +00:00
Murray Cumming
4c3a5883d7 Call GNOME_DOC_INIT() so we can use the gnome-doc-utils variables in our
2008-10-17  Murray Cumming  <murrayc@murrayc.com>

        * configure.in: Call GNOME_DOC_INIT() so we can use the gnome-doc-utils 
        variables in our Makefile.am:
        * doc/Makefile.am:
        * doc/creating_themes/Makefile.am
        * doc/creating_themes/C/creating_metacity_themes.xml:
        Added this new DocBook document, converted from the HTML here
        http://blogs.gnome.org/metacity/2008/05/30/themes/
        This will be installed for yelp and can be translated and hosted on 
        library.gnome.org.


svn path=/trunk/; revision=3964
2008-10-18 01:52:39 +00:00
Marcel Telka
6904b7a5d7 Updated Slovak translation by Pavol Šimo.
2008-10-16  Marcel Telka  <marcel@telka.sk>

	* sk.po: Updated Slovak translation by Pavol Šimo.

svn path=/trunk/; revision=3960
2008-10-16 23:08:22 +00:00
Thomas Thurman
7d67a9aee9 Since Patrick Niklaus's checkin of 2008-08-14 dealt with windows with no
2008-10-15  Thomas Thurman  <tthurman@gnome.org>

        Since Patrick Niklaus's checkin of 2008-08-14 dealt with windows with
        no icons not using fallback icons, we don't need fallback icons.

        * src/ui/theme.h: remove fallback icons from struct.
        * src/core/iconcache.c (meta_read_icons): don't look for fallbacks.
        * src/*/ui.[ch] (meta_ui_get_fallback_icons): removed
        * src/ui/theme-parser.c (typedef, parse_toplevel_element): don't
          parse fallback specifications.


svn path=/trunk/; revision=3958
2008-10-15 21:01:54 +00:00
Thomas James Alexander Thurman
b1b8d51264 (again)
svn path=/trunk/; revision=3957
2008-10-15 16:36:14 +00:00
Thomas Thurman
3ee8a903e8 Updated Latin translation (slightly).
2008-10-15  Thomas Thurman  <tthurman@gnome.org>

        * la.po: Updated Latin translation (slightly).


svn path=/trunk/; revision=3956
2008-10-15 16:31:53 +00:00
Thomas Thurman
27fac47e76 add screen-bindings.h
008-10-13  Thomas Thurman  <tthurman@gnome.org>

        * po/POTFILES.in: add screen-bindings.h


svn path=/trunk/; revision=3955
2008-10-14 01:18:58 +00:00
Thomas Thurman
6144787b3e raw schemas is now .in.in add Latin
2008-10-13  Thomas Thurman  <tthurman@gnome.org>

        * po/POTFILES.in: raw schemas is now .in.in
        * po/LINGUAS: add Latin


svn path=/trunk/; revision=3954
2008-10-13 22:38:04 +00:00
Thomas Thurman
c1e7ead397 Committed initial Latin translation. added Latin.
2008-10-13  Thomas Thurman  <tthurman@gnome.org>

        * la.po: Committed initial Latin translation.
        * LINGUAS: added Latin.


svn path=/trunk/; revision=3953
2008-10-13 22:30:36 +00:00
Thomas Thurman
48f1dd5a7e Make the bindings in src/core/*-bindings.h generate GConf schemas too.
2008-10-12  Thomas Thurman  <tthurman@gnome.org>

        Make the bindings in src/core/*-bindings.h generate
        GConf schemas too.  Note that there's an i18n issue
        (documented in schema-bindings.c) which will be fixed
        next checkin.

        * src/core/schema-bindings.c: major fixup to make it
          ready for use as part of the actual build process.
        * src/Makefile.am: added magic to make it call schema-bindings
          after it builds it.
        * src/core/window-bindings.h: added comments;
          also, window menu was listed variously as alt-Space
          and alt-Print; it should have been alt-Space.
        * src/metacity.schemas.in.in: renamed from s/\.in$//,
          sentinel added for the generated bindings,
          warning at the top now untrue, and removed.


svn path=/trunk/; revision=3952
2008-10-12 23:29:09 +00:00
Kjartan Maraas
ff0fa107a4 Updated Norwegian bokmål translation.
2008-10-12  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.

svn path=/trunk/; revision=3951
2008-10-12 19:33:59 +00:00
Thomas Thurman
acd81439eb Fix annoying bug where alt-tab and friends would jump backwards a space on
2008-10-12  Thomas Thurman  <tthurman@gnome.org>

        Fix annoying bug where alt-tab and friends would jump
        backwards a space on initial movement.

        * src/core/screen-bindings.h: although reversed bindings
        are necessarily reversible, don't set both bits in the
        constant, or when we test for them we'll get confused.


svn path=/trunk/; revision=3950
2008-10-12 15:09:48 +00:00
Thomas Thurman
b625ed254d An attempt to make life a little easier for our beloved translators; this
2008-10-12  Thomas Thurman  <tthurman@gnome.org>

        An attempt to make life a little easier for our beloved translators;
        this has the same behaviour as before, but removes over thirty
        translation strings.

        * src/core/session.c (start_element_handler): all "attribute not found
          on element" strings are identical
        * src/ui/theme-parser.c (locate_attributes): allow attribute names to
          be preceded with "!" (in the code) to show they're required.
          (parse_aspect_ratio, parse_distance, parse_toplevel_element,
           parse_style_element, parse_gradient_element, static, parse_border,
           parse_style_set_element, parse_draw_op_element): use the new "!"
           prefix for locate_attributes(), or in some cases just the identical
           constant, for generating this error.
        * src/ui/theme.c (check_state, meta_theme_validate): add
          translator comments
        * src/ui/resizepopup.c (update_size_window): add
          translator comments


svn path=/trunk/; revision=3949
2008-10-12 14:34:54 +00:00
Theppitak Karoonboonyanan
334370f5d1 Updated Thai translation (merged from gnome-2-24 branch).
2008-10-12  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation (merged from gnome-2-24 branch).


svn path=/trunk/; revision=3948
2008-10-12 04:52:28 +00:00
Claude Paroz
66c031315d Fixed minimize/unmaximize French translation (sync with 2.24) and complete
2008-10-11  Claude Paroz  <claude@2xlibre.net>

	* fr.po: Fixed minimize/unmaximize French translation (sync with 2.24) and
	complete some other translations.

svn path=/trunk/; revision=3946
2008-10-11 21:16:19 +00:00
William Lachance
a49f986c67 Pass modified mouse button events down to panel windows instead of dealing
2008-10-06  William Lachance  <wrlach@gmail.com>

        Pass modified mouse button events down to panel windows
        instead of dealing with them ourselves.  Closes #554428.

        * src/core/display.c (prefs_changed_callback): don't grab mouse
          buttons on panels
        * src/core/window.c (meta_window_new_with_attrs): ditto


svn path=/trunk/; revision=3942
2008-10-06 01:34:17 +00:00
Thomas Thurman
b1fb765d8e Second half of the switch to using x-macros for keybindings so that we
2008-10-05  Thomas Thurman  <tthurman@gnome.org>

        Second half of the switch to using x-macros for keybindings so that
        we don't have lots of places with the same information which must
        stay in the same order.  This time it's screen bindings.

        * src/core/screen-bindings.h: New file, containing screen bindings.
        * src/core/schema-bindings.c: added ability to output screen bindings.
        * src/core/window-bindings.h: tiny tweak to comment
        * src/core/keybindings.c: generate function prototypes using s-b.h;
          several handlers modified to use ints rather than ints cast into
          pointers, or renamed.
        * src/include/prefs.h: generate names of bindings using s-b.h;
          generate screen_handlers using s-b.h;
          arguments to bindings are ints and not ints cast to pointers;
          several handler functions renamed to consistent names.
        * src/core/prefs.c (meta_prefs_set_num_workspaces, init_bindings):
          generate screen_handlers using s-b.h;
          generate screen_string_bindings using s-b.h (and add check for
          null bindings in init_bindings to enable this simply).


svn path=/trunk/; revision=3941
2008-10-06 00:24:07 +00:00
Thomas Thurman
9e72d661d6 experimental tool for Launchpad upload
2008-10-05  Thomas Thurman  <tthurman@gnome.org>

        * tools/ppa-magic.py: experimental tool for Launchpad upload


svn path=/trunk/; revision=3940
2008-10-05 22:36:07 +00:00
Thomas Thurman
03ccf99dbb Havoc is an author; Thomas has an email address; add a ton of release
2008-10-05  Thomas Thurman  <tthurman@gnome.org>

        * metacity.doap: Havoc is an author; Thomas has an email address;
          add a ton of release information going back to the early days,
          although not right to the beginning.


svn path=/trunk/; revision=3939
2008-10-05 22:34:25 +00:00
Og B. Maciel
85e67d1d49 Updated Brazilian Portuguese translation.
svn path=/trunk/; revision=3937
2008-10-01 03:43:19 +00:00
Alexander Shopov
c2403a0c62 Updated Bulgarian translation by Alexander Shopov <ash@contact.bg>
2008-09-29  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Alexander Shopov <ash@contact.bg>

svn path=/trunk/; revision=3935
2008-09-29 19:56:48 +00:00
Gil Forcada Codinachs
839082aae8 Updated Catalan translation
svn path=/trunk/; revision=3930
2008-09-27 16:28:01 +00:00
Laurent Dhima
98753ed946 Updated Translation
svn path=/trunk/; revision=3929
2008-09-27 10:37:54 +00:00
Thomas Thurman
0ee05e6617 not all versions of /bin/sh can handle this script, so specify one. Also
2008-09-26  Thomas Thurman  <tthurman@gnome.org>

        * autogen.sh: not all versions of /bin/sh can handle this script,
          so specify one.  Also update the error message because we don't
          use CVS these days.


svn path=/trunk/; revision=3927
2008-09-26 04:05:31 +00:00
Priit Laes
c5d86fae01 Translation updated by Ivar Smolin
2008-09-24  Priit Laes  <plaes at svn dot gnome dot org>

	* et.po: Translation updated by Ivar Smolin

svn path=/trunk/; revision=3924
2008-09-24 09:30:36 +00:00
Kenneth Nielsen
0037a5fccc Updated Danish translation
svn path=/trunk/; revision=3922
2008-09-22 21:13:22 +00:00
Kenneth Nielsen
1ea071fc18 Updated Danish translation
svn path=/trunk/; revision=3918
2008-09-21 22:16:22 +00:00
Mugurel Tudor
bc1e74153c Updated Romanian translation by Mişu Moldovan <dumol@gnome.ro>
2008-09-22  Mugurel Tudor  <mugurelu@gnome.ro>

	* ro.po: Updated Romanian translation by
	Mişu Moldovan <dumol@gnome.ro>

svn path=/trunk/; revision=3915
2008-09-21 21:51:39 +00:00
Theppitak Karoonboonyanan
65a10829fd Updated Thai translation.
2008-09-21  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.


svn path=/trunk/; revision=3911
2008-09-21 09:37:49 +00:00
Gintautas Miliauskas
0c0e102023 Updated Lithuanian translation.
2008-09-21  Gintautas Miliauskas  <gintas@akl.lt>

	* lt.po: Updated Lithuanian translation.



svn path=/trunk/; revision=3908
2008-09-21 01:05:37 +00:00
Thomas Thurman
914c93ae0d fix name of window-bindings.h
2008-09-20  Thomas Thurman  <tthurman@gnome.org>

        * po/POTFILES.in: fix name of window-bindings.h


svn path=/trunk/; revision=3907
2008-09-20 15:58:59 +00:00
Priit Laes
a1c3a05b43 Translation updated by Ivar Smolin
2008-09-20  Priit Laes  <plaes at svn dot gnome dot org>

	* et.po: Translation updated by Ivar Smolin

svn path=/trunk/; revision=3906
2008-09-20 09:25:05 +00:00
Thomas Thurman
f53e03f0a2 added new files and re-sorted
2008-09-20  Thomas Thurman  <tthurman@gnome.org>

        * po/POTFILES.in: added new files and re-sorted


svn path=/trunk/; revision=3905
2008-09-20 03:25:55 +00:00
Gabor Kelemen
0e8c8ba825 Translation updated.
2008-09-17  Gabor Kelemen  <kelemeng@gnome.hu>

	* hu.po: Translation updated.

svn path=/trunk/; revision=3901
2008-09-17 00:57:12 +00:00
Duarte Loreto
f19aff7818 Fixed Portuguese terminology.
2008-09-14  Duarte Loreto <happyguy_pt@hotmail.com>

	* pt.po: Fixed Portuguese terminology.

svn path=/trunk/; revision=3898
2008-09-14 19:43:38 +00:00
Djihed Afifi
52d14ee16d Updated Arabic Translation by Khaled Hosny.
* Updated Arabic Translation by Khaled Hosny. 

svn path=/trunk/; revision=3896
2008-09-14 10:15:48 +00:00
Hendrik Richter
4774a798a7 Updated German translation.
2008-09-12  Hendrik Richter  <hendrikr@gnome.org>

	* de.po: Updated German translation.

svn path=/trunk/; revision=3890
2008-09-12 20:47:00 +00:00
Goran Rakic
28793c9f81 Updated Serbian translation (by Miloš Popović)
svn path=/trunk/; revision=3888
2008-09-12 09:53:25 +00:00
Vincent Untz
3109a67a71 Install desktop files in both .../share/applications and
2008-09-12  Vincent Untz  <vuntz@gnome.org>

        Install desktop files in both
        .../share/applications and .../share/gnome/wm-properties.
        Copied in from the 2.23.x branch.  Closes #549479.

        * src/metacity-wm.desktop.in: new file
        * src/.cvsignore: include the above
        * src/Makefile.am: install the above


svn path=/trunk/; revision=3886
2008-09-12 04:05:17 +00:00
Robert Sedak
d4662bb6a2 Update: Croatian Language
svn path=/trunk/; revision=3874
2008-09-09 16:19:39 +00:00
Priit Laes
13a8cdcbb3 Translation updated by Mattias Põldaru
2008-09-08  Priit Laes  <plaes at svn dot gnome dot org>

	* et.po: Translation updated by Mattias Põldaru

svn path=/trunk/; revision=3865
2008-09-08 08:28:22 +00:00
Seán de Búrca
d2a4800e75 Updated Irish translation.
2008-09-07  Seán de Búrca  <sdeburca@svn.gnome.org>

        * ga.po: Updated Irish translation.

svn path=/trunk/; revision=3863
2008-09-07 02:26:58 +00:00
Thomas James Alexander Thurman
ba19215cd4 Over-enthusiastic commit script is over-enthusiastic
svn path=/trunk/; revision=3861
2008-09-06 22:12:22 +00:00
Thomas Thurman
cf48407972 An attempt to keep all information about window bindings in the same
2008-09-06  Thomas Thurman  <tthurman@gnome.org>

        An attempt to keep all information about window bindings
        in the same place.  Screen bindings to come.

        * src/core/window-bindings.h: new file, list of all window bindings
        * src/include/prefs.h: drop all the existing window-binding macros

        * src/core/schema-bindings.c (): output all the schema blocks that
        would appear in metacity.schema for these window bindings.  This
        ought to become part of the build process, and hopefully will soon.
        When this works it will also close #469361.

        * src/core/keybindings.c: generate handle_* prototypes using
        x-macros;  populate window_handlers using x-macros;  rename several
        functions to have consistent names;  do_handle_move_to_workspace(),
        handle_move_to_workspace_flip(), and handle_move_to_workspace() all
        merged into handle_move_to_workspace.

        * src/core/prefs.c: generate window_bindings and window_string_bindings
        using x-macros;  (meta_prefs_set_compositing_manager) fix unrelated
        problem with use of GConf functions when GConf was disabled.

        * src/core/core.c (meta_core_get_menu_accelerator): binding names
        given as literals since this is the only place in the code they
        now appear



svn path=/trunk/; revision=3860
2008-09-06 22:01:56 +00:00
Funda Wang
f227fc4872 Updated zh_CN translation.
svn path=/trunk/; revision=3858
2008-09-06 09:53:13 +00:00
Claude Paroz
0407545283 Updated French translation.
2008-09-06  Claude Paroz  <claude@2xlibre.net>

	* fr.po: Updated French translation.

svn path=/trunk/; revision=3857
2008-09-06 09:52:30 +00:00
Thomas Thurman
0fd855f492 removed invalid "Window Manager" group at request of Matthias Clasen.
2008-09-03  Thomas Thurman  <tthurman@gnome.org>

        * src/metacity.desktop.in: removed invalid "Window Manager" group
          at request of Matthias Clasen.


svn path=/trunk/; revision=3851
2008-09-03 16:42:53 +00:00
Thomas Thurman
177202e2d1 Desktop file moved, according to policy change. Closes #549479.
2008-09-02  Thomas Thurman  <tthurman@gnome.org>

        Desktop file moved, according to policy change.  Closes #549479.

        * src/metacity.desktop.in: Don't display the desktop file
        * src/Makefile.am: Desktop file goes in apps directory


svn path=/trunk/; revision=3846
2008-09-02 18:49:11 +00:00
Thomas James Alexander Thurman
18d9d15a1a Post-release bump to 2.25.2.
svn path=/trunk/; revision=3843
2008-09-01 04:28:16 +00:00
Thomas James Alexander Thurman
49cc773eb4 2.25.1 release.
svn path=/trunk/; revision=3841
2008-09-01 04:21:55 +00:00
Thomas Thurman
8bd3cdff14 When a workspace's list of struts is freed, free the struts too. Closes
2008-09-01  Thomas Thurman  <tthurman@gnome.org>

        * src/core/workspace.c: When a workspace's list of struts
          is freed, free the struts too.  Closes #549952, and #468075.


svn path=/trunk/; revision=3840
2008-09-01 03:10:31 +00:00
Thomas Thurman
2095cce3ab Add new move_to_center keybinding, requested by Khanh-Dang Nguyen Thu Lam;
2008-09-01  Thomas Thurman  <tthurman@gnome.org>

        Add new move_to_center keybinding, requested by Khanh-Dang Nguyen
        Thu Lam; closes #549979.

        * src/include/prefs.h (void): add name of new binding
        * src/core/prefs.c: added pref for it
        * src/core/keybindings.c (handle_move_to_center): new function
        * src/metacity.schemas.in: included new binding


svn path=/trunk/; revision=3839
2008-09-01 01:32:39 +00:00
Thomas Thurman
5128bd4f28 new function. turn the compositing manager on or off as necessary.
2008-08-31  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.[ch] (meta_prefs_set_compositing_manager): new
          function.
        * src/core/main.c (meta_parse_options): turn the compositing
          manager on or off as necessary.


svn path=/trunk/; revision=3838
2008-08-31 22:55:18 +00:00
Thomas Thurman
9c82331009 moving all messages about properties to the top, as a start at #549886
2008-08-30  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window.c (process_property_notify): moving all
	messages about properties to the top, as a start at #549886


svn path=/trunk/; revision=3837
2008-08-30 21:37:13 +00:00
Djihed Afifi
347cfab7dd Updated Arabic Translation by Khaled Hosny.
* Updated Arabic Translation by Khaled Hosny. 

svn path=/trunk/; revision=3836
2008-08-26 14:17:36 +00:00
Gintautas Miliauskas
dbfc9d25f6 Updated Lithuanian translation.
2008-08-24  Gintautas Miliauskas  <gintas@akl.lt>

	* lt.po: Updated Lithuanian translation.



svn path=/trunk/; revision=3834
2008-08-25 03:44:59 +00:00
Inaki Larranaga Murgoitio
28cf8cc407 Updated Basque translation.
2008-08-23  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>

	* eu.po: Updated Basque translation.


svn path=/trunk/; revision=3832
2008-08-23 14:08:24 +00:00
Laurent Dhima
b3283ce82b Updated Translation
svn path=/trunk/; revision=3831
2008-08-21 18:21:43 +00:00
Thomas Thurman
b238584c1e fix version number which broke
2008-08-18  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: fix version number which broke


svn path=/trunk/; revision=3828
2008-08-18 15:05:44 +00:00
Thomas Thurman
129fde88fa Post-release version bump to 2.25.1.
2008-08-18  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release version bump to 2.25.1.


svn path=/trunk/; revision=3827
2008-08-18 15:02:30 +00:00
Thomas Thurman
13f3cb0b9a correct incorrect version number
2008-08-18  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: correct incorrect version number


svn path=/trunk/; revision=3825
2008-08-18 14:37:50 +00:00
Thomas James Alexander Thurman
2154d9e920 2.25.1 release.
svn path=/trunk/; revision=3824
2008-08-18 13:56:46 +00:00
Thomas Thurman
8736f61579 Adding doxygen headers to some files.
2008-08-18  Thomas Thurman  <tthurman@gnome.org>

        Adding doxygen headers to some files.

        * src/core/metacity-Xatomtype.h
        * src/core/main.c
        * src/core/screen-private.h
        * src/core/window-private.h
        * src/core/keybindings.h
        * src/core/session.h
        * src/core/workspace.h
        * src/core/window-props.h ()


svn path=/trunk/; revision=3818
2008-08-18 10:25:17 +00:00
Eric Piel
233237f098 add a copy of each strut in a window to the workspace's strut list,
2008-08-18  Eric Piel  <e.a.b.piel@tudelft.nl>

        * src/core/workspace.c (ensure_work_areas_validated): add a copy of
         each strut in a window to the workspace's strut list, instead of
         using the copy in the list (which would mean it was double-freed).
         Believed to fix #468075.


svn path=/trunk/; revision=3817
2008-08-18 02:48:36 +00:00
Ted Percival
4fb40b57a9 Ensure the user_rect is set sanely for windows that start maximized.
2008-08-16  Ted Percival  <ted@midg3t.net>

        Ensure the user_rect is set sanely for windows that start maximized.
        Prevents maximized windows from warping across the screen.
        Fixes bug #504692.

        * src/core/window.c (save_user_placement): renamed version of
        meta_window_save_user_rect().
        * src/core/window.c (force_save_user_placement): similar, but will
        always save user_rect even if the window is maximised or fullscreen.
        * src/core/window.c (meta_window_move_resize_internal): unplaced
        windows have force_save_user_placement() called instead of
        save_user_placement().


svn path=/trunk/; revision=3816
2008-08-16 03:09:40 +00:00
Duarte Loreto
6e4c88ad93 Updated Portuguese translation.
2008-08-14  Duarte Loreto <happyguy_pt@hotmail.com>

	* pt.po: Updated Portuguese translation.

svn path=/trunk/; revision=3813
2008-08-14 15:48:40 +00:00
Patrick Niklaus
5631cbe22d Icons for windows are taken from the desktop theme, not from the Metacity
2008-08-14   Patrick Niklaus  <marex@compiz-fusion.org>

          Icons for windows are taken from the desktop theme, not from
          the Metacity theme or from the fallback icon that Metacity
          provided.  Closes #524343.

        * src/ui/ui.c: Use GtkIconTheme to load the default window icon.
          Assumes the existence of an icon called "window", otherwise
          falls back to "gtk-missing-image". Fixes #524343.
        * src/ui/preview-widget: See above.
        * src/include/common.h: Add META_DEFAULT_ICON_NAME.
        * src/Makefile.am: Remove default_icon.png from inlinepixbufs.h.
        * src/default_icon.png: Removed.


svn path=/trunk/; revision=3812
2008-08-14 14:01:51 +00:00
Akira TAGOH
92fe1574ec new manual page. added new reference.
2008-08-14  Akira TAGOH  <akira@tagoh.org>

        * doc/man/metacity-message.1: new manual page.
        * doc/man/Makefile.am: added new reference.


svn path=/trunk/; revision=3811
2008-08-14 03:02:31 +00:00
Leonardo Ferreira Fontenelle
b4534658f3 Brazilian Portuguese translation updated by Djavan Fagundes.
2008-08-13  Leonardo Ferreira Fontenelle  <leonardof@gnome.org>

	* pt_BR.po: Brazilian Portuguese translation updated by Djavan
	Fagundes.

svn path=/trunk/; revision=3810
2008-08-14 02:52:13 +00:00
Thomas Thurman
3cd7574749 Post-branch bump to 2.25.0.
2008-08-13  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-branch bump to 2.25.0.



svn path=/trunk/; revision=3808
2008-08-13 11:54:52 +00:00
Ilkka Tuohela
203b701d78 Updated Finnish translation
svn path=/trunk/; revision=3806
2008-08-13 06:24:34 +00:00
Petr Kovář
14f8e1c553 cs.po: Updated Czech translation.
svn path=/trunk/; revision=3805
2008-08-08 23:51:40 +00:00
Ignacio Casal Quinteiro
e6c16a77f1 Updated Galician translation
svn path=/trunk/; revision=3804
2008-08-07 16:05:02 +00:00
Djihed Afifi
6f9048d69c Updated Arabic Translation by Khaled Hosny.
svn path=/trunk/; revision=3803
2008-08-06 08:32:43 +00:00
Thomas James Alexander Thurman
416bc2432c Post-release bump to 2.23.144.
svn path=/trunk/; revision=3802
2008-08-04 17:48:08 +00:00
Thomas James Alexander Thurman
51de9ef860 2.23.89 release.
svn path=/trunk/; revision=3800
2008-08-04 17:41:03 +00:00
Takeshi AIHANA
af17cddf1c Updated Japanese translation.
2008-08-02  Takeshi AIHANA <takeshi.aihana@gmail.com>

        * ja.po: Updated Japanese translation.

svn path=/trunk/; revision=3799
2008-08-02 01:42:13 +00:00
Djihed Afifi
12ae5cc4fe Updated Arabic Translation by Khaled Hosny.
svn path=/trunk/; revision=3798
2008-07-29 01:35:18 +00:00
Wouter Bolsterlee
bd00b58949 Dutch translation updated by Wouter Bolsterlee.
2008-07-29  Wouter Bolsterlee  <wbolster@svn.gnome.org>

	* nl.po: Dutch translation updated by Wouter Bolsterlee.


svn path=/trunk/; revision=3797
2008-07-28 23:27:07 +00:00
Thomas James Alexander Thurman
deaebc5d2e DOAP file (first pass, anyway).
* metacity.doap (added): DOAP file (first pass, anyway).


svn path=/trunk/; revision=3796
2008-07-27 03:47:47 +00:00
Daniel Nylander
7f6a2ebc76 sv.po: Updated Swedish translation
svn path=/trunk/; revision=3795
2008-07-25 21:50:12 +00:00
Leonardo Ferreira Fontenelle
7d9e4ee37d Terminology fixes by Vladimir Melo.
2008-07-24  Leonardo Ferreira Fontenelle  <leonardof@gnome.org>

	* pt_BR.po: Terminology fixes by Vladimir Melo.

svn path=/trunk/; revision=3794
2008-07-25 02:08:04 +00:00
Daniel Nylander
7adbca2fdb sv.po: Updated Swedish translation
svn path=/trunk/; revision=3793
2008-07-17 19:37:34 +00:00
Luca Ferretti
3848fa17e5 Updated Italian translation.
2008-07-14  Luca Ferretti  <elle.uca@libero.it>

	* it.po: Updated Italian translation.


svn path=/trunk/; revision=3792
2008-07-14 10:38:02 +00:00
Thomas James Alexander Thurman
f9a0c6d456 Post-release bump to 2.23.89.
svn path=/trunk/; revision=3791
2008-07-14 01:30:25 +00:00
Thomas James Alexander Thurman
7ec8054491 2.23.55 release.
svn path=/trunk/; revision=3789
2008-07-14 01:25:17 +00:00
Thomas Thurman
34fe81fabd meta_display_screen_for_root() can return NULL, so check for that. Fixes
2008-07-13  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c (event_callback): meta_display_screen_for_root()
        can return NULL, so check for that.  Fixes #422242.  Also tidying.

svn path=/trunk/; revision=3788
2008-07-14 00:41:25 +00:00
Elijah Newren
dacf784498 Don't attempt to double-free struts, edges and regions if work areas have
2008-07-13  Elijah Newren  <newren gmail com>

        * src/core/workspace.c (meta_workspace_free): Don't attempt to
        double-free struts, edges and regions if work areas have already
        been invalidated at the time of freeing a workspace.
        Possible fix to #361804.

svn path=/trunk/; revision=3787
2008-07-13 22:16:23 +00:00
Thomas Thurman
24e63a0d2d Don't allocate memory for log messages unless we're logging.
2008-07-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/constraints.c (do_screen_and_xinerama_relative_constraints):
        Don't allocate memory for log messages unless we're logging.

svn path=/trunk/; revision=3786
2008-07-13 05:27:13 +00:00
Thomas Thurman
6bf62be4d0 This function can now officially return NULL. Two windows can't belong to
2008-07-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/group.c (meta_window_get_group): This function can now
        officially return NULL.
        * src/core/window.c (meta_window_same_application): Two windows can't
        belong to the same application unless they both belong to some
        application.  (Both belonging to no application is not the same.)
        
        Closes #453022.

svn path=/trunk/; revision=3785
2008-07-13 03:26:39 +00:00
Matej Urbančič
77820c9697 Updated Slovenian translation
svn path=/trunk/; revision=3783
2008-07-10 12:15:50 +00:00
Matej Urbančič
175efedd45 Updated Slovenian translation
svn path=/trunk/; revision=3782
2008-07-10 12:15:27 +00:00
Theppitak Karoonboonyanan
81f8dad99e Updated Thai translation.
2008-07-10  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.


svn path=/trunk/; revision=3781
2008-07-10 04:42:25 +00:00
Kjartan Maraas
aa70e34e34 Updated Norwegian bokmål translation.
2008-07-09  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.

svn path=/trunk/; revision=3780
2008-07-09 11:46:10 +00:00
Kjartan Maraas
41fca4cf37 Updated Norwegian bokmål translation.
2008-07-01  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.

svn path=/trunk/; revision=3779
2008-07-01 08:26:56 +00:00
Thomas James Alexander Thurman
0ef47a44c1 2008-06-30 Thomas Thurman <tthurman@gnome.org
* src/core/bell.c (meta_bell_set_audible): Fix typo that
          slipped through.


svn path=/trunk/; revision=3778
2008-06-30 16:42:19 +00:00
Thomas Thurman
91b5f24da8 Move comments for non-statics from the .c to .h. adapt better for C, and
2008-06-30  Thomas Thurman  <tthurman@gnome.org>

        * src/core/bell.[ch]: Move comments for non-statics from the .c to .h.
        * Doxyfile: adapt better for C, and make quiet.


svn path=/trunk/; revision=3777
2008-06-30 13:42:37 +00:00
Thomas Thurman
bd0a531253 display the theme name in the title bar. Closes #430198.
2008-06-30  Thomas Thurman  <tthurman@gnome.org>

        * src/ui/theme-viewer.c (main): display the theme name
          in the title bar.  Closes #430198.


svn path=/trunk/; revision=3776
2008-06-30 00:23:41 +00:00
Thomas Thurman
7988361eab Allow toggling of non-compositor effects (since there's a non-Metacity key
2008-06-29  Thomas Thurman  <tthurman@gnome.org>

        Allow toggling of non-compositor effects (since there's a
        non-Metacity key to do so: /desktop/gnome/interface/enable_animations).
        Closes #92867.

        * src/include/prefs.h: add META_PREFS_GNOME_ANIMATIONS key and
          meta_prefs_get_gnome_animations() function
        * src/include/prefs.c: added meta_prefs_get_gnome_animations()
          function, and made supporting changes to structs.
        * src/core/effects.c (run_handler): checked whether enable_animations
          is set before running an effect.
        * src/core/effects.c (meta_effect_run_minimize): remove debug message.


svn path=/trunk/; revision=3775
2008-06-29 21:57:39 +00:00
Thomas Thurman
a1a030e418 remove meta_ prefix on all static functions.
2008-06-29  Thomas Thurman  <tthurman@gnome.org>

        * src/core/bell.c: remove meta_ prefix on all static functions.


svn path=/trunk/; revision=3774
2008-06-29 18:46:01 +00:00
Thomas Thurman
c05e6d079c lose meta prefix since it's static. replace our own cast with glib macro
2008-06-29  Thomas Thurman  <tthurman@gnome.org>

        * src/core/stack.c (stack_sync_to_server): lose meta prefix
          since it's static. 
        * src/core/stack.c (meta_stack_remove, stack_do_window_deletions):
          replace our own cast with glib macro designed to do the same thing


svn path=/trunk/; revision=3773
2008-06-29 18:44:21 +00:00
Thomas Thurman
b3549979c6 add checks for HAVE_SHAPE where appropriate. fix type error which was
2008-06-28  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c, src/compositor/compositor-xrender.c: add checks
          for HAVE_SHAPE where appropriate.
        * src/core/xprops.c: fix type error which was causing warnings.


svn path=/trunk/; revision=3772
2008-06-29 03:23:08 +00:00
Thomas Thurman
6039694eff Some refactoring, simplifying, and commenting of the non-composited
2008-06-28  Thomas Thurman  <tthurman@gnome.org>

        Some refactoring, simplifying, and commenting of the non-composited
        effects code.  effects.c could still do with some polish, which will
        come along later.

        * src/core/effects.h (meta_push_effect_handler): removed since it's
          never used and does nothing very useful.
        * src/core/effects.h (meta_pop_effect_handler): removed since its
          only effect is to crash the program.
        * src/core/effects.h (META_MINIMIZE_ANIMATION_LENGTH,
          META_SHADE_ANIMATION_LENGTH): move to effects.c because they're used
          nowhere else.
        * src/core/effects.c: there were three versions of the box-zoom effect.
          Remove the one which was never used, and make only the ones which
          are used with certain configure settings be compiled.
        * src/core/effects.h (meta_effect_end): move to effects.c, make static,
          and rename to effect_free.
        * src/core/effects.h (meta_effects_draw_box_animation): move to
          effects.c, make static, and rename to draw_box_animation.
        * src/core/effects.h (MetaEffectType): remove the values which weren't
          used.
        * src/core/window.c (meta_window_shade): remove commented-out code to
          call effect for shading.
        * src/core/effects.h (MetaEffectFinish): remove useless MetaEffect
          parameter.
        * src/core/window.c (finish_minimize): remove MetaEffect parameter.


svn path=/trunk/; revision=3771
2008-06-29 03:20:52 +00:00
Thomas Thurman
12ffd29542 Commented everything.
2008-06-27  Thomas Thurman  <tthurman@gnome.org>

        * src/core/stack.h: Commented everything.


svn path=/trunk/; revision=3770
2008-06-28 02:51:18 +00:00
Thomas Thurman
1aee3eff35 Keep the compiler from giving some warnings.
2008-06-26  Thomas Thurman  <tthurman@gnome.org>

        Keep the compiler from giving some warnings.
        
        * src/compositor/compositor-xrender.c (xrender_begin_move,
          xrender_update_move, xrender_end_move, xrender_free_window): four
          functions which were never called and contain no code #iffed out.
        * src/tools/metacity-mag.c (grab_area_at_mouse): fixed typecast error.


svn path=/trunk/; revision=3769
2008-06-27 03:52:31 +00:00
Thomas Thurman
9d31fa61ed Refactor so the long scary stack functions are less long and scary:
2008-06-26  Thomas Thurman  <tthurman@gnome.org>

        Refactor so the long scary stack functions are less long and scary:

        * stack.c (stack_ensure_sorted): the five parts of this long function
          broken out into the new functions stack_do_window_deletions,
          stack_do_window_additions, stack_do_relayer, stack_do_constrain
          (which was already separate: see next) and stack_do_resort.
        * stack.c (constrain_stacking): renamed to stack_do_constrain.
        * stack.c (stack_ignore_sorted): lose meta prefix since it's static.


svn path=/trunk/; revision=3768
2008-06-27 03:39:15 +00:00
Daniel Nylander
377e822c13 sv.po: Updated Swedish translation
svn path=/trunk/; revision=3767
2008-06-24 11:08:24 +00:00
Gabor Kelemen
c2ff92d3fa Translation updated.
2008-06-21  Gabor Kelemen  <kelemeng@gnome.hu>

	* hu.po: Translation updated.

svn path=/trunk/; revision=3766
2008-06-21 14:23:02 +00:00
Thomas James Alexander Thurman
ed22f38e7e Post-release bump to 2.23.55.
svn path=/trunk/; revision=3765
2008-06-16 23:53:39 +00:00
Thomas James Alexander Thurman
d341b8ea5e 2.23.34 release.
svn path=/trunk/; revision=3763
2008-06-16 23:49:56 +00:00
Thomas James Alexander Thurman
795d2caf8b 2.23.34 release.
svn path=/trunk/; revision=3762
2008-06-16 22:43:46 +00:00
Alexander Shopov
f6036b9860 Updated Bulgarian translation by Yavor Doganov <yavor@gnu.org>
2008-06-16  Alexander Shopov  <ash@contact.bg>

	* bg.po: Updated Bulgarian translation by
	Yavor Doganov <yavor@gnu.org>

svn path=/trunk/; revision=3761
2008-06-16 20:03:21 +00:00
Jorge Gonzalez Gonzalez
82cefd12ad Updated Spanish translation
svn path=/trunk/; revision=3759
2008-06-15 11:34:16 +00:00
Thomas Thurman
7ab715fa71 Some commenting.
2008-06-13  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window-props.c: Some commenting.

        * src/core/prefs.c: Added unified handling of integer preferences.
          Re-ordered fields in existing preferences so that changing to
          a union-based system will be easier in the future.


svn path=/trunk/; revision=3758
2008-06-13 23:10:32 +00:00
Theppitak Karoonboonyanan
163e236cd0 Updated Thai translation.
2008-06-12  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.


svn path=/trunk/; revision=3757
2008-06-12 10:44:59 +00:00
Djihed Afifi
0107da404c Updated Arabic Translation by Khaled Hosny.
svn path=/trunk/; revision=3756
2008-06-11 21:41:19 +00:00
Yannig MARCHEGAY
c94c482283 Updated Occitan translation
svn path=/trunk/; revision=3755
2008-06-11 11:38:53 +00:00
Thomas Thurman
09501c9fab doubles are %f or %g, not %d re-created fair copy accordingly
2008-06-10  Thomas Thurman  <tthurman@gnome.org>

        * test/tokentest/tokentest.c (draw_string_to_spec): doubles are
	  %f or %g, not %d
        * test/tokentest/tokentest.ini: re-created fair copy accordingly


svn path=/trunk/; revision=3754
2008-06-10 13:57:23 +00:00
Thomas Thurman
941e4bf967 A preliminary attempt at a test for the theme expression tokeniser.
2008-06-10  Thomas Thurman  <tthurman@gnome.org>

        * test/tokentest:  A preliminary attempt at a test for the
          theme expression tokeniser.


svn path=/trunk/; revision=3753
2008-06-10 13:46:41 +00:00
Kjartan Maraas
60d710a71f Updated Norwegian bokmål translation.
2008-06-08  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.

svn path=/trunk/; revision=3752
2008-06-08 09:54:58 +00:00
Thomas Thurman
5dbe941495 defensive programming; check meta_screen_get_compositor_data() throughout
2008-06-05  Thomas Thurman  <tthurman@gnome.org>

        * src/compositor/compositor-xrender.c (paint_root, destroy_win,
        create_root_buffer, paint_windows, repair_screen, window_has_shadow,
        xrender_set_active_window, paint_dock_shadows, unmap_win, restack_win,
        make_shadow, resize_win, process_property_notify, free_win,
        process_configure_notify, process_circulate_notify, add_damage):
        defensive programming; check meta_screen_get_compositor_data()
        throughout in case it returns NULL.  In particular, when this
        happened in a certain situation in xrender_set_active_window
        this caused a segfault; refs #530702 (and LP#178953 has more data)
        but this doesn't close them.


svn path=/trunk/; revision=3751
2008-06-05 01:54:25 +00:00
Thomas James Alexander Thurman
e9388f4345 2.23.34 release.
svn path=/trunk/; revision=3749
2008-06-02 22:32:14 +00:00
Thomas Thurman
a8c5c002fb make sure compositor things don't get compiled when we're not using the
2008-06-02  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c: make sure compositor things don't get
        compiled when we're not using the compositor.


svn path=/trunk/; revision=3748
2008-06-02 22:27:54 +00:00
Thomas Thurman
327e3cb6b5 new test script, imported from branch.
2008-06-02  Thomas Thurman  <tthurman@gnome.org>

        * test/metacity-test: new test script, imported from
        branch.


svn path=/trunk/; revision=3747
2008-06-02 21:23:11 +00:00
Clytie Siddall
0bdfa0f494 Updated Vietnamese translation
svn path=/trunk/; revision=3745
2008-06-01 13:54:50 +00:00
Thomas Thurman
c500de4e38 fix comments (number)
2008-05-30  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window-props.h: fix comments (number)


svn path=/trunk/; revision=3744
2008-05-30 22:30:20 +00:00
Thomas Thurman
b55dbe10bb commenting
2008-05-30  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window-props.h: commenting


svn path=/trunk/; revision=3743
2008-05-30 22:27:43 +00:00
Thomas Thurman
01c0a95136 Make disabling gconf work again. Closes #530870.
2008-05-28  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (handle_preference_update_string,
        meta_prefs_remove_listener, queue_changed): Make disabling
        gconf work again.  Closes #530870.


svn path=/trunk/; revision=3741
2008-05-28 04:10:08 +00:00
Thomas James Alexander Thurman
8fea7a4128 Post-release bump to 2.23.34.
svn path=/trunk/; revision=3731
2008-05-26 21:52:25 +00:00
Thomas James Alexander Thurman
4f93a1a273 2.23.21 release.
svn path=/trunk/; revision=3729
2008-05-26 21:48:14 +00:00
Thomas Thurman
c5c68fcbe8 added in two files needed for Iain's changes earlier to work in a release
2008-05-26  Thomas Thurman  <tthurman@gnome.org>

        * src/Makefile.am: added in two files needed for Iain's
          changes earlier to work in a release tarball


svn path=/trunk/; revision=3728
2008-05-26 21:45:43 +00:00
Thomas James Alexander Thurman
0c7be52675 2.23.21 release.
svn path=/trunk/; revision=3727
2008-05-26 21:06:44 +00:00
Thomas James Alexander Thurman
fff75cd9ae 2.23.21 release.
svn path=/trunk/; revision=3726
2008-05-26 20:23:21 +00:00
Iain Holmes
76735c18a1 Add Dropdown menu atoms so we can add shadows to them. Fixes #517442
2008-05-24  Iain Holmes  <iain@gnome.org>

        * src/compositor/compositor-xrender.c: Add Dropdown menu atoms 
so we
        can add shadows to them. Fixes #517442
        Handle tooltips as well. Fixes #517524


svn path=/trunk/; revision=3725
2008-05-24 20:40:12 +00:00
Iain Holmes
1f435cc1fc Check the compositor isn't NULL before dereferencing it. Fixes #534569
2008-05-24  Iain Holmes  <iain@gnome.org>

        * src/compositor/compositor.c: Check the compositor isn't NULL 
before 
        dereferencing it. Fixes #534569
        (meta_compositor_get_window_pixmap): Actually return a value


svn path=/trunk/; revision=3723
2008-05-24 11:00:17 +00:00
Djihed Afifi
a5d2bdea55 Updated Arabic Translation by Khaled Hosny.
svn path=/trunk/; revision=3722
2008-05-22 22:59:46 +00:00
Vincent van Adrighem
565a04793e Translation updated by Tino Meinen.
2008-05-20  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Tino Meinen.

svn path=/trunk/; revision=3720
2008-05-20 09:41:21 +00:00
Djihed Afifi
f167d55625 Updated Arabic Translation by Khaled Hosny.
svn path=/trunk/; revision=3717
2008-05-19 01:15:01 +00:00
Iain Holmes
3405f3d8c8 Applied patch from Ed Catmur to fix #528787
2008-05-19  Iain Holmes  <iain@gnome.org>

        * src/core/window.c: Applied patch from Ed Catmur to fix #528787



svn path=/trunk/; revision=3716
2008-05-19 00:14:09 +00:00
Iain Holmes
f141692ca2 src/include/frame.h src/include/display.h src/include/xprops.h
2008-05-19  Iain Holmes  <iain@gnome.org>

        * src/include/frame.h
        * src/include/display.h
        * src/include/xprops.h
        * src/include/compositor.h
        * src/include/types.h
        * src/include/window.h
        * src/include/errors.h
        * src/include/screen.h: New basic public API for compositor.

        * src/compositor/*: Separate the compositor out into its own 
separate
        directory and set it up for backends. Initial XRender backend.

        * src/core/compositor.[ch]: Remove

        * src/core/frame.h
        * src/core/screen.h
        * src/core/display.h
        * src/core/window.h: Rename to -private.h so as not to clash 
with the
        new files in include

        * src/core/delete.c
        * src/core/workspace.h
        * src/core/stack.[ch]
        * src/core/keybindings.[ch]
        * src/core/errors.c
        * src/core/effects.[ch]
        * src/core/core.c
        * src/core/group.h
        * src/core/edge-resistance.[ch]
        * src/core/window-props.[ch]
        * src/core/constraints.h
        * src/core/bell.[ch]
        * src/core/iconcache.h
        * src/core/session.[ch]
        * src/core/main.c
        * src/core/place.h
        * src/core/xprops.c
        * src/ui/tabpopup.c: Use the new -private headers

        * src/core/display.c
        * src/core/frame.c
        * src/core/window.c
        * src/core/screen.c: Add the API functions required by the 
compositor

        * src/Makefile.am: Relocate the new files



svn path=/trunk/; revision=3715
2008-05-19 00:00:09 +00:00
Theppitak Karoonboonyanan
fe292078fe Updated Thai translation.
2008-05-18  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.


svn path=/trunk/; revision=3712
2008-05-18 04:11:29 +00:00
Kjartan Maraas
224040cd1a Updated Norwegian bokmål translation.
2008-05-14  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.

svn path=/trunk/; revision=3710
2008-05-14 13:15:58 +00:00
Vincent van Adrighem
4026ea7b42 Translation updated by Tino Meinen.
2008-05-13  Vincent van Adrighem  <adrighem@gnome.org>

	* nl.po: Translation updated by Tino Meinen.

svn path=/trunk/; revision=3709
2008-05-13 16:21:21 +00:00
Robert Escriva
53b9e49ca4 remove color_set flag remove check of color_set flag before rendering (we
2008-05-13  Robert Escriva  <me@robescriva.com>

        * src/ui/theme.h (struct): remove color_set flag
        * src/ui/theme.c (meta_color_spec_render,
          meta_color_spec_new_from_string): remove check of color_set flag
          before rendering (we always do it now).  Closes #511826.


svn path=/trunk/; revision=3708
2008-05-13 12:53:36 +00:00
Thomas Thurman
8547d1e8ed Basic Python-based Xlib client for testing and building upon.
2008-05-12  Thomas Thurman  <tthurman@gnome.org>

        * tools/xlib.py: Basic Python-based Xlib client for testing
          and building upon.


svn path=/trunk/; revision=3707
2008-05-12 03:31:32 +00:00
Elijah Newren
b095ecc195 Remove src/ui/color.[ch] since they are not used anywhere
svn path=/trunk/; revision=3706
2008-05-11 22:42:02 +00:00
Kjartan Maraas
3bbf402684 Updated Norwegian bokmål translation.
2008-05-06  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.

svn path=/trunk/; revision=3705
2008-05-06 17:51:39 +00:00
Thomas Thurman
f8ff76efdd Added curly brackets in two places to keep -pedantic happy.
2008-05-04  Thomas Thurman  <tthurman@gnome.org>

        Added curly brackets in two places to keep -pedantic happy.

        * src/core/window-props.c (meta_display_init_window_prop_hooks)
        * src/core/group-props.c (meta_display_init_group_prop_hooks)


svn path=/trunk/; revision=3704
2008-05-04 17:57:11 +00:00
Matt Krai
3673472cd7 fix type of "len" variable (refs #526049)
2008-05-03  Matt Krai  <mkraai@beckman.com>

        * src/core/delete.c (io_from_ping_dialog): fix type of "len" variable
          (refs #526049)

svn path=/trunk/; revision=3703
2008-05-03 17:12:15 +00:00
Thomas Thurman
b455ac62d2 All information should live in exactly one place. This means that the list
2008-05-02  Thomas Thurman  <tthurman@gnome.org>

        All information should live in exactly one place.  This means
        that the list of atoms should not be replicated anywhere.
        Therefore, we include it via x-macros.  Closes #530843.

        * src/core/atomnames.h: added list of atom names
        * src/Makefile.am: added reference to new file
        * src/core/display.h
        * src/core/display.c (twice)
        * src/core/screen.c: #included atomnames.h instead of having
          an enormous list of atoms
        * src/core/group-props.c
        * src/core/window.c
        * src/core/compositor.c
        * src/core/window-props.c
        * src/core/delete.c
        * src/core/workspace.c
        * src/core/stack.c
        * src/core/keybindings.c
        * src/core/iconcache.c
        * src/core/group.c
        * src/core/xprops.c: changed to new, simpler identifiers
          for atoms


svn path=/trunk/; revision=3702
2008-05-02 18:49:01 +00:00
Gabor Keleman
4916fedc28 -meg
svn path=/trunk/; revision=3701
2008-05-01 19:51:36 +00:00
Gabor Kelemen
81eeb9c0d5 Translation updated.
2008-05-01  Gabor Kelemen  <kelemeng@gnome.org>

	* hu.po: Translation updated.

svn path=/trunk/; revision=3699
2008-05-01 19:40:16 +00:00
Chris Wang
2d895ce875 XGetWindowAttributes can return an error value, and if it does its other
2008-04-29  Chris Wang  <chris.wang@sun.com>

        * src/core/window.c (meta_window_new): XGetWindowAttributes
          can return an error value, and if it does its other results
          are invalid! (#530485)


svn path=/trunk/; revision=3698
2008-04-29 13:33:39 +00:00
Thomas Thurman
eacd442787 documentation
2008-04-29  Thomas Thurman  <tthurman@gnome.org>

        * src/ui/fixedtip.[ch]: documentation


svn path=/trunk/; revision=3697
2008-04-29 02:54:56 +00:00
Thomas James Alexander Thurman
b8a9ed1d3a Post-release bump to 2.23.21.
svn path=/trunk/; revision=3696
2008-04-27 21:42:57 +00:00
Thomas James Alexander Thurman
117f0e5663 2.23.13 release.
svn path=/trunk/; revision=3694
2008-04-27 21:37:45 +00:00
Erwann Chenede
f13a8e6ab9 re-enable cascade code which was wrongly removed a year ago. Closes
2008-04-27  Erwann Chenede  <erwann.chenede@sun.com>

        * src/core/place.c (meta_window_place): re-enable cascade
          code which was wrongly removed a year ago.  Closes #529925.


svn path=/trunk/; revision=3693
2008-04-27 20:09:47 +00:00
Carlos Garnacho
fa1195b7f1 Propagate opacity to frame window.
2008-04-22  Carlos Garnacho  <carlos@imendio.com>

        * src/core/compositor.c (process_property_notify,
        find_window_in_display): Propagate opacity to frame window.


svn path=/trunk/; revision=3692
2008-04-22 13:34:48 +00:00
Thomas James Alexander Thurman
3d9f2868fc Post-release bump to 2.23.13.
svn path=/trunk/; revision=3691
2008-04-22 12:35:31 +00:00
Thomas James Alexander Thurman
17bf5ea13a 2.23.8 release.
svn path=/trunk/; revision=3689
2008-04-22 12:30:12 +00:00
Thomas James Alexander Thurman
8d3432b8b7 sigh. I blame mornings
svn path=/trunk/; revision=3688
2008-04-22 12:29:21 +00:00
Thomas Thurman
3fcbbfbbd2 Thanks to Lucas Rocha, Iain Holmes, and Jens Granseuer for changes in this
2008-04-22  Thomas Thurman  <tthurman@gnome.org>

Thanks to Lucas Rocha, Iain Holmes, and Jens Granseuer for changes in
this release.

	* No need to symlink to .desktop files (Lucas)
	* Fixes to compositor's dealings with overlay windows (Iain)
	* C89 fixes (Jens)

Translators:
Khaled Hosny (ar), Amitakhya Phukan (as), Ihar Hrachyshka (be@latin),
Petr Kovar (cs), Rhys Jones (cy), Kenneth Nielsen (da), Andre Klapper (de),
Jorge González (es), Iñaki Larrañaga Murgoitio (eu), Ilkka Tuohela (fi),
Claude Paroz (fr), Seán de Búrca (ga), Ignacio Casal Quinteiro (gl),
Yuval Tanny (he), Gabor Kelemen (hu), Luca Ferretti (it), Takeshi AIHANA (ja),
Shankar Prasad (kn), Changwoo Ryu (ko), Arangel Angov (mk), sandeep shedmake (mr),
Kjartan Maraas (nb), Nabin Gautam (ne), Wouter Bolsterlee (nl),
Eskild Hustvedt (nn), Yannig Marchegay (Kokoyaya) (oc), Tomasz Dominikowski (pl),
Duarte Loreto (pt), Vasiliy Faronov (ru), Daniel Nylander (sv),
Theppitak Karoonboonyanan (th), Baris Cicek (tr), Maxim Dziumanenko (uk),
Clytie Siddall (vi), Woodman Tuen (zh_HK), Woodman Tuen (zh_TW)


svn path=/trunk/; revision=3687
2008-04-22 12:28:35 +00:00
Thomas Thurman
2caa49bca8 Post-release bump to 2.21.8. (Which was seriously belated. Sorry, folks.)
2008-04-22  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.21.8.
	(Which was seriously belated.  Sorry, folks.)


svn path=/trunk/; revision=3686
2008-04-22 12:21:22 +00:00
Thomas Thurman
a8912c4fb9 a few comments
2008-04-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/effects.c: a few comments


svn path=/trunk/; revision=3685
2008-04-22 12:15:05 +00:00
Yair Hershkovitz
7f8ad91af6 updated hebrew translation
svn path=/trunk/; revision=3683
2008-04-20 15:53:00 +00:00
Matej Urbančič
53a7cbe6af Updated Slovenian translation
svn path=/trunk/; revision=3682
2008-04-13 06:59:46 +00:00
Lucas Rocha
b9c6ba8536 no need to create a symlink to .desktop file in default-session directory
2008-04-10  Lucas Rocha  <lucasr@gnome.org>

	* src/Makefile.am: no need to create a symlink to .desktop file in
	default-session directory anymore as gnome-session will find
	metacity's .desktop in its original place.

svn path=/trunk/; revision=3681
2008-04-10 19:35:51 +00:00
Yair Hershkovitz
4e653cc49f updated hebrew translation
svn path=/trunk/; revision=3680
2008-04-10 10:00:07 +00:00
iain
c17d58237e Hide the overlay window (meta_compositor_unmanage_screen): Release the
2008-04-07  iain  <iain@gnome.org>

        * src/core/compositor.c (hide_overlay_window): Hide the overlay 
window
        (meta_compositor_unmanage_screen): Release the compositor 
overlay.
        (#526770)


svn path=/trunk/; revision=3678
2008-04-07 22:32:35 +00:00
Jens Granseuer
48261330de reorder declarations so we don't break C89 compilers.
2008-04-07  Jens Granseuer  <jensgr@gmx.net>

	* src/core/session.c: (save_state),
	(warn_about_lame_clients_and_finish_interact):
	reorder declarations so we don't break C89 compilers.

svn path=/trunk/; revision=3677
2008-04-07 20:50:37 +00:00
Thomas James Alexander Thurman
300be6e03b 2.23.5 release.
svn path=/trunk/; revision=3676
2008-04-06 19:07:03 +00:00
Eskild Hustvedt
0c83442709 Updated the Norwegian Nynorsk translation
svn path=/trunk/; revision=3674
2008-04-04 11:59:57 +00:00
Thomas Thurman
d372cf598a preferences which have a null target don't get updated! (#526016)
2008-04-03  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (handle_preference_update_bool): preferences
        which have a null target don't get updated! (#526016)


svn path=/trunk/; revision=3673
2008-04-03 17:36:32 +00:00
Baris Cicek
5fa7c76ba0 Updated turkish translation
svn path=/trunk/; revision=3671
2008-03-31 10:08:22 +00:00
Jorge Gonzalez Gonzalez
77644a32d7 Updated Spanish translation
svn path=/trunk/; revision=3670
2008-03-30 09:09:43 +00:00
Lucas Rocha
fb588c6075 make Metacity install its desktop files in the default session directory
2008-03-29  Lucas Rocha  <lucasr.at.mundo@gmail.com>

        * src/metacity.desktop.in, src/Makefile.am: make Metacity
        install its desktop files in the default session directory
        as required by the new gnome-session.  (Closes #525051.)


svn path=/trunk/; revision=3669
2008-03-30 00:01:18 +00:00
Thomas Thurman
6a586e8929 prevent null dereference if the theme was invalid, which caused crashes in
2008-03-29  Thomas Thurman  <tthurman@gnome.org>

        * src/ui/preview-widget.c (meta_preview_get_clip_region):
        prevent null dereference if the theme was invalid, which
        caused crashes in gnome-appearance-properties.  No GNOME
        bug number, but I believe this is a fix for Launchpad bug
        #199402 and its many duplicates.


svn path=/trunk/; revision=3668
2008-03-29 21:29:57 +00:00
Owen Taylor
58ef1592a5 Don't immediately unminimize an initially iconic window (#491090)
2008-03-28  Owen Taylor  <otaylor@redhat.com>

        * src/core/window.c (meta_window_new_with_attrs): Don't
        immediately unminimize an initially iconic window (#491090)


svn path=/trunk/; revision=3667
2008-03-28 18:44:59 +00:00
Thomas Thurman
9730f15411 files are saved in ~/.config/metacity/sessions and checked for there and
2008-03-27  Thomas Thurman  <tthurman@gnome.org>

        * src/core/session.c (regenerate_save_file, save_state, load_state):
        files are saved in ~/.config/metacity/sessions and checked for there
        and in ~/.metacity/sessions.  Fixes #518596.


svn path=/trunk/; revision=3666
2008-03-27 13:12:28 +00:00
Thomas Thurman
f3e64f181d fix regression where Metacity sometimes wouldn't quit when replaced
2008-03-27  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c (meta_display_close): fix regression
        where Metacity sometimes wouldn't quit when replaced


svn path=/trunk/; revision=3665
2008-03-27 12:32:50 +00:00
Thomas Thurman
0130c0d5b6 meta_display_screen_for_root is quite capable of returning NULL.
2008-03-26  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c (event_callback): meta_display_screen_for_root
        is quite capable of returning NULL.


svn path=/trunk/; revision=3664
2008-03-26 13:32:58 +00:00
Thomas Thurman
1e325bcbdf MetaDisplay becomes a singleton. The static variable which holds this
2008-03-25  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c (meta_display_queue_retheme_all_windows,
        meta_set_syncing, meta_display_set_cursor_theme, disable_compositor,
        meta_display_for_x_display, meta_display_open, meta_display_close,
        meta_display_ungrab): MetaDisplay becomes a singleton.  The static
        variable which holds this singleton is renamed "the_display" so as
        not to mask the this parameter in the methods.

        * src/core/main.c (main):
        * src/core/session.c (warn_about_lame_clients_and_finish_inte,
        save_state, io_from_warning_dialog):
        * src/core/core.c (meta_core_increment_event_serial):
        * src/core/delete.c (release_window_with_fd, search_and_destroy_window):
        sympathy changes for this, and consequent simplification.
        Closes #499301.


svn path=/trunk/; revision=3663
2008-03-25 03:39:13 +00:00
Nguyễn Thái Ngọc Duy
941a9a9a7f Update Vietnamese translation
2008-03-23  Nguyễn Thái Ngọc Duy <pclouds@gmail.com>

	* vi.po: Update Vietnamese translation


svn path=/trunk/; revision=3661
2008-03-23 12:11:59 +00:00
Thomas James Alexander Thurman
38b4f08b2b Post-release bump to 2.23.5.
svn path=/trunk/; revision=3660
2008-03-21 04:12:42 +00:00
Thomas James Alexander Thurman
fe1ea6ac34 2.23.3 release.
svn path=/trunk/; revision=3658
2008-03-21 04:07:03 +00:00
Thomas Thurman
932fb56ea9 Workspaces whose name is the standard name plus a non-empty string are
2008-03-21  Thomas Thurman  <tthurman@gnome.org>

        * src/ui/menu.c (activate_cb, get_workspace_name_with_accel): Workspaces
	whose name is the standard name plus a non-empty string are handled
	correctly in menus.  Closes #453678.


svn path=/trunk/; revision=3657
2008-03-21 02:56:52 +00:00
Kwok-Koon Cheung
18dfce2873 Typo fix for zh_HK and zh_TW
svn path=/trunk/; revision=3656
2008-03-20 10:00:18 +00:00
Iain Holmes
915192ca9f Handle compositor being disabled and don't crash.
2008-03-19  Iain Holmes  <iain@gnome.org>

        * src/core/compositor.c (meta_compositor_set_active_window): 
Handle
        compositor being disabled and don't crash.


svn path=/trunk/; revision=3655
2008-03-19 11:51:10 +00:00
Iain Holmes
f2b400b82c Add a screen argument. (process_property_notify): Damage the whole screen
2008-03-19  Iain Holmes  <iain@gnome.org>

        * src/core/compositor.c (meta_compositor_set_active_window): Add 
a
        screen argument.
        (process_property_notify): Damage the whole screen when the 
background
        changes. Fixes 522599
        (add_repair): Use the idle instead of the timeout. Fixes 522166
        (unmap_win): If the window is also focus window NULLify it.

        * src/core/window.c (meta_window_notify_focus): Notify when a 
window
        has lost focus, pass in screen as well.


svn path=/trunk/; revision=3654
2008-03-19 00:47:01 +00:00
Iain Holmes
e629364582 Allow shaped windows _with frames_ to have shadows.
2008-03-18  Iain Holmes  <iain@gnome.org>

        * src/core/compositor.c (window_has_shadow): Allow shaped 
windows
        _with frames_ to have shadows.
        (meta_compositor_set_active_window): Watch for the focus of 
windows
        and change the size of the drop shadows.
        (generate_shadows): Create differently sized shadows.
        (meta_compositor_get_window_pixmap): Get the xwindow correctly.

        * src/core/window.c (meta_window_notify_focus): Set the active 
window
        in the compositor.


svn path=/trunk/; revision=3653
2008-03-18 23:42:20 +00:00
Gabor Kelemen
3299427097 Translation updated
2008-03-18  Gabor Kelemen  <kelemeng@gnome.hu>

	* hu.po: Translation updated


svn path=/trunk/; revision=3652
2008-03-18 22:11:01 +00:00
Marco Pesenti Gritti
7d239b0d45 newly created windows can't be considered to be above themselves; fixes
2008-03-18  Marco Pesenti Gritti  <mpgritti@gmail.com>

        * src/core/window.c (window_would_be_covered): newly created windows
	can't be considered to be above themselves; fixes bug #519188.


svn path=/trunk/; revision=3650
2008-03-18 12:22:25 +00:00
Matthew Wilson
9836007f5e allow moving workspace while moving window with modifier remove the
2008-03-11  Matthew Wilson  <msw@gimp.org>

        * src/core/keybindings.c (meta_display_process_key_event, process_event,
        find_handler, process_mouse_move_resize_grab): allow moving workspace
	while moving window with modifier
        * src/core/workspace.c (meta_workspace_activate_with_focus): remove the
	correct window on jumping workspace while moving


svn path=/trunk/; revision=3649
2008-03-11 03:37:54 +00:00
Josh Lee
87cceaf992 Don't shadow shaped windows.
2008-03-10  Josh Lee  <jleedev@gmail.com>

        * src/core/compositor.c (window_has_shadow): Don't shadow
	shaped windows.


svn path=/trunk/; revision=3648
2008-03-10 13:52:55 +00:00
Kenneth Nielsen
f77dba7ac2 Updated Danish translation
svn path=/trunk/; revision=3646
2008-03-09 22:28:16 +00:00
Gabor Kelemen
d19de0c1ee Translation updated
2008-03-09  Gabor Kelemen  <kelemeng@gnome.hu>

	* hu.po: Translation updated


svn path=/trunk/; revision=3640
2008-03-09 21:41:30 +00:00
Daniel Nylander
142b64fff9 sv.po: Updated Swedish translation
svn path=/trunk/; revision=3638
2008-03-08 23:44:32 +00:00
Vasiliy Faronov
a9b20427a5 Updated Russian translation.
2008-03-09  Vasiliy Faronov  <qvvx@yandex.ru>

	* ru.po: Updated Russian translation.


svn path=/trunk/; revision=3636
2008-03-08 23:11:42 +00:00
Yannig MARCHEGAY
0e02cf9b07 Updated Occitan translation
svn path=/trunk/; revision=3635
2008-03-08 09:46:43 +00:00
Maxim Dziumanenko
5f4c3f817b Update Ukrainian translation.
2008-03-07 Maxim Dziumanenko <dziumanenko@gmail.com>

	* Update Ukrainian translation.

svn path=/trunk/; revision=3633
2008-03-07 14:29:27 +00:00
Thomas James Alexander Thurman
80e838aed5 Post-release bump to 2.23.3.
svn path=/trunk/; revision=3632
2008-03-07 03:12:35 +00:00
Thomas James Alexander Thurman
b4c369931d 2.23.2 release.
svn path=/trunk/; revision=3630
2008-03-07 03:05:10 +00:00
Thomas Thurman
1b00ca6158 remove debug statements (*blush*)
2008-03-07  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (mouse_button_mods_handler): remove
	debug statements (*blush*)


svn path=/trunk/; revision=3629
2008-03-07 03:02:44 +00:00
Thomas James Alexander Thurman
4b8a05b803 Post-release bump to 2.23.2.
svn path=/trunk/; revision=3628
2008-03-06 22:15:25 +00:00
Thomas James Alexander Thurman
fe816afa1d 2.23.1 release.
svn path=/trunk/; revision=3626
2008-03-06 22:01:27 +00:00
Thomas Thurman
b93a94506b basic md5 printing (not used yet); also print release announcements to
2008-03-06  Thomas Thurman  <tthurman@gnome.org>

        * tools/release-wrangler.py: basic md5 printing (not used yet);
	also print release announcements to stdout (eventually will
	need to be emailed to release list and blogged)


svn path=/trunk/; revision=3625
2008-03-06 21:51:47 +00:00
Thomas Thurman
d1ef896c73 Part three of the great prefs refactor, this time dealing with string
2008-03-06  Thomas Thurman  <tthurman@gnome.org>

        Part three of the great prefs refactor, this time
        dealing with string preferences.  (This was the most
        complicated part, and has been especially tested and
        valground before committing.  As ever, though, let us
        know if you find a problem.)

        * src/core/prefs.c (MetaStringPreference): new struct.  
        * src/core/prefs.c (update_*): replaced with *_handler  
        * src/core/prefs.c (meta_prefs_init): uses new string prefs
          init; uses array of gconf dirs to monitor rather than 
          repeating code.
        * src/core/prefs.c (handle_preference_init_enum): tidying
        * src/core/prefs.c (change_notify): uses new string prefs  


svn path=/trunk/; revision=3624
2008-03-06 17:59:20 +00:00
Thomas Thurman
ed5c34d335 added some spacing to see whether it helps Pulse
2008-03-04  Thomas Thurman  <tthurman@gnome.org>

        * MAINTAINERS: added some spacing to see whether it
	helps Pulse


svn path=/trunk/; revision=3623
2008-03-04 14:50:48 +00:00
Jorge Gonzalez Gonzalez
429a8ccd15 Updated Spanish translation
svn path=/trunk/; revision=3622
2008-03-03 22:56:40 +00:00
Cosimo Cecchi
a8c3d1614f Add ability to vertically and horizontally maximise using the mouse, by
2008-03-03  Cosimo Cecchi  <anarki@lilik.it>

	Add ability to vertically and horizontally maximise
	using the mouse, by clicking the titlebar in various
	ways.  A very similar patch was received from Jason Ribero.
	Thanks also go to Tony Houghton and Carlo Wood, who
	both submitted patches which solved this differently.
	Closes #358674.

        * src/include/common.h (MetaActionTitlebar): new values
	for the new actions
        * src/core/core.c (meta_core_maximize_{vertic|horizont}ally):
	new functions.
        * src/ui/frames.c (meta_frame_titlebar_event): handle the
	new action values
        * src/core/window.h: new macros (for regularity, not really
	necessary)
        * src/core/prefs.c (symtab_titlebar_action): new string
	representations of the action values
        * src/metacity.schemas.in: documentation


svn path=/trunk/; revision=3619
2008-03-03 01:58:54 +00:00
Chao-Hsiung Liao
ac10c309ea Updated Traditional Chinese translation(Hong Kong). Updated Traditional
2008-03-01  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>

        * zh_HK.po: Updated Traditional Chinese translation(Hong Kong).
        * zh_TW.po: Updated Traditional Chinese translation(Taiwan).



svn path=/trunk/; revision=3616
2008-03-01 00:54:00 +00:00
Andrea Del Signore
e021e06178 Add support for "spacer" as a button type which adds some empty space.
2008-02-29  Andrea Del Signore  <sejerpz@tin.it>

	Add support for "spacer" as a button type which adds some
	empty space. Closes #509165.

        * src/ui/theme.c (meta_frame_layout_calc_geometry),
          src/include/common.h (MetaButtonLayout),
          src/core/prefs.c (update_button_layout, button_layout_equal),
          src/metacity.schemas.in: add spacer support


svn path=/trunk/; revision=3615
2008-02-29 20:41:07 +00:00
Thomas Thurman
8c6f3853b0 removed unnecessary #include which should have been in Jim's patch (not
2008-02-28  Thomas Thurman  <tthurman@gnome.org>

        * src/core/compositor.h: removed unnecessary #include which
	should have been in Jim's patch (not sure how it slipped
	through the tests!)


svn path=/trunk/; revision=3610
2008-02-28 00:25:36 +00:00
Stéphane Raimbault
e7196621bc Updated French translation (merged from gnome-2-22).
2008-02-27  Stéphane Raimbault  <stephane.raimbault@gmail.com>

	* fr.po: Updated French translation (merged from gnome-2-22).

svn path=/trunk/; revision=3609
2008-02-27 21:15:50 +00:00
Jim Huang
f8a5ef7c9f deleted as no longer used modified accordingly
2008-02-27  Jim Huang  <jserv.tw@gmail.com>

        * src/core/spring-model.[ch]: deleted as no longer used
        * src/Makefile.am: modified accordingly

svn path=/trunk/; revision=3607
2008-02-27 19:55:09 +00:00
Thomas Thurman
85631aec0f Lots of tiny fixes to make sure we compile with "gcc -ansi -Werror".
2008-02-27  Thomas Thurman  <tthurman@gnome.org>

	Lots of tiny fixes to make sure we compile with
	"gcc -ansi -Werror".


svn path=/trunk/; revision=3606
2008-02-27 04:39:10 +00:00
Jens Granseuer
401b716cf5 reorder declarations so we don't break C89 compilers. Closes #518917.
2008-02-26  Jens Granseuer  <jensgr@gmx.net>

        * src/core/constraints.c (constrain_aspect_ratio,
	constrain_size_limits, constrain_size_increments):
	reorder declarations so we don't break C89 compilers.
	Closes #518917.


svn path=/trunk/; revision=3605
2008-02-26 20:47:29 +00:00
Thomas James Alexander Thurman
3d4adc8be9 Post-release bump to 2.23.1.
svn path=/trunk/; revision=3604
2008-02-26 19:19:42 +00:00
Thomas James Alexander Thurman
210206b699 2.23.0 release.
svn path=/trunk/; revision=3602
2008-02-26 19:13:38 +00:00
Thomas Thurman
c0c05d51ea ANY post-release bump is now the most recent, not just the one that
2008-02-26  Thomas Thurman  <tthurman@gnome.org>

        * tools/release-wrangler.py: ANY post-release bump is now the
	most recent, not just the one that matches the current version.
	Otherwise, you can't use these tools straight after a branch.
	The changeset before this one was mislabelled because of this.


svn path=/trunk/; revision=3601
2008-02-26 18:57:57 +00:00
Thomas James Alexander Thurman
9d9576612b 2.23.0 release.
svn path=/trunk/; revision=3600
2008-02-26 18:44:15 +00:00
Thomas Wood
abdb3fd8b9 allow users of the preview widget to get a mask for windows in the correct
2008-02-25  Thomas Wood  <thos@gnome.org>

        * src/ui/preview-widget.[ch] (meta_preview_get_clip_region):
	allow users of the preview widget to get a mask for windows
	in the correct shape for the current theme.


svn path=/trunk/; revision=3596
2008-02-25 15:39:49 +00:00
Changwoo Ryu
b3f766c618 Updated Korean translation
svn path=/trunk/; revision=3594
2008-02-24 15:04:22 +00:00
Yang Zhang
41e93f71be Updated zh_CN translation from branch gnome-2-22
svn path=/trunk/; revision=3593
2008-02-24 13:49:33 +00:00
Ilkka Tuohela
79076b2997 Updated Finnish translation (bug #518255)
svn path=/trunk/; revision=3591
2008-02-24 03:09:38 +00:00
Thomas Thurman
3684bd2da4 Refactor handling of boolean preferences.
2008-02-23  Thomas Thurman  <tthurman@gnome.org>

	Refactor handling of boolean preferences.

        * src/core/prefs.c (handle_preference_init_bool,
	handle_preference_update_bool): new functions.
	* src/core/prefs.c (meta_prefs_init, change_notify):
	use the new functions.
	* src/core/prefs.c (update_*): several of these removed whose
	only purpose was to receive boolean preferences.
	* src/core/prefs.c (cleanup_error, get_bool): moved down to make
	the flow of ideas more obvious.
	* src/core/prefs.c (maybe_give_disable_workarounds_warning): new
	function containing duplicated code from elsewhere.
	* src/core/prefs.c (init_button_layout): only compiled when
	HAVE_GCONF is not defined. Removed a compiler warning.

svn path=/trunk/; revision=3590
2008-02-23 21:02:05 +00:00
Thomas Thurman
d0e22bf63d Print URL of changeset on success.
2008-02-23  Thomas Thurman  <tthurman@gnome.org>

        * tools/commit-wrangler.py: Print URL of changeset on success.


svn path=/trunk/; revision=3589
2008-02-23 20:54:49 +00:00
Ihar Hrachyshka
8450d97341 Updated Belarusian Latin translation.
svn path=/trunk/; revision=3587
2008-02-23 09:40:44 +00:00
Thomas Thurman
3043d2a2be Refactored handling of enumerated preferences.
2008-02-23  Thomas Thurman  <tthurman@gnome.org>

        Refactored handling of enumerated preferences.

        * src/core/prefs.c (handle_preference_init_enum,
	handle_preference_update_enum): new functions.
        (meta_prefs_init, change_notify): use regularised
	forms and remove old copy-and-pasted code.
	Also many small similar functions removed which
	only existed to deal with each kind of enum.
	Also some amount of correction of which parts were
	and weren't inside "#ifdef HAVE_GCONF" blocks.



svn path=/trunk/; revision=3586
2008-02-23 06:16:03 +00:00
Mikkel Kamstrup Erlandsen
3ca31c7b04 Respect requested position on _NET_MOVERESIZE_WINDOW. Closes #448183
svn path=/trunk/; revision=3585
2008-02-21 10:00:10 +00:00
Ilkka Tuohela
8802ac2fe9 Updated Finnish translation
svn path=/trunk/; revision=3583
2008-02-20 04:59:03 +00:00
Yannig MARCHEGAY
61c7487172 Updated Occitan translation
svn path=/trunk/; revision=3582
2008-02-19 21:41:34 +00:00
Matthias Clasen
3782c482ef Make skip-taskbar windows appear in the Ctrl-Alt-Tab list. Closes #106249.
2008-02-18  Matthias Clasen  <mclasen@redhat.com>

        * src/core/window.h: Make skip-taskbar windows appear in the
        Ctrl-Alt-Tab list. Closes #106249.


svn path=/trunk/; revision=3580
2008-02-19 04:49:58 +00:00
Thomas Thurman
8c487ddbb2 if we have libSM and its headers, that means we did find it, not that we
2008-02-18  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: if we have libSM and its headers,
	that means we did find it, not that we didn't.
	Closes #328210.


svn path=/trunk/; revision=3579
2008-02-18 01:29:27 +00:00
Thomas Thurman
07939f235f When resizing a window with the keyboard, stay one pixels from the edges
2008-02-18  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window.c (warp_grab_pointer): When
	resizing a window with the keyboard, stay one 
	pixels from the edges so that the cursor remains
	resting on a window edge even if we escape,
	whatever side it was on. Closes #436257.


svn path=/trunk/; revision=3578
2008-02-18 00:21:50 +00:00
Wouter Bolsterlee
abfccf5002 Updated Dutch translation by Wouter Bolsterlee.
2008-02-18  Wouter Bolsterlee  <wbolster@svn.gnome.org>

	* nl.po: Updated Dutch translation by Wouter Bolsterlee.

svn path=/trunk/; revision=3576
2008-02-17 23:08:12 +00:00
Ihar Hrachyshka
df83c15583 Updated Belarusian Latin translation.
svn path=/trunk/; revision=3575
2008-02-17 22:56:44 +00:00
Thomas Thurman
83010879f1 added new script to manage commits
2008-02-17  Thomas Thurman  <tthurman@gnome.org>

        * tools/commit-wrangler.py: added new script to manage commits


svn path=/trunk/; revision=3574
2008-02-17 22:46:30 +00:00
Jim Huang
c35fd86b3b Allow compilation when gconf mode is disabled. Closes #515019.
2008-02-17  Jim Huang  <jserv.tw@gmail.com>

        * src/core/prefs.c (update_binding): Allow compilation
	when gconf mode is disabled. Closes #515019.


svn path=/trunk/; revision=3573
2008-02-17 22:43:28 +00:00
Runa Bhattacharjee
932fd0dcff Added Entry for Kannada Translation addition and addition to LINGUAS
svn path=/trunk/; revision=3572
2008-02-15 14:37:07 +00:00
Runa Bhattacharjee
2a53302ab9 Added Kannada (kn) to the List of Languages
svn path=/trunk/; revision=3571
2008-02-15 14:36:50 +00:00
Runa Bhattacharjee
44a4c1c9fb Added Kannada Translations by Shankar Prasad
svn path=/trunk/; revision=3570
2008-02-15 14:36:31 +00:00
Jim Huang
04956ecf18 fixups to allow compilation in non-verbose mode. Closes #515152.
2008-02-14  Jim Huang  <jserv.tw@gmail.com>                                                                      
                                                                                                                 
        * src/core/display.c, src/core/util.c: fixups to allow                                                   
        compilation in non-verbose mode. Closes #515152.   

svn path=/trunk/; revision=3569
2008-02-15 04:37:39 +00:00
Ignacio Casal Quinteiro
2d41d65cf2 Updated Galician Translation.
svn path=/trunk/; revision=3568
2008-02-14 12:26:04 +00:00
Pawan Chitrakar
7e41ffdda5 Updated Nepali Translation
svn path=/trunk/; revision=3567
2008-02-14 09:20:54 +00:00
Ilkka Tuohela
54c15a2583 Updated Finnish translation
svn path=/trunk/; revision=3565
2008-02-14 04:24:58 +00:00
Ilkka Tuohela
8aae0a7723 Updated Finnish translation
svn path=/trunk/; revision=3564
2008-02-13 10:48:00 +00:00
Thomas Thurman
f23d8a3774 Correct help for verbose option name.
2008-02-12  Thomas Thurman  <tthurman@gnome.org>                                                                 
                                                                                                                 
        * configure.in: Correct help for verbose option name. 


svn path=/trunk/; revision=3563
2008-02-13 04:13:06 +00:00
Thomas Thurman
aad6f37f8a Post-branch bump to 2.23.0.
2008-02-12  Thomas Thurman  <tthurman@gnome.org>                                                                 
                                                                                                                 
        * configure.in: Post-branch bump to 2.23.0.


svn path=/trunk/; revision=3562
2008-02-12 14:45:42 +00:00
Thomas James Alexander Thurman
404a61b571 Post-release bump to 2.21.21.
svn path=/trunk/; revision=3560
2008-02-12 00:05:38 +00:00
Thomas James Alexander Thurman
0312a3e474 2.21.13 release.
svn path=/trunk/; revision=3558
2008-02-11 23:59:37 +00:00
Duarte Loreto
c25a5c99ec Updated Portuguese translation.
2008-02-10  Duarte Loreto <happyguy_pt@hotmail.com>

	* pt.po: Updated Portuguese translation.

svn path=/trunk/; revision=3557
2008-02-10 12:03:41 +00:00
Hendrik Brandt
ac5759af24 Updated German translation.
2008-02-09  Hendrik Brandt  <heb@gnome-de.org>

        * de.po: Updated German translation.


svn path=/trunk/; revision=3556
2008-02-09 21:09:09 +00:00
Artur Flinta
9bee48dcd2 Updated Polish translation by GNOME PL Team.
2008-02-07  Artur Flinta  <aflinta@svn.gnome.org>

	* pl.po: Updated Polish translation by GNOME PL Team.


svn path=/trunk/; revision=3555
2008-02-07 21:06:55 +00:00
Rhys Jones
73d9143d76 Updated Welsh translation.
2008-02-05  Rhys Jones <rhys@sucs.org>

	* cy.po: Updated Welsh translation.

svn path=/trunk/; revision=3554
2008-02-05 21:39:19 +00:00
Amitakhya Phukan
230d78d8b4 updated assamese translations
svn path=/trunk/; revision=3553
2008-02-05 06:31:49 +00:00
Thomas Thurman
fbc3563b21 only use compositor version if we have a compositor. Closes #514453.
2008-02-04  Thomas Thurman  <tthurman@gnome.org>

        * src/core/compositor.c: only use compositor version if
        we have a compositor. Closes #514453.



svn path=/trunk/; revision=3552
2008-02-05 03:39:03 +00:00
Thomas Thurman
4c8557055c remove workaround for a problem in GTK 1.3.9(!) which was causing
2008-02-04  Thomas Thurman  <tthurman@gnome.org>

        * configure.in, src/ui/ui.c: remove workaround for a problem
          in GTK 1.3.9(!) which was causing problems. Closes #513737.


svn path=/trunk/; revision=3551
2008-02-04 17:25:30 +00:00
Michael Meeks
2f43d436c8 src/core/display.c (meta_display_open), fetch & use composite version, for
2008-01-28  Michael Meeks  <michael.meeks@novell.com>

        * src/core/display.c (meta_display_open),
        * src/core/compositor.c: fetch & use composite
        version, for remote screens that don't match the
        compile system's version.
        (meta_compositor_manage_screen): bin erroneous FIXME.
        (add_win): remove common warning churn for (very)
        transient windows


svn path=/trunk/; revision=3550
2008-02-04 15:57:07 +00:00
Thomas Thurman
a9a69ac807 another program I use for maintenance which other people might find useful
2008-02-03  Thomas Thurman  <tthurman@gnome.org>

        * tools/patch-wrangler.py: another program I use for maintenance
        which other people might find useful and which should probably
        be in svn. Also not very polished.


svn path=/trunk/; revision=3549
2008-02-04 00:04:05 +00:00
Thomas Thurman
8e7fe42b5e added new files for a regression test on the tokeniser. (They aren't very
2008-02-03  Thomas Thurman  <tthurman@gnome.org>

        * test/tokentest/tokentest.c, test/tokentest/tokentest.ini: added
        new files for a regression test on the tokeniser. (They aren't very
        polished at the moment and aren't included in the autotools build.)


svn path=/trunk/; revision=3548
2008-02-03 23:15:46 +00:00
Thomas James Alexander Thurman
d70219b88d Post-release bump to 2.21.13.
svn path=/trunk/; revision=3547
2008-02-03 22:36:08 +00:00
Thomas James Alexander Thurman
806fa75a70 2.21.8 release.
svn path=/trunk/; revision=3545
2008-02-03 22:29:28 +00:00
Thomas James Alexander Thurman
1177b13338 2.21.8 release.
svn path=/trunk/; revision=3544
2008-02-03 22:17:01 +00:00
Thomas James Alexander Thurman
ea2d79fbfb 2.21.8 release.
svn path=/trunk/; revision=3543
2008-02-03 22:01:47 +00:00
Thomas Thurman
f60624ac5b Fix quoting error and added some more error checking.
2008-02-03  Thomas Thurman  <tthurman@gnome.org>

        * tools/release-wrangler.py: Fix quoting error and added some
                more error checking.


svn path=/trunk/; revision=3542
2008-02-03 22:00:31 +00:00
Thomas Thurman
836a1f7b08 basic release script; needs work, but probably good enough for the current
2008-02-03  Thomas Thurman  <tthurman@gnome.org>

        * tools/release-wrangler.py: basic release script; needs work,
        but probably good enough for the current unstable release


svn path=/trunk/; revision=3541
2008-02-03 21:47:09 +00:00
Arangel Angov
a660fd3805 Updating Macedonian Translation, Arangel Angov <arangel@linux.net.mk>
svn path=/trunk/; revision=3540
2008-02-03 11:52:35 +00:00
Takeshi AIHANA
d5cea091bf Updated Japanese translation.
2008-02-03  Takeshi AIHANA <takeshi.aihana@gmail.com>

        * ja.po: Updated Japanese translation.

svn path=/trunk/; revision=3539
2008-02-03 09:08:16 +00:00
Thomas James Alexander Thurman
0bd1727eab First draft of the release script; needs post-release bump adding
svn path=/trunk/; revision=3538
2008-02-03 06:02:52 +00:00
Thomas Thurman
8bd2822e69 core.h is in include, not core. (Last one, I promise.)
2008-02-02  Thomas Thurman  <tthurman@gnome.org>

        * src/Makefile.am: core.h is in include, not core. (Last one, I
          promise.)


svn path=/trunk/; revision=3537
2008-02-03 05:53:18 +00:00
Thomas Thurman
7a340792c9 main.h is in include, not core.
2008-02-02  Thomas Thurman  <tthurman@gnome.org>

        * src/Makefile.am: main.h is in include, not core.


svn path=/trunk/; revision=3536
2008-02-03 04:25:38 +00:00
Thomas Thurman
8e77d5b28d draw-workspace.h is in ui, not core.
2008-02-02  Thomas Thurman  <tthurman@gnome.org>

        * src/Makefile.am: draw-workspace.h is in ui, not core.


svn path=/trunk/; revision=3535
2008-02-02 21:35:23 +00:00
Luca Ferretti
8e79100b92 Updated Italian translation.
2008-02-02  Luca Ferretti  <elle.uca@libero.it>

	* it.po: Updated Italian translation.


svn path=/trunk/; revision=3534
2008-02-02 10:06:22 +00:00
Alex R.M. Turner
18b63e9b5f Have the list also pull windows that are in other workspaces that have the
2008-02-01  Alex R.M. Turner  <armtuk@gmail.com>

        * src/core/display.c (meta_get_tab_entry_list): Have the list also pull 
          windows that are in other workspaces that have the  
          wm_state_needs_attention flag set
        * src/core/window.c (meta_window_set_demands_attention): Make windows that
          are on other workspaces that demand attention that aren't obscured
          count as being obscured
        Bug #333548.

svn path=/trunk/; revision=3533
2008-02-02 04:05:16 +00:00
Theppitak Karoonboonyanan
48b6e8dd67 Updated Thai translation.
2008-02-01  Theppitak Karoonboonyanan  <thep@linux.thai.net>

	* th.po: Updated Thai translation.


svn path=/trunk/; revision=3532
2008-02-01 11:11:40 +00:00
Djihed Afifi
fb872b8f1e Updated Arabic Translation by Khaled Hosny.
svn path=/trunk/; revision=3531
2008-01-31 08:22:18 +00:00
Rahul Bhalerao
94be13a003 Updated Marathi translations
svn path=/trunk/; revision=3530
2008-01-29 18:46:43 +00:00
Christian Persch
ea1c807d69 Use G_STRFUNC instead of the deprecated G_GNUC_FUNCTION. Bug #512561.
2008-01-28  Christian Persch  <chpe@gnome.org>

	* src/core/display.c: (convert_property):
	* src/core/screen.c: (meta_screen_calc_workspace_layout):
	* src/core/xprops.c: (meta_prop_get_values): 
	Use G_STRFUNC instead of the deprecated G_GNUC_FUNCTION. Bug #512561.

svn path=/trunk/; revision=3529
2008-01-28 14:52:34 +00:00
Baris Cicek
1df98bd6a4 Fixed typo in Turkish translation
svn path=/trunk/; revision=3528
2008-01-26 22:51:33 +00:00
Matej Urbančič
6c192b67a9 Updated Slovenian translation
svn path=/trunk/; revision=3527
2008-01-26 08:53:12 +00:00
Petr Kovář
4a792d207c cs.po: Updated Czech translation.
svn path=/trunk/; revision=3526
2008-01-25 20:30:12 +00:00
Andre Klapper
1daf7543eb Sync "beep" translation.
2008-01-22  Andre Klapper  <a9016009@gmx.de>

	* de.po: Sync "beep" translation.


svn path=/trunk/; revision=3525
2008-01-22 12:06:05 +00:00
Thomas Thurman
b4890a3d22 more commenting.
2008-01-21  Thomas Thurman  <tthurman@gnome.org>

     * src/ui/theme.[ch]: more commenting.



svn path=/trunk/; revision=3524
2008-01-22 04:00:35 +00:00
Thomas Thurman
7b031a1c28 some more commenting.
2008-01-18  Thomas Thurman  <tthurman@gnome.org>                                                                                                  
                                                                                                                                                  
        * src/ui/theme.[ch]: some more commenting. 

svn path=/trunk/; revision=3523
2008-01-18 05:07:53 +00:00
Thomas Thurman
ca098b2416 Correct comment. Correct comment. Much commenting; #ifdeffed-out debug
2008-01-16  Thomas Thurman  <tthurman@gnome.org>

        * src/core/bell.c: Correct comment.
        * src/core/main.c: Correct comment.
        * src/core/theme.c: Much commenting; #ifdeffed-out debug code removed.
        * src/core/theme.h: Much commenting.



svn path=/trunk/; revision=3522
2008-01-17 03:49:24 +00:00
Daniel Nylander
cb5134de8d sv.po: Swedish translation updated
svn path=/trunk/; revision=3521
2008-01-15 03:13:01 +00:00
Inaki Larranaga Murgoitio
e5009396f8 Updated Basque translation.
2008-01-14  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>

	* eu.po: Updated Basque translation.


svn path=/trunk/; revision=3520
2008-01-14 15:42:38 +00:00
Kjartan Maraas
53a116333c Updated Norwegian bokmål translation.
2008-01-14  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.

svn path=/trunk/; revision=3519
2008-01-14 11:45:09 +00:00
Thomas Thurman
13918cea25 Commenting. Commenting, and fixing existing comments.
2008-01-13  Thomas Thurman  <tthurman@gnome.org>
        * src/core/bell.c: Commenting.
        * src/core/main.c: Commenting, and fixing existing comments.

svn path=/trunk/; revision=3518
2008-01-13 16:32:56 +00:00
Jorge Gonzalez Gonzalez
03f14bd5dd Updated Spanish translation
svn path=/trunk/; revision=3517
2008-01-13 11:35:04 +00:00
Thomas Thurman
8828532d14 Refactor repeated lines in main() to iterate instead.
2008-01-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/main.c: Refactor repeated lines in main() to
       iterate instead.


svn path=/trunk/; revision=3516
2008-01-13 02:53:25 +00:00
Thomas Thurman
146ad60c7f removed as it was never used. lots of comments. copyright year is 2008.
2008-01-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/main.[ch] (meta_get_main_loop): removed as it
        was never used.
        * src/core/main.c: lots of comments.
        * src/core/main.c (version): copyright year is 2008.
        * src/core/c-screen.[ch], src/core/c-window.[ch]: removed
        files from Søren's compositor which were removed by the
        merge with Iain's compositor but reintroduced by the split
        to separate subdirectories.
        * src/core/display.c: fix comments.


svn path=/trunk/; revision=3515
2008-01-13 02:42:47 +00:00
Thomas Thurman
6da40d919b reinstated missing first character! correct reordering of blank fields.
2008-01-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c: reinstated missing first character!
        * Doxyfile: correct reordering of blank fields.



svn path=/trunk/; revision=3514
2008-01-13 01:10:12 +00:00
Thomas Thurman
a4d657a324 change comments from /*! to /** because the other way makes doxygen think
2008-01-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c: change comments from /*! to /** because the
          other way makes doxygen think they are Qt comments, which messes
          up brief descriptions.
        * Doxyfile: check in so other people can generate documentation too.
                                                                             

svn path=/trunk/; revision=3513
2008-01-13 01:01:21 +00:00
Yair Hershkovitz
4419430a57 updated hebrew translation
svn path=/trunk/; revision=3512
2008-01-09 17:36:22 +00:00
Thomas Thurman
11ba3be6b9 further commenting (trying to keep comment addings down to once a day at
2008-01-07  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c: further commenting (trying to keep comment
                        addings down to once a day at most so you don't all get spammed
                                    too much). 



svn path=/trunk/; revision=3511
2008-01-08 03:59:12 +00:00
Thomas Thurman
286af99def g_free is a no-op on nulls; there is no need to test.
2008-01-07  Thomas Thurman  <tthurman@gnome.org>

        * src/core/main.c (main): g_free is a no-op on nulls; there is no
       need to test.



svn path=/trunk/; revision=3510
2008-01-08 03:13:17 +00:00
Thomas Thurman
a409a0a098 Function commenting marathon; more to come.
2008-01-06  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c: Function commenting marathon; more to come.



svn path=/trunk/; revision=3506
2008-01-06 21:23:33 +00:00
Ihar Hrachyshka
ee7cfc8824 Updated Belarusian Latin translation.
svn path=/trunk/; revision=3505
2008-01-06 00:37:38 +00:00
Clytie Siddall
af8d3c16bf Updated Vietnamese translation
svn path=/trunk/; revision=3504
2008-01-05 10:41:11 +00:00
Thomas Thurman
9d1549e1ff Two really minor coding standards layout tweaks.
2008-01-02  Thomas Thurman  <tthurman@gnome.org>

        * src/core/xprops.c (meta_prop_get_cardinal), src/core/compositor.c
        (timeout_debug): Two really minor coding standards layout tweaks.


svn path=/trunk/; revision=3503
2008-01-03 03:30:55 +00:00
Yannig MARCHEGAY
845ecdc3af Updated Occitan translation
svn path=/trunk/; revision=3502
2007-12-31 20:56:56 +00:00
Daniel Nylander
1c5ef4a50f sv.po: Swedish translation updated
svn path=/trunk/; revision=3501
2007-12-30 23:59:41 +00:00
Iain Holmes
212a9f26ab Don't do anything in meta_compositor_free_window. It doesn't seem to be
needed and breaks stuff badly (disappearing windows)

svn path=/trunk/; revision=3500
2007-12-27 23:51:29 +00:00
Iain Holmes
e61015cb42 Don't set mark newly mapped windows as damaged. Fixes a shadow drawing
issue


svn path=/trunk/; revision=3499
2007-12-27 23:11:43 +00:00
Iain Holmes
c96ae75437 USe the compositor overlay window instead of the root window.
2007-12-25  Iain Holmes  <iain@gnome.org>

        * src/core/compositor.c: USe the compositor overlay window 
instead of
        the root window.


svn path=/trunk/; revision=3498
2007-12-25 22:55:59 +00:00
Seán de Búrca
a8e2f45b1c Updated Irish translation.
2007-12-22  Seán de Búrca  <sdeburca@svn.gnome.org>

    * ga.po: Updated Irish translation.

svn path=/trunk/; revision=3497
2007-12-22 10:03:25 +00:00
Seán de Búrca
33383e1f4f Remove dead files.
2007-12-22  Seán de Búrca  <sdeburca@svn.gnome.org>

    * ga.po: Remove dead files.

svn path=/trunk/; revision=3496
2007-12-22 09:17:56 +00:00
Paolo Borelli
b9e1a9159e do not leak list.
2007-12-21  Paolo Borelli  <pborelli@katamail.com>

	* src/core/core.c (meta_invalidate_default_icons): do not leak list.

	* src/core/edge-resistance.c 
	(meta_display_compute_resistance_and_snapping_edges): ditto.

	* src/core/workspace.c (meta_workspace_index): small cleanup in list
	handling.


svn path=/trunk/; revision=3495
2007-12-21 19:56:07 +00:00
Matej Urbančič
5dc41f8c94 Updated Slovenian translation
svn path=/trunk/; revision=3494
2007-12-20 13:13:33 +00:00
Kjartan Maraas
4aaf053760 Rearrange after stuff moved around. Update
2007-12-20  Kjartan Maraas  <kmaraas@gnome.org>

	* POTFILES.in: Rearrange after stuff moved around.
	* nb.po: Update

svn path=/trunk/; revision=3493
2007-12-20 08:00:44 +00:00
Havoc Pennington
b718f79c47 fix a third warning about %d and long int
2007-12-19  Havoc Pennington  <hp@redhat.com>

	* src/core/display.c (meta_display_open): fix a third warning
	about %d and long int

	* src/core/delete.c (io_from_ping_dialog): fix another warning
	about long int to %d

	* src/core/compositor.c (meta_compositor_new): fix a warning about
	long int to %d

	* src/core/iconcache.c (meta_read_icons): use
	meta_ui_get_fallback_icons() instead of incorrectly including theme.h

	* src/ui/ui.c (meta_ui_get_fallback_icons): new function


svn path=/trunk/; revision=3492
2007-12-19 21:38:15 +00:00
Havoc Pennington
72b08c82b1 sort source files into these directories according to which part of the WM
2007-12-19  Havoc Pennington  <hp@redhat.com>

	* src/ui, src/core, src/include: sort source files into these
	directories according to which part of the WM they are supposed to
	be in. In an eventual plan, we should also create
	src/compositor/render, src/compositor/fallback and move some of
	the compositor stuff into that.
	
	* autogen.sh: require a newer automake, so we don't have to use
	a recursive build

	* src/ui/tabpopup.c: put in a hack to make the build temporarily
	work, want to commit the large rearrangement before fixing this
	not to include workspace.h or frame.h

	* src/core/iconcache.c (meta_read_icons): temporarily break this
	to get the build to work, want to commit the large rearrangement
	before fixing this file not to include theme.h


svn path=/trunk/; revision=3491
2007-12-19 21:17:50 +00:00
Thomas Thurman
3880951458 Post-release bump to 2.21.8.
2007-12-19  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: Post-release bump to 2.21.8.



svn path=/trunk/; revision=3490
2007-12-19 12:15:29 +00:00
Thomas Thurman
3229882183 2.21.3 release.
2007-12-14  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.21.3 release.


svn path=/trunk/; revision=3488
2007-12-19 11:42:51 +00:00
Kjartan Maraas
f4cc847f83 Updated Norwegian bokmål translation.
2007-12-19  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.

svn path=/trunk/; revision=3487
2007-12-19 11:35:34 +00:00
Thomas Thurman
a63d5801ae print "Subversion" and not "CVS".
2007-12-19  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: print "Subversion" and not "CVS".


svn path=/trunk/; revision=3486
2007-12-19 11:04:16 +00:00
Jorge Gonzalez Gonzalez
4b774eb18e Updated Spanish translation
svn path=/trunk/; revision=3485
2007-12-19 07:43:42 +00:00
Thomas Thurman
d052782caf compositor enabled by default.
2007-12-18  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: compositor enabled by default.


svn path=/trunk/; revision=3484
2007-12-19 04:34:11 +00:00
Iain Holmes
c2a6eeaf5e Merge compositor branch.
2007-12-18  Iain Holmes  <iain@gnome.org>

        * configure.in, src/theme.c, src/display.c,
      src/theme.h, src/display.h, src/theme-parser.c,
      src/compositor.c, src/c-screen.c, src/compositor.h,
      src/c-screen.h, src/ui.c, src/screen.c, src/ui.h,
      src/screen.h, src/c-window.c, src/c-window.h,
      src/theme-viewer.c, src/Makefile.am: Merge compositor branch.


svn path=/trunk/; revision=3483
2007-12-19 03:49:50 +00:00
Daniel Nylander
931d70d87f sv.po: Updated Swedish translation
svn path=/trunk/; revision=3477
2007-12-17 15:20:49 +00:00
Kjartan Maraas
f28cd718f8 Updated Norwegian bokmål translation.
2007-12-15  Kjartan Maraas  <kmaraas@gnome.org>

	* nb.po: Updated Norwegian bokmål translation.

svn path=/trunk/; revision=3476
2007-12-15 11:47:20 +00:00
Thomas Thurman
623e4dc05c Post-release bump to 2.21.5.
2007-12-14  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: Post-release bump to 2.21.5.



svn path=/trunk/; revision=3475
2007-12-15 03:31:34 +00:00
Thomas Thurman
89e47e2431 2.21.3 release.
2007-12-14  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.21.3 release.


svn path=/trunk/; revision=3473
2007-12-15 03:23:09 +00:00
Thomas Thurman
83e18f8da4 remove dead code; closes #501365.
2007-12-11  Thomas Thurman  <tthurman@gnome.org>

        * src/theme-parser.c: remove dead code; closes #501365.


svn path=/trunk/; revision=3472
2007-12-12 02:23:53 +00:00
Jorge Gonzalez Gonzalez
42951ec68f Updated Spanish translation, fixes bug #500562 and bug #500831
svn path=/trunk/; revision=3470
2007-12-10 15:25:45 +00:00
Matej Urbančič
a99ece5a5e Updated Slovenian translation
svn path=/trunk/; revision=3468
2007-12-10 15:06:06 +00:00
Jorge Gonzalez Gonzalez
6bb78dcb0b Updated Spanish translation, fixes bug #500831
svn path=/trunk/; revision=3467
2007-12-10 14:02:00 +00:00
Thomas Thurman
855de7253d rewrite long description of
2007-12-08  Thomas Thurman  <tthurman@gnome.org>

        * src/metacity.schemas.in: rewrite long description of
        /schemas/apps/metacity/general/focus_new_windows because we
        love the translators really. Closes #474889.


svn path=/trunk/; revision=3466
2007-12-09 23:48:39 +00:00
Matthias Clasen
e7dc04d28e check for null before adding menu; closes #496054.
2007-12-08  Matthias Clasen  <mclasen@redhat.com>

        * src/menu.c (meta_window_menu_new): check for null before adding
        menu; closes #496054.


svn path=/trunk/; revision=3465
2007-12-09 23:03:45 +00:00
Thomas Thurman
4564236abf Recur if the keypress ended a grab, so it can be processed in its own
2007-12-08  Thomas Thurman  <tthurman@gnome.org>

        * src/keybindings.c (meta_display_process_key_event): Recur if the
        keypress ended a grab, so it can be processed in its own right.
        Closes #112560.


svn path=/trunk/; revision=3464
2007-12-09 22:56:12 +00:00
Jorge Gonzalez Gonzalez
e7758d64d8 Updated Spanish translation, fixes bug #500562
svn path=/trunk/; revision=3463
2007-12-09 20:41:46 +00:00
Martin Meyer
71c83da805 Fix typo where wrong variable was checked (reported by Kjartan Maraas).
2007-12-08  Martin Meyer  <elreydetodo@gmail.com>

        * src/theme-parser.c (parse_draw_op_element): Fix
        typo where wrong variable was checked (reported by
        Kjartan Maraas). Closes #501362.


svn path=/trunk/; revision=3462
2007-12-09 19:39:26 +00:00
Jakub Friedl
2891388813 Czech Translation updated by Petr Kovar.
2007-12-08  Jakub Friedl  <jfriedl@suse.cz>

  * cs.po: Czech Translation updated by Petr Kovar.


svn path=/trunk/; revision=3461
2007-12-08 09:45:35 +00:00
Ihar Hrachyshka
194c514b45 Updated Belarusian Latin translation.
svn path=/trunk/; revision=3460
2007-12-08 09:06:37 +00:00
Leonardo Ferreira Fontenelle
69255114d9 Fixes in Brazilian Portuguese translation by Luiz Armesto.
2007-12-08  Leonardo Ferreira Fontenelle  <leonardof@svn.gnome.org>

	* pt_BR.po: Fixes in Brazilian Portuguese translation by Luiz Armesto.

svn path=/trunk/; revision=3459
2007-12-08 02:21:46 +00:00
Leonardo Ferreira Fontenelle
43f0c34cf8 Fixed attributes in Brazilian Portuguese translation by Rodrigo Flores.
2007-12-07  Leonardo Ferreira Fontenelle  <leonardof@svn.gnome.org>

	* pt_BR.po: Fixed attributes in Brazilian Portuguese translation by
	Rodrigo Flores.

svn path=/trunk/; revision=3457
2007-12-08 01:06:11 +00:00
Marcel Telka
aa2af695d7 Updated Slovak translation by Pavol Šimo.
2007-12-02  Marcel Telka  <marcel@telka.sk>

	* sk.po: Updated Slovak translation by Pavol Šimo.

svn path=/trunk/; revision=3449
2007-12-02 22:30:58 +00:00
Ignacio Casal Quinteiro
539285ca78 Updated Galician Translation.
svn path=/trunk/; revision=3446
2007-11-28 13:26:25 +00:00
Yannig MARCHEGAY
dda8866f30 Updated Occitan translation
svn path=/trunk/; revision=3421
2007-11-20 20:01:23 +00:00
Matej Urbančič
618115931e Updated Slovenian translation
svn path=/trunk/; revision=3416
2007-11-19 14:23:56 +00:00
Lucas Rocha
20d599819b try to get the session client ID from DESKTOP_AUTOSTART_ID environment
2007-11-19  Lucas Rocha  <lucasr@gnome.org>

	* src/main.c (main): try to get the session client ID from 
	DESKTOP_AUTOSTART_ID environment variable in case the --sm-client-id 
	is not used. Closes #498033.

svn path=/trunk/; revision=3415
2007-11-18 23:48:23 +00:00
Thomas Thurman
a8583668eb Post-release bump to 2.21.3.
2007-11-17  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: Post-release bump to 2.21.3.


svn path=/trunk/; revision=3414
2007-11-18 04:40:22 +00:00
Thomas James Alexander Thurman
4b0fd1b7d8 ==================================================
gnome-panel-2.3.1.tar.gz is ready for distribution
==================================================

svn path=/trunk/; revision=3412
2007-11-18 04:37:26 +00:00
Benjamin Gramlich
3789229a70 make our theme search compliant to the XDG Base Directory Specification.
2007-11-17  Benjamin Gramlich  <benjamin.gramlich@gmail.com>

        * src/theme-parser.c (meta_theme_load): make our theme
        search compliant to the XDG Base Directory Specification.
        Closes #480026.


svn path=/trunk/; revision=3411
2007-11-18 03:23:58 +00:00
Thomas Thurman
14c046d18d remove almost-unused files. move the used parts of api.[ch] in here.
2007-11-15  Thomas Thurman  <thomas@thurman.org.uk>                                                                                                                       
                                                                                                                                                                          
        * src/api.[ch]: remove almost-unused files.                                                                                                                       
        * src/colors.[ch]: move the used parts of api.[ch] in here.                                                                                                       
        Closes #496947.


svn path=/trunk/; revision=3401
2007-11-16 02:53:25 +00:00
Matej Urbančič
386ffb4752 Updated Slovenian translation
svn path=/trunk/; revision=3392
2007-11-13 13:53:38 +00:00
Peter Bloomfield
fa51a94a69 more changes discussed in bug #461927
svn path=/trunk/; revision=3391
2007-11-13 13:31:14 +00:00
Matej Urbančič
ef3f8c18a1 Updated Slovenian translation
svn path=/trunk/; revision=3390
2007-11-12 14:28:44 +00:00
Thomas Thurman
f4e327f69c Post-release bump to 2.21.2.
2007-11-11  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: Post-release bump to 2.21.2.

2007-11-11  Thomas Thurman  <thomas@thurman.org.uk>

        * NEWS: 2.21.1 release.



svn path=/trunk/; revision=3389
2007-11-12 04:48:04 +00:00
204 changed files with 113628 additions and 83641 deletions

1787
ChangeLog

File diff suppressed because it is too large Load Diff

1297
Doxyfile Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -22,6 +22,7 @@ Userid: tthurman
Semi-active maintainers
--------------------------------
Havoc Pennington
Email: hp redhat com
Userid: hp
@@ -32,6 +33,7 @@ Userid: hp
Important historical figureheads
--------------------------------
Rob Adams (readams readams net)
- Was the main maintainer of metacity for a while; particular areas
of focus included xinerama, placement, and an older version of the

488
NEWS
View File

@@ -1,3 +1,491 @@
2.25.89
=======
Thanks to Yanko Kaneti, Frederic Peters, Thomas Thurman, and Colin Walters for
improvements in this version.
- The maximisation key is a toggle. (Thomas) (#343824)
- "Unmaximise" is now called "restore". (Thomas) (#343824)
- New thread handling call for gconf (Frederic) (#565517)
- Add screenshot commands back which had been removed (Yanko) (#565343)
- move_to_corner_se keybinding fixed (Thomas)
- Windows on other workspaces which attempt to present themselves
are marked as needing attention (Colin) (#482354)
- End the grab op when the user clicks the titlebar (Thomas) (#401028)
Translations
Jorge González (es)
2.25.55
=======
Thanks to Erwann Chenede for improvements in this version.
- Fix build on Solaris (Erwann) (#564123)
Translations
Mattias Põldaru (et), Luca Ferretti (it)
2.25.34
=======
Thanks to Matt Kraai for improvements in this version.
- Fixes to Thomas's earlier fixes (Matt) (#562939)
Translations
None
2.25.21
=======
Thanks to Thomas Thurman for improvements in this version.
- Fixes to allow building without compositor again (Thomas)
- Fixes for -Wall problems (Thomas)
- Various tool updates (Thomas)
Translations: none
2.25.13
=======
Thanks to Thomas Thurman for improvements in this version.
- Add casts to fix failure to build from source on 64bit hosts (Thomas) (#562106)
- Added script to produce annoucements (Thomas)
Translations
Jorge González (es)
2.25.8
======
Thanks to Brian Cameron, Maxim Ermilov, Daniel Macks, Elijah Newren, Frederic
Peters, Thomas Thurman, David Trowbridge, and Olav Vitters for improvements in
this version.
- Reorder compiler flags (Daniel) (#562033)
- Fix compositor switch (Daniel) (#560990)
- Remove spurious warnings about operations on window "none" (Thomas)
- Fix _POSIX_C_SOURCE which was breaking OS X builds (Thomas) (#561962)
- -Werror -Wall and -ansi are now standard compile flags (Thomas)
- Merge screen and window keybindings files; fix minor alt-tab bug
in the process (Thomas) (#528337)
- Support _NET_WM_FULLSCREEN_MONITORS (David)
- Remove some deprecated calls (Thomas) (#560445)
- Clean up #includes (Maxim) (#560449)
- Update description of raise_on_click (Elijah)
- First dialogue delegated to zenity (Thomas)
- fix theme-parser typo (Olav)
- double-quote variable names in messages (Thomas) (#558309)
- fix accidental renaming of run_command_terminal (Thomas) (#557943)
- some null checks; problems exposed by new GDM (Brian) (#558058)
- ignore mouse button modifier if it's missing (Thomas) (Launchpad 258054, Launchpad 266929)
- fix docbook markup (Frederic)
Translations
Astur (ast), Jorge González (es), Thomas Thurman (la), Leonardo Ferreira
Fontenelle (pt_BR), Daniel Nylander (sv)
2.25.5
======
Thanks to Thomas Thurman for improvements in this version.
- Allow third-party apps to decide whether a window appears
on all workspaces (Thomas) (#557536)
- Fixed keybindings script (again) (Thomas)
Translations
David Planella (ca), Robert Millan (ca@valencia)
2.25.3
======
Brown paper bag release which fixes numerous build problems from last night's
release of 2.25.2. Apologies.
Thanks to Murray Cumming, Thomas Thurman, and Götz Waschk for improvements
in this version.
- Fix distcheck (Thomas) (#557356)
- add libm reference (Götz) (#557357)
- fix docbook tags (Murray) (#557337)
Translations
Yavor Doganov (bg), David Planella (ca), Robert Millan (ca@valencia), Kenneth
Nielsen (da), Hendrik Richter (de), Ivar Smolin (et), Claude Paroz (fr), Seán de
Búrca (ga), Launchpad Translations Administrators (hr), Gabor Kelemen (hu),
Thomas Thurman (la), Žygimantas Beručka (lt), Kjartan Maraas (nb), Duarte
Loreto (pt), Djavan Fagundes (pt_BR), Mugurel Tudor (ro), Pavol Šimo (sk),
Laurent Dhima (sq), Горан Ракић (sr), Theppitak Karoonboonyanan (th),
Funda Wang (zh_CN)
2.25.2
======
Thanks to Joe Marcus Clarke, Murray Cumming, Tomas Frydrych, William Lachance,
Matthew Martin, Christian Persch, Thomas Thurman, and Vincent Untz for
improvements in this version.
- Add handler for SIGTERM (Joe) (#553980)
- Minimised windows are necessarily obscured (Matthew) (#528927)
- Build fixes with the above (Christian, Tomas, Thomas) (#557335)
(#557201) (#469361)
- Changed keybindings to be in a single place (Thomas) (#469361)
- Add new document about themes (Murray)
- Remove obsolete support for fallback icons (Thomas)
- Pass modified mouse events to panels (William) (#554428)
- Change where desktop files should go (Vincent) (#549479)
Translations
Yavor Doganov (bg), David Planella (ca), Kenneth Nielsen (da), Hendrik
Richter (de), Ivar Smolin (et), Claude Paroz (fr), Seán de Búrca (ga), Launchpad
Translations Administrators (hr), Gabor Kelemen (hu), Thomas Thurman (la),
Žygimantas Beručka (lt), Kjartan Maraas (nb), Duarte Loreto (pt), Djavan
Fagundes (pt_BR), Mugurel Tudor (ro), Pavol Šimo (sk), Laurent Dhima (sq),
Горан Ракић (sr), Theppitak Karoonboonyanan (th), Funda Wang (zh_CN)
2.25.1
======
Thanks to Thomas Thurman for improvements in this version.
- Fix small memory leak, found by Matthias Clasen (Thomas) (#549952)
- Added move_to_center keybinding suggested by
Khanh-Dang Nguyen Thu Lam (Thomas) (#549979)
- Compositor can be turned on and off from the command line
(#545323) (Thomas)
Translations
Khaled Hosny (ar), Petr Kovar (cs), Iñaki Larrañaga Murgoitio (eu), Ilkka
Tuohela (fi), Žygimantas Beručka (lt), Duarte Loreto (pt), Djavan
Fagundes (pt_BR), Laurent Dhima (sq)
2.25.0
======
Thanks to Patrick Niklaus, Ted Percival, Eric Piel, Akira TAGOH, and Thomas
Thurman for improvements in this version.
- Fix memory allocation problem in struts (Eric) (probably #468075)
- Ensure windows which start maximised know where to jump back
to, so they don't warp to other screens (Ted) (#504692)
- Added header comments to some files (Thomas)
- Icons for windows which are uncooperative enough not to provide
an icon are taken from the theme, not built in (Patrick) (#524343)
- Added manual page for metacity-message (Akira, from Debian downstream)
Translations
Khaled Hosny (ar), Petr Kovar (cs), Ilkka Tuohela (fi), Duarte Loreto (pt), Djavan
Fagundes (pt_BR)
2.23.89
=======
Thanks to Thomas Thurman for improvements in this version.
- Added DOAP file. (Thomas)
Translations
Khaled Hosny (ar), Luca Ferretti (it), Takeshi AIHANA (ja), Wouter
Bolsterlee (nl), Vladimir Melo (pt_BR), Daniel Nylander (sv)
2.23.55
=======
Thanks to Elijah Newren and Thomas Thurman for improvements in this version.
Contrary to rumour, this release does not add tabbing to everything.
- Display theme name in title bar of theme viewer (Thomas) (#430198)
- Allow toggling of non-compositor effects (Thomas) (#92867)
- Add some extra null checks (Thomas) (#422242)
- Check for double-freeing at the time of workspace freeing (Elijah) (#361804)
- Don't generate log messages unless we're logging (Thomas)
- Two windows which don't belong to any application can't be considered to
belong to the same application (Thomas)
- Various tidyings (Thomas)
Translations
Yavor Doganov (bg), Gabor Kelemen (hu), Kjartan Maraas (nb), Matej
Urbančič (sl), Daniel Nylander (sv), Theppitak Karoonboonyanan (th)
2.23.34
=======
Thanks to Thomas Thurman for improvements in this version.
- Commenting and tidying (Thomas)
- Fix possible compositor crash (Thomas) (#530702)
Translations
Khaled Hosny (ar), Yavor Doganov (bg), Jorge González (es), Kjartan Maraas (nb),
Yannig Marchegay (Kokoyaya) (oc), Theppitak Karoonboonyanan (th), Clytie
Siddall (vi)
2.23.34
=======
Thanks to Thomas Thurman for improvements in this version.
- Commenting and tidying (Thomas)
- Fix possible compositor crash (Thomas) (#530702)
Translations
Khaled Hosny (ar), Yavor Doganov (bg), Jorge González (es), Kjartan Maraas (nb),
Yannig Marchegay (Kokoyaya) (oc), Theppitak Karoonboonyanan (th), Clytie
Siddall (vi)
2.23.34
=======
Thanks to Thomas Thurman for improvements in this version.
- Various commenting (Thomas)
- Ensure you can turn off compositor with "configure" (Thomas)
- Ensure you can turn off gconf with "configure" (Thomas) (#530870)
Translations
Clytie Siddall (vi)
2.23.21
=======
Thanks to Robert Escriva, Iain Holmes, Matt Krai, Thomas Thurman,
and Chris Wang for improvements in this version.
- Add shadow ability for menus and tooltips (Iain) (#517442) (#517524)
- Fix possible crashes in compositor (Iain) (#534569) (#528787)
- Major reorganisation of compositor code (Iain)
- Initial version of XRender backend for the compositor (Iain)
- New basic public API for compositor (Iain)
- Window decoration updates colour when GTK theme changes (Robert) (#511826)
- Minor code cleanup for pedantic compilers (Thomas)
- Further code cleanup for pedantic compilers (Matt) (#526049)
- The atom list appears only once in the code (Thomas) (#530843)
- Don't attempt to read attributes of invalid windows (Chris) (#530485)
Translations
Khaled Hosny (ar), Gabor Kelemen (hu), Kjartan Maraas (nb), Tino Meinen (nl),
Theppitak Karoonboonyanan (th)
2.23.13
=======
Thanks to Erwann Chenede and Carlos Garnacho for improvements
in this version.
- Re-enable cascading (Erwann) (#529925)
- Propagate opacity to frame windows (spec compliance!) (Carlos)
Translations
- None this time!
2.23.8
======
Thanks to Lucas Rocha, Iain Holmes, and Jens Granseuer for improvements
in this version.
* No need to symlink to .desktop files (Lucas)
* Fixes to compositor's dealings with overlay windows (Iain)
* C89 fixes (Jens)
Translators:
Khaled Hosny (ar), Amitakhya Phukan (as), Ihar Hrachyshka (be@latin),
Petr Kovar (cs), Rhys Jones (cy), Kenneth Nielsen (da), Andre Klapper (de),
Jorge González (es), Iñaki Larrañaga Murgoitio (eu), Ilkka Tuohela (fi),
Claude Paroz (fr), Seán de Búrca (ga), Ignacio Casal Quinteiro (gl),
Yuval Tanny (he), Gabor Kelemen (hu), Luca Ferretti (it), Takeshi AIHANA (ja),
Shankar Prasad (kn), Changwoo Ryu (ko), Arangel Angov (mk), sandeep shedmake (mr),
Kjartan Maraas (nb), Nabin Gautam (ne), Wouter Bolsterlee (nl),
Eskild Hustvedt (nn), Yannig Marchegay (Kokoyaya) (oc), Tomasz Dominikowski (pl),
Duarte Loreto (pt), Vasiliy Faronov (ru), Daniel Nylander (sv),
Theppitak Karoonboonyanan (th), Baris Cicek (tr), Maxim Dziumanenko (uk),
Clytie Siddall (vi), Woodman Tuen (zh_HK), Woodman Tuen (zh_TW)
2.23.5
======
Thanks to Lucas Rocha, Owen Taylor, and Thomas Thurman for improvements in this
version.
- Updates of useless preferences don't crash (Thomas) (#526016)
- Compliance with new gnome-session (Lucas) (#525051)
- Preview widget doesn't crash on broken themes (Thomas) (Launchpad 199402)
- Initially iconic windows don't unminimise (Owen) (#491090)
- Move ~/.metacity to ~/.config/metacity (Thomas) (#518596)
- Metacity doesn't stay around when replaced (Thomas)
- Extra check for null return in a function (Thomas)
- Displays are singletons, simplifying code (Thomas) (#499301)
Translations
Jorge González (es), Eskild Hustvedt (nn), Baris Cicek (tr), Clytie Siddall (vi)
2.23.3
======
Thanks to Marco Pesenti Gritti, Iain Holmes, Josh Lee, Thomas Thurman, and
Matthew Wilson for improvements in this version.
- Workspaces whose name is the same as the standard name, plus some string,
are not cut off. (Thomas) (#453678)
- Improve compositor performance (Iain) (#522166)
- Draw wallpaper correctly when we start up with compositor
(Iain) (#522599)
- Several other smaller compositor fixes (Iain)
- Don't draw shadows on shaped windows unless they have frames
(Iain) (#505333)
- Newly-created keep-above windows get focus (Marco) (#519188)
- Allow moving workspace when dragging with modifier key (Matthew)
(#474195)
Translations
Kenneth Nielsen (da), Gabor Kelemen (hu), Vasiliy Faronov (ru), Daniel
Nylander (sv), Maxim Dziumanenko (uk), Woodman Tuen (zh_HK)
2.23.2
======
Removed some debug statements introduced in 2.23.1. Brown paper bag release.
2.23.1
======
Thanks to Cosimo Cecchi, Jens Granseuer, Jim Huang, Andrea Del Signore, and
Thomas Thurman for improvements in this version.
(Cosimo's patch was very similar to another received from Jason Ribero.)
- Allow horizontal and vertical maximisation using the mouse (Cosimo/Jason)
(#358674)
- Allow "spacer" as a value for buttons, for blank space (Andrea) (#509165)
- Remove unused code (Jim)
- refactor preferences handling (Thomas)
- make sure we're valid C89 (Jens) (#518917)
- some messing with tool scripts (Thomas)
Translations
Jorge González (es), Claude Paroz (fr), Woodman Tuen (zh_HK), Woodman
Tuen (zh_TW)
2.23.0
======
Thanks to Matthias Clasen, Mikkel Kamstrup Erlandsen, Jim Huang, Thomas Thurman,
and Thomas Wood for improvements in this version.
- the preview widget can draw shaped windows properly! (Thomas W, #460018)
- refactored handling of boolean and enumerated gconf preferences;
refactoring of string and integer preferences will follow shortly (Thomas T)
- Applications asking to move and resize windows at the same time have
both their requests granted (Mikkel) (#448183)
- Windows marked "skip taskbar" don't appear in the ctrl-alt-tab list
(Matthias) (#106249)
- fix session management detection (Thomas T) (#328210)
- when resizing with the keyboard, the cursor stays on a window edge if
you escape, whichever direction you were going (Thomas T) (#436257)
- fix major breakage when gconf was turned off in configure (Jim) (#515019)
- fix major breakage when verbose was turned off in configure (Jim) (#515152)
- fix name of verbose option in help (Thomas T)
- various bits of messing around with release scripts (Thomas T)
Translations
Ihar Hrachyshka (be@latin), Ilkka Tuohela (fi), Ignacio Casal Quinteiro (gl),
Shankar Prasad (kn), Changwoo Ryu (ko), Nabin Gautam (ne), Wouter Bolsterlee (nl)
2.21.13
=======
Thanks to Michael Meeks and Thomas Thurman for improvements in this version.
- Only use compositor version if we have a compositor (Thomas) (#514453)
- Remove workaround for a problem in an ancient GTK version (Thomas) (#513737)
- Compositor efficiency fixes (Michael)
- Various tools added (Thomas)
Translations
Amitakhya Phukan (as), Rhys Jones (cy), Andre Klapper (de), Takeshi AIHANA (ja),
Arangel Angov (mk), Tomasz Dominikowski (pl), Duarte Loreto (pt)
2.21.8
======
Thanks to Paolo Borelli, Iain Holmes, Havoc Pennington, Christian Persch, Thomas
Thurman, and Alex R.M. Turner for improvements in this version.
- Windows on other workspaces which need attention appear in the alt-tab
list too (Alex) (#333548)
- Remove deprecated function call (Christian) (#512561)
- New release script (Thomas)
- Made a start at improving the general number of comments (Thomas)
- Updated copyright year to 2008, and some other tiny fixes (Thomas)
- Don't do anything unusual when the compositor frees a window (Iain)
- Mapping windows doesn't mark them as damaged (Iain)
- Compositor uses the overlay window and not the root window (Iain)
- Fixed several list leaks (Paolo)
- Fixed warnings about printf formats (Havoc)
- Move source files into subdirectories of the src directory (Havoc)
Translations
Khaled Hosny (ar), Ihar Hrachyshka (be@latin), Petr Kovar (cs), Andre
Klapper (de), Jorge González (es), Iñaki Larrañaga Murgoitio (eu), Seán de
Búrca (ga), Yuval Tanny (he), Luca Ferretti (it), Takeshi AIHANA (ja), Arangel
Angov (mk), sandeep shedmake (mr), Kjartan Maraas (nb), Yannig
Marchegay (Kokoyaya) (oc), Daniel Nylander (sv), Theppitak Karoonboonyanan (th),
Baris Cicek (tr), Clytie Siddall (vi)
2.21.5
======
Thanks to Iain Holmes and Thomas Thurman for improvements in this version.
This contains the new compositor; downstream maintainers should note that
its GConf key is initially turned off in src/metacity.schemas.in and consider
whether to turn it on by default in their packages.
- merge compositor branch! (Iain) (499081)
- print "Subversion" and not "CVS" when building (Thomas)
Translations
Jorge González (es), Kjartan Maraas (nb), Daniel Nylander (sv)
2.21.3
======
Thanks to Matthias Clasen, Martin Meyer, Kjartan Maraas, Thomas Thurman,
and Lucas Rocha for improvements in this version.
- remove dead code (pointed out by Kjartan) (501365)
- rewrote long key binding description for the sake of
the translators (Thomas) (474889)
- check for null before adding menu (Matthias) (496054)
- let keys which end a grab also begin a grab (Thomas) (112560)
- check the right variable in theme sanity check (Martin) (501362)
- get session ID from environment if it's not passed in on the command
line (Lucas) (498033)
Translations
Ihar Hrachyshka (be@latin), Petr Kovar (cs), Jorge González (es),
Ignacio Casal Quinteiro (gl), Rodrigo Flores (pt_BR), Pavol Šimo (sk),
Matej Urbančič (sl)
2.21.2
======
Thanks to Benjamin Gramlich, Thomas Thurman, and Peter Bloomfield
for improvements in this release.
- Theme parser is compliant to XDG Base Directory Specification
in searching for theme files. (Benjamin) (#480026)
- Some source files which didn't get used were removed (Thomas)
(#496947)
- Fullscreen and maximise windows don't try to save their position
(Peter) (#461927)
Translations
Matej Urbančič (sl)
2.21.1
======

View File

@@ -1,11 +1,11 @@
#!/bin/sh
#!/bin/bash
# Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
PKG_NAME="metacity"
REQUIRED_AUTOMAKE_VERSION=1.7
REQUIRED_AUTOMAKE_VERSION=1.10
(test -f $srcdir/configure.in \
&& test -d $srcdir/src) || {
@@ -15,7 +15,8 @@ REQUIRED_AUTOMAKE_VERSION=1.7
}
which gnome-autogen.sh || {
echo "You need to install gnome-common from the GNOME CVS"
echo "You need to install gnome-common from GNOME Subversion (or from"
echo "your distribution's package manager)."
exit 1
}
USE_GNOME2_MACROS=1 USE_COMMON_DOC_BUILD=yes . gnome-autogen.sh

View File

@@ -1,17 +1,17 @@
AC_PREREQ(2.50)
m4_define([metacity_major_version], [2])
m4_define([metacity_minor_version], [21])
m4_define([metacity_minor_version], [25])
# Fibonacci sequence for micro version numbering:
# 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987
m4_define([metacity_micro_version], [1])
m4_define([metacity_micro_version], [89])
m4_define([metacity_version],
[metacity_major_version.metacity_minor_version.metacity_micro_version])
AC_INIT([metacity], [metacity_version],
[http://bugzilla.gnome.org/enter_bug.cgi?product=metacity])
AC_CONFIG_SRCDIR(src/display.c)
AC_CONFIG_SRCDIR(src/core/display.c)
AC_CONFIG_HEADERS(config.h)
AM_INIT_AUTOMAKE
@@ -120,7 +120,7 @@ if test x$enable_gconf = xyes; then
fi
AC_ARG_ENABLE(verbose-mode,
AC_HELP_STRING([--disable-verbose],
AC_HELP_STRING([--disable-verbose-mode],
[disable metacity's ability to do verbose logging, for embedded/size-sensitive custom builds]),,
enable_verbose_mode=yes)
@@ -211,28 +211,28 @@ fi
have_xrender=no
XCOMPOSITE_VERSION=0.2
AC_MSG_CHECKING([Xcomposite >= $XCOMPOSITE_VERSION])
if $PKG_CONFIG --atleast-version $XCOMPOSITE_VERSION xcomposite; then
have_xcomposite=yes
else
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
echo "Not building compositing manager by default now, must enable explicitly to get it."
have_xcomposite=no
echo "Building compositing manager by default now."
have_xcomposite=yes
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 cm"
AC_DEFINE(HAVE_COMPOSITE_EXTENSIONS, , [Building with compositing manager support])
AC_MSG_CHECKING([Xcomposite >= $XCOMPOSITE_VERSION])
if $PKG_CONFIG --atleast-version $XCOMPOSITE_VERSION xcomposite; then
AC_MSG_RESULT([yes])
else
AC_MSG_ERROR([no. Use --disable-compositor to disable.])
fi
fi
if test x$have_xcomposite = xyes; then
METACITY_PC_MODULES="$METACITY_PC_MODULES xcomposite >= $XCOMPOSITE_VERSION xfixes xrender xdamage"
AC_DEFINE(HAVE_COMPOSITE_EXTENSIONS, 1, [Building with compositing manager support])
echo "Building with compositing manager"
## force on render also
have_xrender=yes
@@ -413,7 +413,7 @@ if test "x$found_xsync" = "xyes"; then
AC_DEFINE(HAVE_XSYNC, , [Have the Xsync extension library])
fi
METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
METACITY_LIBS="$METACITY_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
METACITY_WINDOW_DEMO_LIBS="$METACITY_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
METACITY_PROPS_LIBS="$METACITY_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
@@ -426,7 +426,7 @@ case "$METACITY_LIBS" in
*)
AC_CHECK_LIB(SM, SmcSaveYourselfDone,
[AC_CHECK_HEADERS(X11/SM/SMlib.h,
METACITY_LIBS="-lSM -lICE $METACITY_LIBS" found_sm=no)],
METACITY_LIBS="-lSM -lICE $METACITY_LIBS" found_sm=yes)],
, $METACITY_LIBS)
;;
esac
@@ -459,12 +459,6 @@ fi
AC_SUBST(GDK_PIXBUF_CSOURCE)
## hack to work with old GTK versions for now
save_LDFLAGS=$LDFLAGS
LDFLAGS="$METACITY_LIBS $LDFLAGS"
AC_CHECK_FUNCS(gdk_pixbuf_new_from_stream)
LDFLAGS=$save_LDFLAGS
if test x$enable_gconf = xyes; then
AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
if test x"$GCONFTOOL" = xno; then
@@ -477,9 +471,30 @@ else
GCONF_SCHEMAS_INSTALL_FALSE=
fi
AC_PATH_PROG(ZENITY, zenity, no)
if test x"$ZENITY" = xno; then
AC_MSG_ERROR([zenity not found in your path - needed for dialogs])
fi
AC_ARG_ENABLE(debug,
[ --enable-debug enable debugging],,
enable_debug=no)
if test "x$enable_debug" = "xyes"; then
CFLAGS="$CFLAGS -g -O"
fi
# Warnings are there for a reason
if test "x$GCC" = "xyes"; then
CFLAGS="$CFLAGS -Wall -Werror -ansi"
fi
# Use gnome-doc-utils:
GNOME_DOC_INIT([0.8.0])
AC_CONFIG_FILES([
Makefile
doc/Makefile
doc/creating_themes/Makefile
doc/man/Makefile
src/Makefile
src/wm-tester/Makefile
@@ -532,7 +547,7 @@ if test $(( $(echo $METACITY_MINOR_VERSION) %2)) == "1"; then
stable_version=$(( ($METACITY_MINOR_VERSION / 2) * 2))
echo "This is the UNSTABLE branch of metacity"
echo -n "Use 2.$stable_version.x for stable "
echo "(gnome-2-$stable_version branch in CVS)"
echo "(gnome-2-$stable_version branch in Subversion)"
else
echo "This is the stable branch of metacity"
fi

View File

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

View File

@@ -0,0 +1,286 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://docbook.org/docbook/xml/4.5/docbookx.dtd" [
]>
<book id="index">
<bookinfo>
<title>Understanding Metacity Themes</title>
<authorgroup>
<author>
<firstname>Thomas</firstname>
<surname>Thurman</surname>
</author>
</authorgroup>
<abstract>
<para>
We very much appreciate any reports of inaccuracies or other errors in
this document. Contributions are also most welcome. Post your
suggestions, critiques or addenda to the <ulink
url="mailto:tthurman@gnome.org">team</ulink>.</para>
</abstract>
<copyright>
<year>2008</year>
<holder>Thomas Thurman</holder>
</copyright>
<legalnotice>
<para>
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
You may obtain a copy of the GNU Free Documentation License from the Free Software Foundation by visiting their Web site or by writing to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</para>
</legalnotice>
</bookinfo>
<chapter id="sec-introduction">
<title>Introduction</title>
<para>This is an article about how to theme Metacity. It is a work in progress, and I have had to dig deeply to find some answers; I may well have made mistakes and I welcome corrections and suggestions.</para>
<para>GNOME lets you theme a bunch of different things, but we're only talking about <literal>window border</literal> themes here, which some people call Metacity themes; <ulink url="http://en.wikipedia.org/wiki/Metacity#Themes">Wikipedia begins a sentence</ulink> with &quot;Despite the incomplete state of Metacity theme development documentation&quot;, and though there <emphasis>is</emphasis> <ulink url="http://svn.gnome.org/viewvc/metacity/trunk/doc/theme-format.txt?view=markup">documentation in the source</ulink>, apparently not many people find it, and it's written more for programmers than theme designers. Glynn Foster also wrote <ulink url="http://developer.gnome.org/doc/tutorials/metacity/metacity-themes.html">a very good introduction to Metacity themes</ulink> (<ulink url="http://home.arcor.de/rybaczyk/documents/tutorials/metacity/metacity-themes.de.html">[de]</ulink>) six years ago, but things have changed a little since then. <ulink url="http://lists.freedesktop.org/archives/compiz/2006-September/000445.html">Metacity themes can also be used by Compiz</ulink>, and perhaps by other window managers for all I know.</para>
<para>So, a Metacity theme is a set of instructions about how to &quot;decorate&quot; (draw the borders around) a window. Presumably you don't want to style all windows identically, so the format lets you specify details for different kinds of window:</para>
<para>
<variablelist>
<varlistentry>
<term>state:</term><listitem><para>Every window must be in exactly one of these states: <literal>normal</literal>, <literal>dialog</literal>, <literal>modal dialog</literal> (i.e. a dialogue which means you can't interact with the rest of the program while it's up), <literal>menu</literal> (torn off from the main application, not that people do that much these days), <literal>utility</literal> (that is, palettes and toolboxes and things), and <literal>border</literal>. X also allows a window to explicitly ask to be undecorated, but of course we don't provide for those in a list of decoration instructions.</para></listitem>
</varlistentry>
<varlistentry>
<term>focused</term><listitem><para>Every window is either the active window (which X people call &quot;focused&quot;), or it isn't.</para></listitem>
</varlistentry>
<varlistentry>
<term>maximized</term><listitem><para>Every window is either (fully) maximised (horizontal and vertical only don't count), or it isn't.</para></listitem>
</varlistentry>
<varlistentry>
<term>shaded</term><listitem><para>Every window is either rolled up to show just its titlebar (which techies call &quot;shaded&quot; for some reason I can't fathom), or it isn't.</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
<itemizedlist>
<listitem><para><emphasis>If a window is not fully maximised and not shaded,</emphasis> it either allows horizontal resizing, or it doesn't.</para></listitem>
<listitem><para><emphasis>If a window is not fully maximised and not shaded,</emphasis> it either allows vertical resizing, or it doesn't.</para></listitem>
</itemizedlist>
</para>
</chapter>
<chapter>
<title>What's in the file</title>
<para>The files must be called either</para>
<para>
<itemizedlist>
<listitem><para>~/.themes/<varname>N</varname>/metacity-1/metacity-theme-<varname>V</varname>.xml
for a theme used only by you, or</para></listitem>
<listitem><para>/usr/share/themes/<varname>N</varname>/metacity-1/metacity-theme-<varname>V</varname>.xml
for a theme installed for all users.</para></listitem>
</itemizedlist>
</para>
<para>where <varname>N</varname> is the name of the theme and <varname>V</varname> is the version of the format. Version 2, <ulink url="http://svn.gnome.org/viewvc/metacity?view=revision&amp;revision=2973">introduced in October 2006</ulink>, adds a few extra features, but it's rarely used. Version 1 is the original format. The formats are fixed once they're stable for both backwards and forwards compatibility; <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=482165">new features</ulink> can't be added without introducing a new version number, which is why improvements come out rarely and in large clumps. <literal>metacity-1</literal> in the names is a fossil and doesn't mean version 1 of anything.</para>
<para>The metacity-theme-V.xml files are <ulink url="http://blogs.gnome.org/tthurman/2008/02/14/gmarkup/">GMarkup files</ulink>, which are very similar to XML. For now, you actually have to write these in a text editor or something; you can either start with a blank page, or modify a theme someone else has made. (I am thinking of writing a general theme editor program, but that'll have to wait until I've reduced Metacity's open bug queue a little.) If you want to see a fully-fledged one, you can look at <ulink url="http://svn.gnome.org/viewvc/metacity/trunk/src/themes/Atlanta/metacity-theme-1.xml?view=markup">the current version of &quot;Atlanta&quot;</ulink>, one of the simplest themes, but even that is quite complicated-looking at first.</para>
<para>So, let's talk about what actually goes inside the files. As in any XML file, &lt;!-<!-- x -->- &#8230; <!-- x -->&gt; are comments. At its most basic, it would go:</para>
<para>
<programlisting>
&lt;metacity_theme&gt;
&lt;!-<!-- x -->- Helper stuff: -<!-- x -->-&gt;
&lt;info &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
&lt;constant &#8230;&gt; &lt;!-<!-- x -->- maybe; to be explained -<!-- x -->-&gt;
&lt;draw_ops &#8230;&gt; &lt;!-<!-- x -->- maybe; to be explained -<!-- x -->-&gt;
&lt;!-<!-- x -->- Things we build the top level onto: -<!-- x -->-&gt;
&lt;frame_geometry &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
&lt;frame_style &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
&lt;frame_style_set &#8230;&gt; &lt;!-<!-- x -->- to be explained -<!-- x -->-&gt;
&lt;!-<!-- x -->- And the top level: -<!-- x -->-&gt;
&lt;window type=&quot;normal&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;window type=&quot;dialog&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;window type=&quot;modal_dialog&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;window type=&quot;menu&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;window type=&quot;utility&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;window type=&quot;border&quot; style_set=&quot;&#8230;&quot; /&gt;
&lt;/metacity_theme&gt;
</programlisting>
</para>
</chapter>
<chapter>
<title>Matching windows</title>
<para>
<variablelist>
<varlistentry>
<term>window</term><listitem><para>You see that at the top level we have a list of &lt;window&gt; tags, one for each window state we discussed above. The style_set argument of each of these gives the name of a frame_style_set.</para></listitem>
</varlistentry>
<varlistentry>
<term>frame_style_set:</term><listitem><para>tells Metacity how to draw windows according to whether they're focused or not, maximised or not, shaded or not, and allowing resizing vertically, horizontally, both, or neither. It looks like this:</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
<programlisting>
&lt;frame_style_set&gt;
&lt;frame focus=&quot;F&quot; state=&quot;S&quot; resize=&quot;R&quot; style=&quot;N&quot;/&gt;
&lt;frame&#8230; /&gt;
&#8230;
&lt;/frame_style_set&gt;
</programlisting>
</para>
<para>where:</para>
<para>
<variablelist>
<varlistentry>
<term>F</term><listitem><para>is yes for focused, no for unfocused.</para></listitem>
</varlistentry>
<varlistentry>
<term>S</term><listitem><para>combines the shaded and maximized flags: normal, maximized, shaded, or maximized_and_shaded.</para></listitem>
</varlistentry>
<varlistentry>
<term>R</term><listitem><para>represents resize permissions that the window gives us: none, vertical, horizontal, or both. Frame settings for maximised windows, which can't be resized, don't have this attribute.</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
<varname>N</varname> is the name of a <literal>frame_style</literal> to apply to a window which has these attributes.</para>
<para>A <literal>frame_style_set</literal> tag may also have a &quot;parent&quot; tag, which should be the name of another <literal>frame_style_set</literal>. This means that if Metacity wants to know about a kind of window which that <literal>frame_style_set</literal> doesn't describe, it should look in the parent. Most of the more complicated tags in Metacity theme files also have a &quot;parent&quot; attribute which work the same way. This is particularly useful because, taken together, all the <literal>frame_style_set</literal>s in a theme file must be capable of matching every possible kind of window; if a window turns up that they can't match, there will be an error at runtime.</para>
<para>Let's recap what we've seen so far. The combination of a <literal>window</literal>, which matches a window's state (normal, dialog, and so forth), with an entry in the corresponding <literal>frame_style_set</literal>, which matches its focus, shadedness, maximisedness, and resize permissions where relevant, will allow you to make a list of rules to match any window against. The next piece of this puzzle lets you specify what Metacity should do with such windows once it's matched them.</para>
</chapter>
<chapter>
<title>Actually drawing stuff</title>
<para><literal>frame_style:</literal> This is probably the most complicated part of the whole system. A <literal>frame_style</literal> a series of <emphasis><literal>piece</literal></emphasis>s and <emphasis><literal>button</literal></emphasis>s. It looks like this:</para>
<para>
<programlisting>
&lt;frame_style name=&quot;&#8230;&quot; geometry=&quot;G&quot;&gt;
&lt;piece position=&quot;P&quot;&gt;
&lt;draw_ops&gt;
&lt;/draw_ops&gt;
&lt;/piece&gt;
&#8230;
&lt;button function=&quot;F&quot; state=&quot;S&quot; draw_ops=&quot;D&quot;/&gt;
&lt;draw_ops&gt;
&lt;/draw_ops&gt;
&lt;/button&gt;
&#8230;
&lt;/frame_style&gt;
</programlisting>
</para>
<para>The <literal>pieces</literal> are pieces of the window frame. When Metacity draws a window frame, it renders its various pieces always in the same order. The bolded parts are all the possible values of P:</para>
<para>
<itemizedlist>
<listitem><para>the <literal>entire_background</literal>, covering the whole frame</para></listitem>
<listitem><para>the <literal>titlebar</literal>, covering the entire background of the titlebar</para></listitem>
<listitem><para>the <literal>titlebar_middle</literal>, the part of the titlebar that doesn't touch its edges</para></listitem>
<listitem><para>the <literal>left_titlebar_edge</literal>, <literal>right_titlebar_edge</literal>, <literal>top_titlebar_edge</literal>, and <literal>bottom_titlebar_edge</literal></para></listitem>
<listitem><para>the <literal>title</literal>, just exactly that area which is covered by the text on the titlebar</para></listitem>
<listitem><para>the <literal>left_edge</literal>, <literal>right_edge</literal>, and <literal>bottom_edge</literal> of the frame (yes, there is no top_edge: it's identical to top_titlebar_edge, isn't it?)</para></listitem>
<listitem><para>the <literal>overlay</literal>, which covers everything&#8211; the same as entire_background, but done last instead of first.</para></listitem>
</itemizedlist>
</para>
<para><emphasis>What</emphasis> Metacity draws in these pieces is decided by the theme. If a <literal>frame_style</literal> or its parents don't specify a particular piece, nothing will be drawn for that piece. You have two ways to specify what to draw: one is that the <literal>piece</literal> tag can have a <literal>draw_ops</literal> tag inside it which lists a sequence of drawing operations in Metacity's custom format. <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=107012">You might ask why we don't use SVG</ulink>; one answer is that SVG support wasn't very strong when this format was designed, and another answer is that these days you can use SVG all you like; just include it as an image and Metacity will know what to do.</para>
<para>An alternative to including a draw_ops tag inside a piece tag is to add a draw_ops attribute to the piece tag. Then you can add a draw_ops tag at top level (inside the metacity_theme tag) with a name attribute, and Metacity will use that. This is useful if you use similar draw_ops over and over.</para>
<para>I'm not going to document draw_ops at present, because this is already very long. I will write it up later and link it from here.</para>
<para>The <literal>button</literal> tag tells Metacity how, but not where, to draw buttons. Buttons are drawn after all the pieces are finished, and the way to draw them is also given using draw_ops. You ought to provide buttons for all the possible kinds of button; if you don't give one it won't be drawn, which is unfortunate for the user who wants to use it:</para>
<para>
<itemizedlist>
<listitem><para><literal>left_left_background</literal>, <literal>left_middle_background</literal>, and <literal>left_right_background</literal> don't represent buttons as such, but the background behind them, assuming there can be at most three buttons on the left. These days there can be more, so the extra ones also use left_middle_background.</para></listitem>
<listitem><para><literal>right_left_background</literal>, <literal>right_middle_background</literal>, and <literal>right_right_background</literal> similarly.</para></listitem>
<listitem><para><literal>close</literal>, <literal>minimize</literal>, <literal>maximize</literal> are the obvious original three buttons.</para></listitem>
<listitem><para><literal>menu</literal> is the menu button you can click to get a list of actions you can perform on the window.</para></listitem>
<listitem><para><literal>shade</literal>, <literal>above</literal>, <literal>stick</literal> are similar to the original buttons but only allowed in version 2</para></listitem>
<listitem><para><literal>unshade</literal>, <literal>unabove</literal>, <literal>unstick</literal> are the toggled versions of these buttons. Again, version 2 only.</para></listitem>
</itemizedlist>
</para>
<para>The reason there are toggled versions of shade, above, and stick, and not maximize, is that by the time you get this far you've probably already decided whether you're drawing a maximised window. So if you <emphasis>are</emphasis> drawing a maximised window, you can make the button called &quot;maximize&quot; look how you want the restore button to be; otherwise, make it look like you want the maximise button to be.</para>
<para>For each button tag you should also set a &quot;state&quot; attribute; this time the state is either <literal>normal</literal> (the way you see it most of the time), <literal>pressed</literal>, or <literal>prelight</literal> (this makes the buttons subtly light up when you hover over them). You only really need &quot;normal&quot;, but the others are good to have too.</para>
<para>The &quot;geometry&quot; attribute of a <literal>frame_style</literal> tag is the name of a&#8230;</para>
</chapter>
<chapter>
<title>Geometry</title>
<para>The <literal>geometry</literal> tag defines the sizes of things around the window. It is important, but not easy to explain, and again this file has gone on too long. I'll write it up later.</para>
</chapter>
<chapter>
<title>Other things which lie around a file</title>
<para>The most important other thing in a theme file is the metadata held in the <literal>info</literal> tag. This contains a set of tags each of which contains some text explaining something about the theme itself, in a sort of <ulink url="http://en.wikipedia.org/wiki/Dublin_Core">Dublin Core</ulink> sort of way. (Next time around, we should probably use the actual Dublin Core.) The tags are <literal>name</literal>, <literal>author</literal>, <literal>copyright</literal>, <literal>date</literal>, and <literal>description</literal>.</para>
<para>Version 1 of the format had a <literal>menu_icon</literal> tag at top level, which let themes specify the icons beside options in the menu you get from the menu icon. This has become redundant; the icons are taken from the icon theme! The tag can still be used in all formats, but does nothing and is deprecated.</para>
<para>Version 2 of the format has a <literal>fallback</literal> tag at top level, which let the theme specify what icon a window should be considered to have if it doesn't provide an icon of its own. This should also be taken from the icon theme, <ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=524343">if anyone fancies fixing it</ulink>, and the tag should also then be deprecated. It shouldn't be hard.</para>
</chapter>
<chapter>
<title>When you're working on a theme</title>
<para>When you're editing a theme, you can view it without using it on the whole desktop using
<command>metacity-theme-viewer YourThemeName</command></para>
<para>and view it on the whole desktop using
<command>gconftool -<!-- x -->-type=string -<!-- x -->-set /apps/metacity/general/theme YourThemeName</command></para>
<para>Whenever you change the selected theme in GConf, Metacity will load the newly-chosen theme. This is how control-center does it. But when you change a theme, as you're working on it, you might want to ask Metacity to reload the theme which is currently used on the whole desktop to reflect your changes. You can do this using the little-known <command>metacity-message</command> program, with the command <literal>metacity-message reload-theme</literal>. This works by sending the ClientMessage <literal>_METACITY_RELOAD_THEME_MESSAGE</literal> to the root window, in case you're interested.</para>
<para>Once you're done with your theme, consider submitting it to <ulink url="http://art.gnome.org/themes/metacity/">the art.gnome.org site</ulink>, or <ulink url="http://www.gnome-look.org/index.php?xcontentmode=101">the gnome-look site</ulink>.</para>
</chapter>
<chapter>
<title>The future</title>
<para>Please feel free to link to this so people don't have to keep asking the basic questions and can start asking the deeper ones. One of the important deeper ones is: where should we go in the future? Since this format is becoming something of a de facto standard between window managers, should we set up some kind of freedesktop.org standards discussion? Would it be useful to spin off Metacity's theme parsing code into a separate, LGPL-licensed library so that other applications could use it more easily?</para>
<para>What would a version 3 of this format look like? Could we simplify the window / frame_style_set system? (I can imagine abolishing both, and being able to write <literal>&lt;frame_style for=&quot;normal+unfocused+maximized&quot;&gt;&#8230;</literal> and having Metacity assume it applied to all resize permissions and shadednesses.) Maybe we should try to do everything with SVG we can? Getting more wild and handwavey, is it worth keeping XML-like? Maybe if other window managers were dealing with the files, .ini-style files would be more universally useful? Or perhaps not. And then of course we need a decent graphical editor for it. I have a few ideas, but if anyone fancies jumping in...</para>
</chapter>
</book>

View File

@@ -0,0 +1,24 @@
### This part of Makefile.am can be customized by you.
# gnome-doc-utils standard variables:
include $(top_srcdir)/gnome-doc-utils.make
dist-hook: doc-dist-hook
# The name of the directory in /usr/share/gnome/help/,
# and the name of the main .xml file:
DOC_MODULE = creating-metacity-themes
# The names of any files included via entity declarations.
DOC_ENTITIES =
# The names of any files included by xincluded (preferred):
DOC_INCLUDES =
# The names of any pictures:
DOC_FIGURES =
# The names of any locales for which documentation translations exist:
DOC_LINGUAS =

View File

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

View File

@@ -0,0 +1,60 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.\" -----
.\" This file was confirmed to be licenced under the GPL
.\" by its author and copyright holder, Akira TAGOH, on June 1st 2008:
.\"
.\" > I'm comfortable with DFSG-free. that sounds great if you think it's
.\" > useful and worth containing it in upstream.
.\" ...
.\" > Right I know. any licenses that is DFSG-free, I'm ok with whatever,
.\" > since I have contributed that for Debian. so GPL is no problem for me.
.\" -----
.TH METACITY\-MESSAGE 1 "28 August 2002"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
METACITY\-MESSAGE \- a command to send a message to Metacity
.SH SYNOPSIS
.B METACITY\-MESSAGE
[restart|reload\-theme|enable\-keybindings|disable\-keybindings]
.SH DESCRIPTION
This manual page documents briefly the
.B metacity\-message\fP.
This manual page was written for the Debian distribution
because the original program does not have a manual page.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively.
\fBmetacity\-message\fP send a specified message to \fBmetacity\fP(1).
.SH OPTIONS
.TP
.B restart
Restart \fBmetacity\fP(1) which is running.
.TP
.B reload-theme
Reload a theme which is specified on gconf database.
.TP
.B enable-keybindings
Enable all of keybindings which is specified on gconf database.
.TP
.B disable-keybindings
Disable all of keybindings which is specified on gconf database.
.SH SEE ALSO
.BR metacity (1)
.SH AUTHOR
This manual page was written by Akira TAGOH <tagoh@debian.org>,
for the Debian GNU/Linux system (but may be used by others).

710
metacity.doap Normal file
View File

@@ -0,0 +1,710 @@
<?xml version='1.0' encoding='UTF-8'?>
<Project
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns="http://usefulinc.com/ns/doap#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:admin="http://webns.net/mvcb/">
<name>The Metacity Window Manager</name>
<shortname>Metacity</shortname>
<!-- It's a blog. Metacity has no homepage. -->
<homepage rdf:resource="http://blogs.gnome.org/metacity/" />
<!-- The date when the source control was initialised. -->
<created>2001-05-30</created>
<shortdesc xml:lang="en">
Metacity is a simple compositing window manager that integrates nicely with GNOME 2.
</shortdesc>
<description xml:lang="en">
A window manager for GNOME, with a focus on simplicity and usability
rather than novelties or gimmicks. It uses GTK+ 2 for drawing window frames,
so that it inherits colours, fonts, and so on from the GTK+ theme. Its author
has characterised it as a &quot;boring window manager for the adult in you.
Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios.&quot;
</description>
<!-- I haven't found anything appropriate; I made this up. -->
<category>window-manager</category>
<wiki rdf:resource="http://live.gnome.org/Metacity" />
<bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=metacity" />
<screenshots rdf:resource="http://commons.wikimedia.org/wiki/Image:Metacity-screenshot.png" />
<mailing-list rdf:resource="http://mail.gnome.org/mailman/listinfo/metacity-devel-list" />
<programming-language>C</programming-language>
<license rdf:resource="http://usefulinc.com/doap/licenses/gpl" />
<download-page rdf:resource="http://download.gnome.org/sources/metacity/" />
<repository>
<SVNRepository>
<location rdf:resource="http://svn.gnome.org/svn/metacity" />
<browse rdf:resource="http://svn.gnome.org/viewvc/metacity/" />
</SVNRepository>
</repository>
<author>
<foaf:Person>
<foaf:name>Havoc Pennington</foaf:name>
</foaf:Person>
</author>
<maintainer>
<foaf:Person>
<foaf:name>Elijah Newren</foaf:name>
</foaf:Person>
</maintainer>
<maintainer>
<foaf:Person>
<foaf:name>Thomas Thurman</foaf:name>
<foaf:mbox rdf:resource="mailto:tthurman@gnome.org"/>
</foaf:Person>
</maintainer>
<release><Version>
<name>2.25.1 release</name>
<created>2008-09-01</created>
<branch></branch>
<revision>2.25.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.25.0 release</name>
<created>2008-08-18</created>
<branch></branch>
<revision>2.25.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.25/2.25.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.89 release</name>
<created>2008-08-04</created>
<branch></branch>
<revision>2.23.89</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.89.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.89.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.55 release</name>
<created>2008-07-14</created>
<branch></branch>
<revision>2.23.55</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.55.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.55.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.34 release</name>
<created>2008-06-16</created>
<branch></branch>
<revision>2.23.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.34 release</name>
<created>2008-06-16</created>
<branch></branch>
<revision>2.23.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.34 release</name>
<created>2008-06-02</created>
<branch></branch>
<revision>2.23.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.21 release</name>
<created>2008-05-26</created>
<branch></branch>
<revision>2.23.21</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.21.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.21.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.13 release</name>
<created>2008-04-27</created>
<branch></branch>
<revision>2.23.13</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.13.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.13.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.8 release</name>
<created>2008-04-22</created>
<branch></branch>
<revision>2.23.8</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.8.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.8.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.5 release</name>
<created>2008-04-06</created>
<branch></branch>
<revision>2.23.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.3 release</name>
<created>2008-03-21</created>
<branch></branch>
<revision>2.23.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.2 release</name>
<created>2008-03-07</created>
<branch></branch>
<revision>2.23.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.1 release</name>
<created>2008-03-06</created>
<branch></branch>
<revision>2.23.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.23.0 release</name>
<created>2008-02-26</created>
<branch></branch>
<revision>2.23.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.23/2.23.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.13 release</name>
<created>2008-02-11</created>
<branch></branch>
<revision>2.21.13</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.13.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.13.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.8 release</name>
<created>2008-02-03</created>
<branch></branch>
<revision>2.21.8</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.8.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.8.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.5 release</name>
<created>2007-12-19</created>
<branch></branch>
<revision>2.21.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.3 release</name>
<created>2007-12-14</created>
<branch></branch>
<revision>2.21.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.2 release</name>
<created>2007-11-17</created>
<branch></branch>
<revision>2.21.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.21.1 release</name>
<created>2007-11-11</created>
<branch></branch>
<revision>2.21.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.21/2.21.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.20.0 release</name>
<created>2007-09-15</created>
<branch></branch>
<revision>2.20.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.20/2.20.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.20/2.20.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.55 release</name>
<created>2007-08-07</created>
<branch></branch>
<revision>2.19.55</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.55.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.55.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.34 release</name>
<created>2007-07-22</created>
<branch></branch>
<revision>2.19.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.21 release</name>
<created>2007-06-18</created>
<branch></branch>
<revision>2.19.21</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.21.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.21.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.13 release</name>
<created>2007-06-10</created>
<branch></branch>
<revision>2.19.13</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.13.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.13.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.8 release</name>
<created>2007-06-04</created>
<branch></branch>
<revision>2.19.8</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.8.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.8.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.5 release</name>
<created>2007-04-23</created>
<branch></branch>
<revision>2.19.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.3 release</name>
<created>2007-04-16</created>
<branch></branch>
<revision>2.19.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.2 release</name>
<created>2007-04-09</created>
<branch></branch>
<revision>2.19.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.19.1 release</name>
<created>2007-04-04</created>
<branch></branch>
<revision>2.19.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.19/2.19.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.17.3 release</name>
<created>2006-12-10</created>
<branch></branch>
<revision>2.17.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.17.2 release</name>
<created>2006-11-06</created>
<branch></branch>
<revision>2.17.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.17.1 release</name>
<created>2006-10-16</created>
<branch></branch>
<revision>2.17.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.17.0 release</name>
<created>2006-10-07</created>
<branch></branch>
<revision>2.17.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.17/2.17.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.16.2 release</name>
<created>2006-09-18</created>
<branch></branch>
<revision>2.16.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.16.1 release</name>
<created>2006-09-11</created>
<branch></branch>
<revision>2.16.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.16.0 release</name>
<created>2006-09-04</created>
<branch></branch>
<revision>2.16.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.16/2.16.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.34 release</name>
<created>2006-08-21</created>
<branch></branch>
<revision>2.15.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.21 release</name>
<created>2006-08-07</created>
<branch></branch>
<revision>2.15.21</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.21.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.21.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.13 release</name>
<created>2006-07-24</created>
<branch></branch>
<revision>2.15.13</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.13.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.13.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.8 release</name>
<created>2006-07-10</created>
<branch></branch>
<revision>2.15.8</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.8.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.8.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.5 release</name>
<created>2006-06-12</created>
<branch></branch>
<revision>2.15.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.3 release</name>
<created>2006-05-15</created>
<branch></branch>
<revision>2.15.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.2 release</name>
<created>2006-04-25</created>
<branch></branch>
<revision>2.15.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.1 release</name>
<created>2006-04-25</created>
<branch></branch>
<revision>2.15.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.15.0 release</name>
<created>2006-04-24</created>
<branch></branch>
<revision>2.15.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.15/2.15.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.89 release</name>
<created>2006-02-13</created>
<branch></branch>
<revision>2.13.89</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.89.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.89.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.55 release</name>
<created>2006-01-30</created>
<branch></branch>
<revision>2.13.55</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.55.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.55.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.34 release</name>
<created>2006-01-20</created>
<branch></branch>
<revision>2.13.34</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.34.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.34.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.21 release</name>
<created>2006-01-16</created>
<branch></branch>
<revision>2.13.21</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.21.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.21.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.13 release</name>
<created>2006-01-10</created>
<branch></branch>
<revision>2.13.13</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.13.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.13.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.8 release</name>
<created>2006-01-02</created>
<branch></branch>
<revision>2.13.8</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.8.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.8.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.5 release</name>
<created>2005-12-12</created>
<branch></branch>
<revision>2.13.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.3 release</name>
<created>2005-11-22</created>
<branch></branch>
<revision>2.13.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.2 release</name>
<created>2005-11-19</created>
<branch></branch>
<revision>2.13.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.1 release</name>
<created>2005-11-14</created>
<branch></branch>
<revision>2.13.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.13.0 release</name>
<created>2005-10-24</created>
<branch></branch>
<revision>2.13.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.13/2.13.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.12.1 release</name>
<created>2005-10-03</created>
<branch></branch>
<revision>2.12.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.12.0 release</name>
<created>2005-09-05</created>
<branch></branch>
<revision>2.12.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.12/2.12.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.11.3 release</name>
<created>2005-08-22</created>
<branch></branch>
<revision>2.11.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.3.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.11.2 release</name>
<created>2005-08-08</created>
<branch></branch>
<revision>2.11.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.11.1 release</name>
<created>2005-07-24</created>
<branch></branch>
<revision>2.11.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.11.0 release</name>
<created>2005-07-12</created>
<branch></branch>
<revision>2.11.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.11/2.11.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.10.2 release</name>
<created>2005-06-27</created>
<branch></branch>
<revision>2.10.2</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.2.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.2.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.10.1 release</name>
<created>2005-04-11</created>
<branch></branch>
<revision>2.10.1</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.1.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.1.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.10.0 release</name>
<created>2005-03-07</created>
<branch></branch>
<revision>2.10.0</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.0.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.10/2.10.0.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.8.5 release</name>
<created>2004-09-13</created>
<branch></branch>
<revision>2.8.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.8.5 release</name>
<created>2004-09-13</created>
<branch></branch>
<revision>2.8.5</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.5.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.8.4 release</name>
<created>2004-08-29</created>
<branch></branch>
<revision>2.8.4</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.4.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.4.tar.bz2"/>
</Version></release>
<release><Version>
<name>2.8.3 release</name>
<created>2004-08-15</created>
<branch></branch>
<revision>2.8.3</revision>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.3.tar.gz"/>
<file-release rdf:resource="http://download.gnome.org/sources/metacity/2.8/2.8.3.tar.bz2"/>
</Version></release>
<!-- earlier ones not yet documented, and will have to be added by hand -->
</Project>

View File

@@ -1,10 +1,609 @@
2008-12-26 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation.
2008-12-12 Luca Ferretti <elle.uca@libero.it>
* it.po: Imported updated translation from gnome-2-24 branch.
2008-12-08 Priit Laes <plaes at svn dot gnome dot org>
* et.po: Translation updated by Mattias Põldaru
2008-11-23 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation
2008-11-14 Thomas Thurman <tthurman@gnome.org>
* la.po: Updated Latin translation
2008-11-14 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation
2008-11-09 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation
2008-11-08 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation
2008-11-03 Leonardo Ferreira Fontenelle <leonardof@gnome.org>
* pt_BR.po: Merged from branch gnome-2-24. Minor capitalization fix in
the Brazilian Portuguese translation.
2008-10-27 Og Maciel <ogmaciel@gnome.org>
* pt_BR.po: Updated Brazilian Portuguese translation by
Og Maciel.
2008-10-27 Daniel Nylander <po@danielnylander.se>
* sv.po: Updated Swedish translation.
2008-10-23 Gil Forcada <gforcada@gnome.org>
* LINGUAS: Added ast.
* ast.po: Added Asturian translation on behalf of Mikel González.
2008-10-22 Jordi Mallach <jordi@sindominio.net>
* ca@valencia.po: New Valencian (Southern Catalan) translation
based on the Catalan file.
* LINGUAS: Added Valencian (Southern Catalan) (ca@valencia).
2008-10-22 Jordi Mallach <jordi@sindominio.net>
* ca.po: Apply Catalan fixes from Robert Millan.
2008-10-17 Thomas Thurman <tthurman@gnome.org>
* la.po: Updated Latin translation.
2008-10-16 Marcel Telka <marcel@telka.sk>
* sk.po: Updated Slovak translation by Pavol Šimo.
2008-10-15 Thomas Thurman <tthurman@gnome.org>
* la.po: Updated Latin translation.
2008-10-15 Thomas Thurman <tthurman@gnome.org>
* la.po: Updated Latin translation.
2008-10-12 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
2008-10-12 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation (merged from gnome-2-24 branch).
2008-10-11 Claude Paroz <claude@2xlibre.net>
* fr.po: Fixed minimize/unmaximize French translation (sync with 2.24) and
complete some other translations.
2008-09-30 Og Maciel <ogmaciel@gnome.org>
* pt_BR.po: Updated Brazilian Portuguese translation by Vladimir Melo.
2008-09-29 Alexander Shopov <ash@contact.bg>
* bg.po: Updated Bulgarian translation by
Alexander Shopov <ash@contact.bg>
2008-09-27 Gil Forcada <gforcada@gnome.org>
* ca.po: Updated Catalan translation.
2008-09-27 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Updated Albanian Translation.
2008-09-24 Priit Laes <plaes at svn dot gnome dot org>
* et.po: Translation updated by Ivar Smolin
2008-09-22 Kenneth Nielsen <k.nielsen81@gmail.com>
* da.po: Updated Danish translation by Kenneth Nielsen
2008-09-22 Kenneth Nielsen <k.nielsen81@gmail.com>
* da.po: Updated Danish translation by Kenneth Nielsen
2008-09-22 Mugurel Tudor <mugurelu@gnome.ro>
* ro.po: Updated Romanian translation by
Mişu Moldovan <dumol@gnome.ro>
2008-09-21 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2008-09-21 Gintautas Miliauskas <gintas@akl.lt>
* lt.po: Updated Lithuanian translation.
2008-09-20 Priit Laes <plaes at svn dot gnome dot org>
* et.po: Translation updated by Ivar Smolin
2008-09-17 Gabor Kelemen <kelemeng@gnome.hu>
* hu.po: Translation updated.
2008-09-14 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Fixed Portuguese terminology.
2008-09-12 Hendrik Richter <hendrikr@gnome.org>
* de.po: Updated German translation.
2008-09-12 Goran Rakić <grakic@devbase.net>
* sr.po, sr@latin.po: Updated Serbian translation (by Miloš Popović).
2008-09-09 Robert Sedak <robert.sedak@sk.t-com.hr>
* hr.po: Updated Croatian translation.
2008-09-08 Priit Laes <plaes at svn dot gnome dot org>
* et.po: Translation updated by Mattias Põldaru
2008-09-07 Seán de Búrca <sdeburca@svn.gnome.org>
* ga.po: Updated Irish translation.
2008-09-06 Funda Wang <fundawang@gmail.com>
* zh_CN.po: Updated zh_CN translation.
2008-09-06 Claude Paroz <claude@2xlibre.net>
* fr.po: Updated French translation.
2008-08-24 Gintautas Miliauskas <gintas@akl.lt>
* lt.po: Updated Lithuanian translation.
2008-08-23 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org>
* eu.po: Updated Basque translation.
2008-08-21 Laurent Dhima <laurenti@alblinux.net>
* sq.po: Updated Albanian Translation.
2008-08-14 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Updated Portuguese translation.
2008-08-13 Leonardo Ferreira Fontenelle <leonardof@gnome.org>
* pt_BR.po: Brazilian Portuguese translation updated by Djavan
Fagundes.
2008-08-13 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation.
2008-08-09 Petr Kovar <pknbe@volny.cz>
* cs.po: Updated Czech translation.
2008-08-07 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
gl.po: Updated Galician translation
2008-08-6 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-08-02 Takeshi AIHANA <takeshi.aihana@gmail.com>
* ja.po: Updated Japanese translation.
2008-07-29 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-07-29 Wouter Bolsterlee <wbolster@svn.gnome.org>
* nl.po: Dutch translation updated by Wouter Bolsterlee.
2008-07-25 Daniel Nylander <po@danielnylander.se>
* sv.po: Updated Swedish translation.
2008-07-24 Leonardo Ferreira Fontenelle <leonardof@gnome.org>
* pt_BR.po: Terminology fixes by Vladimir Melo.
2008-07-17 Daniel Nylander <po@danielnylander.se>
* sv.po: Updated Swedish translation.
2008-07-14 Luca Ferretti <elle.uca@libero.it>
* it.po: Updated Italian translation.
2008-07-10 Matej Urbančič <mateju@svn.gnome.org>
* sl.po: Updated Slovenian Translation.
2008-07-10 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2008-07-09 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
2008-07-01 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
2008-06-24 Daniel Nylander <po@danielnylander.se>
* sv.po: Updated Swedish translation.
2008-06-21 Gabor Kelemen <kelemeng@gnome.hu>
* hu.po: Translation updated.
2008-06-16 Alexander Shopov <ash@contact.bg>
* bg.po: Updated Bulgarian translation by
Yavor Doganov <yavor@gnu.org>
2008-06-15 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation
2008-06-12 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2008-06-11 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-06-11 Yannig Marchegay <yannig@marchegay.org>
* oc.po: Updated Occitan translation.
2008-06-08 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
2008-06-01 Clytie Siddall <clytie@riverland.net.au>
* vi.po: Updated Vietnamese translation.
2008-05-22 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-05-20 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Tino Meinen.
2008-05-19 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-05-18 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2008-05-14 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
2008-05-13 Vincent van Adrighem <adrighem@gnome.org>
* nl.po: Translation updated by Tino Meinen.
2008-05-06 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
2008-05-01 Gabor Kelemen <kelemeng@gnome.org>
* hu.po: Translation updated.
2008-04-20 Yair Hershkovitz <yairhr@gmail.com>
* he.po: Updated Hebrew translation.
2008-04-10 Yair Hershkovitz <yairhr@gmail.com>
* he.po: Updated Hebrew translation.
2008-04-04 Eskild Hustvedt <eskildh@gnome.org>
* nn.po: Updated Norwegian Nynorsk translation
2008-03-31 Baris Cicek <baris@teamforce.name.tr>
* tr.po: Updated Turkish translation
2008-03-30 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation
2008-03-23 Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
* vi.po: Update Vietnamese translation
2008-03-20 Abel Cheung <abelcheung@gmail.com>
* zh_HK.po, zh_TW.po: Typo fix for traditional Chinese translations.
2008-03-18 Gabor Kelemen <kelemeng@gnome.hu>
* hu.po: Translation updated
2008-03-09 Kenneth Nielsen <k.nielsen81@gmail.com>
* da.po: Updated Danish translation
2008-03-09 Gabor Kelemen <kelemeng@gnome.hu>
* hu.po: Translation updated
2008-03-09 Daniel Nylander <po@danielnylander.se>
* sv.po: Updated Swedish translation.
2008-03-09 Vasiliy Faronov <qvvx@yandex.ru>
* ru.po: Updated Russian translation.
2008-03-07 Maxim Dziumanenko <dziumanenko@gmail.com>
* uk.po: Updated Ukrainian translation.
2008-03-03 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation
2008-03-01 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
* zh_HK.po: Updated Traditional Chinese translation(Hong Kong).
* zh_TW.po: Updated Traditional Chinese translation(Taiwan).
2008-02-27 Stéphane Raimbault <stephane.raimbault@gmail.com>
* fr.po: Updated French translation (merged from gnome-2-22).
2008-02-25 Changwoo Ryu <cwryu@debian.org>
* ko.po: Updated Korean translation.
2008-02-24 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation (bug #518255).
2008-02-23 Ihar Hrachyshka <booxter@lacinka.org>
* be@latin.po: Updated Belarusian Latin translation.
2008-02-20 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation.
2008-02-18 Wouter Bolsterlee <wbolster@svn.gnome.org>
* nl.po: Updated Dutch translation by Wouter Bolsterlee.
2008-02-18 Ihar Hrachyshka <booxter@lacinka.org>
* be@latin.po: Updated Belarusian Latin translation.
2008-02-15 Runa Bhattacharjee <runabh@gmail.com>
* kn.po: Added Kannada Translations by Shankar Prasad
* LINGUAS: Added Kannada (kn) to the List of Languages
2008-02-14 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician Translation.
2008-02-14 Pawan Chitrakar <chautari@gmail.com>
* ne.po: Updated Nepali Translation.
2008-02-14 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation.
2008-02-13 Ilkka Tuohela <hile@iki.fi>
* fi.po: Updated Finnish translation.
2008-02-10 Duarte Loreto <happyguy_pt@hotmail.com>
* pt.po: Updated Portuguese translation.
2008-02-09 Hendrik Brandt <heb@gnome-de.org>
* de.po: Updated German translation.
2008-02-07 Artur Flinta <aflinta@svn.gnome.org>
* pl.po: Updated Polish translation by GNOME PL Team.
2008-02-05 Rhys Jones <rhys@sucs.org>
* cy.po: Updated Welsh translation.
2008-02-03 Amitakhya Phukan <amitakhya@svn.gnome.org>
* LINGUAS: Added as to LINGUAS.
* as.po: Updated assamese translations.
2008-02-03 Arangel Angov <arangel@linux.net.mk>
* mk.po: Updated Macedonian translation.
2008-02-03 Takeshi AIHANA <takeshi.aihana@gmail.com>
* ja.po: Updated Japanese translation.
2008-02-02 Luca Ferretti <elle.uca@libero.it>
* it.po: Updated Italian translation.
2008-02-01 Theppitak Karoonboonyanan <thep@linux.thai.net>
* th.po: Updated Thai translation.
2008-01-31 Djihed Afifi <djihed@gmail.com>
* ar.po: Updated Arabic Translation by Khaled Hosny.
2008-01-30 Rahul Bhalerao <b.rahul.pm@gmail.com>
* mr.po: Updated Marathi translations by Sandeep Shedmake.
2008-01-27 Baris Cicek <baris@teamforce.name.tr>
* tr.po: Fixed typo in Turkish translation.
2008-01-25 Petr Kovar <pknbe@volny.cz>
* cs.po: Updated Czech translation.
2008-01-22 Andre Klapper <a9016009@gmx.de>
* de.po: Sync "beep" translation.
2008-01-15 Daniel Nylander <po@danielnylander.se>
* sv.po: Updated Swedish translation.
2008-01-14 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org>
* eu.po: Updated Basque translation.
2008-01-14 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
2008-01-13 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation
2008-01-09 Yair Hershkovitz <yairhr@gmail.com>
* he.po: Updated Hebrew translation.
2008-01-06 Ihar Hrachyshka <booxter@lacinka.org>
* be@latin.po: Updated Belarusian Latin translation.
2008-01-05 Clytie Siddall <clytie@riverland.net.au>
* vi.po: Updated Vietnamese translation.
2007-12-31 Yannig Marchegay <yannig@marchegay.org>
* oc.po: Updated Occitan translation.
2007-12-31 Daniel Nylander <po@danielnylander.se>
* sv.po: Updated Swedish translation.
2007-12-22 Seán de Búrca <sdeburca@svn.gnome.org>
* ga.po: Updated Irish translation.
2007-12-22 Seán de Búrca <sdeburca@svn.gnome.org>
* POTFILES.in: Remove dead files.
2007-12-20 Kjartan Maraas <kmaraas@gnome.org>
* POTFILES.in: Rearrange after stuff moved around.
* nb.po: Update
2007-12-19 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
2007-12-19 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation.
2007-12-17 Daniel Nylander <po@danielnylander.se>
* sv.po: Updated Swedish translation.
2007-12-15 Kjartan Maraas <kmaraas@gnome.org>
* nb.po: Updated Norwegian bokmål translation.
2007-12-10 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation, fixes bug #500562 and bug #500831
2007-12-10 Matej Urbančič <mateju@svn.gnome.org>
* sl.po: Updated Slovenian Translation.
2007-12-10 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation, fixes bug #500831
2007-12-09 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation, fixes bug #500562
2007-12-08 Jakub Friedl <jfriedl@suse.cz>
* cs.po: Czech Translation updated by Petr Kovar.
2007-12-08 Ihar Hrachyshka <booxter@lacinka.org>
* be@latin.po: Updated Belarusian Latin translation.
2007-12-08 Leonardo Ferreira Fontenelle <leonardof@svn.gnome.org>
* pt_BR.po: Fixes in Brazilian Portuguese translation by Luiz Armesto.
2007-12-07 Leonardo Ferreira Fontenelle <leonardof@svn.gnome.org>
* pt_BR.po: Fixed attributes in Brazilian Portuguese translation by
Rodrigo Flores.
2007-12-02 Marcel Telka <marcel@telka.sk>
* sk.po: Updated Slovak translation by Pavol Šimo.
2007-11-28 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
* gl.po: Updated Galician Translation.
2007-11-12 Matej Urbančič <mateju@svn.gnome.org>
* sl.po: Updated Slovenian translation.
2007-11-08 Daniel Nylander <po@danielnylander.se>
* sv.po: Updated Swedish translation.
2007-11-01 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es/es.po: Updated Spanish translation
* es.po: Updated Spanish translation
2007-10-25 Matej Urbančič <mateju@svn.gnome.org>
@@ -115,7 +714,7 @@
2007-09-05 Jovan Naumovski <jovan@lugola.net>
* mk.po: Updated Macedonian translation.
* mk.po: Updated Macedonian translation.
2007-09-03 Clytie Siddall <clytie@riverland.net.au>
@@ -127,11 +726,11 @@
2007-09-03 Jovan Naumovski <jovan@lugola.net>
* mk.po: Updated Macedonian translation.
* mk.po: Updated Macedonian translation.
2007-09-01 Jovan Naumovski <jovan@lugola.net>
* mk.po: Updated Macedonian translation.
* mk.po: Updated Macedonian translation.
2007-09-01 Stéphane Raimbault <stephane.raimbault@gmail.com>
@@ -266,7 +865,7 @@
2007-05-09 Jovan Naumovski <jovan@lugola.net>
* mk.po: Updated Macedonian translation.
* mk.po: Updated Macedonian translation.
2007-05-2 Djihed Afifi <djihed@gmail.com>
@@ -1671,7 +2270,7 @@
2005-04-17 Pauli Virtanen <pauli.virtanen@hut.fi>
* fi.po: Fix a small mistranslation.
* fi.po: Fix a small mistranslation.
2005-04-09 Christopher Orr <chris@protactin.co.uk>
@@ -1858,7 +2457,7 @@
2005-02-06 Pauli Virtanen <pauli.virtanen@hut.fi>
* fi.po: Updated Finnish translation.
* fi.po: Updated Finnish translation.
2005-02-05 Frank Arnold <farnold@cvs.gnome.org>
@@ -2473,7 +3072,7 @@
2004-02-07 Robert Sedak <robert.sedak@sk.htnet.hr>
* hr.po: Updated Croatian translation.
* hr.po: Updated Croatian translation.
2004-02-08 Changwoo Ryu <cwryu@debian.org>

View File

@@ -2,6 +2,8 @@
#
am
ar
as
ast
az
be
be@latin
@@ -10,6 +12,7 @@ bn
bn_IN
bs
ca
ca@valencia
cs
cy
da
@@ -37,8 +40,10 @@ is
it
ja
ka
kn
ko
ku
la
lt
lv
mg
@@ -65,7 +70,7 @@ sk
sl
sq
sr
sr@Latn
sr@latin
sv
ta
th

View File

@@ -2,28 +2,31 @@
# Please keep this file sorted alphabetically.
src/50-metacity-desktop-key.xml.in
src/50-metacity-key.xml.in
src/tools/metacity-message.c
src/core.c
src/delete.c
src/display.c
src/errors.c
src/frames.c
src/keybindings.c
src/main.c
src/menu.c
src/metaaccellabel.c
src/metacity-dialog.c
src/core/core.c
src/core/delete.c
src/core/display.c
src/core/errors.c
src/core/keybindings.c
src/core/main.c
src/core/prefs.c
src/core/screen.c
src/core/schema-bindings.c
src/core/session.c
src/core/util.c
src/core/window.c
src/core/window-props.c
src/core/xprops.c
src/include/all-keybindings.h
src/metacity.desktop.in
src/metacity.schemas.in
src/prefs.c
src/resizepopup.c
src/screen.c
src/session.c
src/theme-parser.c
src/theme-viewer.c
src/theme.c
src/util.c
src/window-props.c
src/window.c
src/workspace.c
src/xprops.c
src/metacity.schemas.in.in
src/metacity-wm.desktop.in
src/tools/metacity-message.c
src/ui/frames.c
src/ui/menu.c
src/ui/metaaccellabel.c
src/ui/metacity-dialog.c
src/ui/resizepopup.c
src/ui/theme.c
src/ui/theme-parser.c
src/ui/theme-viewer.c

2
po/POTFILES.skip Normal file
View File

@@ -0,0 +1,2 @@
src/metacity.schemas.in

2362
po/ar.po

File diff suppressed because it is too large Load Diff

3059
po/as.po Normal file

File diff suppressed because it is too large Load Diff

2160
po/ast.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3050
po/bg.po

File diff suppressed because it is too large Load Diff

3404
po/ca.po

File diff suppressed because it is too large Load Diff

4079
po/ca@valencia.po Normal file

File diff suppressed because it is too large Load Diff

2996
po/cs.po

File diff suppressed because it is too large Load Diff

2691
po/cy.po

File diff suppressed because it is too large Load Diff

3054
po/da.po

File diff suppressed because it is too large Load Diff

2521
po/de.po

File diff suppressed because it is too large Load Diff

5487
po/es.po

File diff suppressed because it is too large Load Diff

5977
po/et.po

File diff suppressed because it is too large Load Diff

2404
po/eu.po

File diff suppressed because it is too large Load Diff

1975
po/fi.po

File diff suppressed because it is too large Load Diff

4068
po/fr.po

File diff suppressed because it is too large Load Diff

5189
po/ga.po

File diff suppressed because it is too large Load Diff

1791
po/gl.po

File diff suppressed because it is too large Load Diff

3873
po/he.po

File diff suppressed because it is too large Load Diff

3373
po/hr.po

File diff suppressed because it is too large Load Diff

2907
po/hu.po

File diff suppressed because it is too large Load Diff

5730
po/it.po

File diff suppressed because it is too large Load Diff

1889
po/ja.po

File diff suppressed because it is too large Load Diff

3390
po/kn.po Normal file

File diff suppressed because it is too large Load Diff

1856
po/ko.po

File diff suppressed because it is too large Load Diff

2182
po/la.po Normal file

File diff suppressed because it is too large Load Diff

3112
po/lt.po

File diff suppressed because it is too large Load Diff

1794
po/mk.po

File diff suppressed because it is too large Load Diff

2925
po/mr.po

File diff suppressed because it is too large Load Diff

3527
po/nb.po

File diff suppressed because it is too large Load Diff

3247
po/ne.po

File diff suppressed because it is too large Load Diff

2947
po/nl.po

File diff suppressed because it is too large Load Diff

2455
po/nn.po

File diff suppressed because it is too large Load Diff

1762
po/oc.po

File diff suppressed because it is too large Load Diff

1865
po/pl.po

File diff suppressed because it is too large Load Diff

2407
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3075
po/ro.po

File diff suppressed because it is too large Load Diff

2827
po/ru.po

File diff suppressed because it is too large Load Diff

5726
po/sk.po

File diff suppressed because it is too large Load Diff

1927
po/sl.po

File diff suppressed because it is too large Load Diff

6724
po/sq.po

File diff suppressed because it is too large Load Diff

2158
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4180
po/sv.po

File diff suppressed because it is too large Load Diff

3132
po/th.po

File diff suppressed because it is too large Load Diff

2501
po/tr.po

File diff suppressed because it is too large Load Diff

1894
po/uk.po

File diff suppressed because it is too large Load Diff

2290
po/vi.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -9,6 +9,7 @@ testboxes
testgradient
inlinepixbufs.h
metacity.desktop
metacity-wm.desktop
metacity.schemas
libmetacity-private.pc
testasyncgetprop

View File

@@ -2,136 +2,149 @@ 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=-I$(srcdir)/include -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 @METACITY_CFLAGS@
metacity_SOURCES= \
async-getprop.c \
async-getprop.h \
bell.h \
bell.c \
boxes.h \
boxes.c \
common.h \
c-screen.c \
c-screen.h \
c-window.c \
c-window.h \
compositor.c \
compositor.h \
constraints.c \
constraints.h \
core.c \
core.h \
delete.c \
display.c \
display.h \
draw-workspace.c \
draw-workspace.h \
edge-resistance.c \
edge-resistance.h \
effects.c \
effects.h \
errors.c \
errors.h \
eventqueue.c \
eventqueue.h \
fixedtip.c \
fixedtip.h \
frame.c \
frame.h \
frames.c \
frames.h \
gradient.c \
gradient.h \
group.c \
group.h \
group-private.h \
group-props.c \
group-props.h \
iconcache.c \
iconcache.h \
core/async-getprop.c \
core/async-getprop.h \
core/atomnames.h \
core/bell.c \
core/bell.h \
core/boxes.c \
include/boxes.h \
compositor/compositor.c \
compositor/compositor-private.h \
compositor/compositor-xrender.c \
compositor/compositor-xrender.h \
include/compositor.h \
core/constraints.c \
core/constraints.h \
core/core.c \
core/delete.c \
core/display.c \
core/display-private.h \
include/display.h \
ui/draw-workspace.c \
ui/draw-workspace.h \
core/edge-resistance.c \
core/edge-resistance.h \
core/effects.c \
core/effects.h \
core/errors.c \
include/errors.h \
core/eventqueue.c \
core/eventqueue.h \
core/frame.c \
core/frame-private.h \
include/frame.h \
ui/gradient.c \
ui/gradient.h \
core/group-private.h \
core/group-props.c \
core/group-props.h \
core/group.c \
core/group.h \
core/iconcache.c \
core/iconcache.h \
core/keybindings.c \
core/keybindings.h \
core/main.c \
include/main.h \
core/metacity-Xatomtype.h \
core/place.c \
core/place.h \
core/prefs.c \
include/prefs.h \
core/screen.c \
core/screen-private.h \
include/screen.h \
include/types.h \
core/session.c \
core/session.h \
core/stack.c \
core/stack.h \
core/util.c \
include/util.h \
core/window-props.c \
core/window-props.h \
core/window.c \
core/window-private.h \
include/window.h \
core/workspace.c \
core/workspace.h \
core/xprops.c \
include/xprops.h \
include/common.h \
include/core.h \
include/ui.h \
inlinepixbufs.h \
keybindings.c \
keybindings.h \
main.c \
main.h \
menu.c \
menu.h \
metaaccellabel.c \
metaaccellabel.h \
metacity-Xatomtype.h \
place.c \
place.h \
prefs.c \
prefs.h \
resizepopup.c \
resizepopup.h \
screen.c \
screen.h \
session.c \
session.h \
spring-model.c \
spring-model.h \
stack.c \
stack.h \
tabpopup.c \
tabpopup.h \
theme.c \
theme.h \
theme-parser.c \
theme-parser.h \
themewidget.c \
themewidget.h \
ui.c \
ui.h \
util.c \
util.h \
window.c \
window.h \
window-props.c \
window-props.h \
workspace.c \
workspace.h \
xprops.c \
xprops.h
ui/fixedtip.c \
ui/fixedtip.h \
ui/frames.c \
ui/frames.h \
ui/menu.c \
ui/menu.h \
ui/metaaccellabel.c \
ui/metaaccellabel.h \
ui/resizepopup.c \
include/resizepopup.h \
ui/tabpopup.c \
include/tabpopup.h \
ui/theme-parser.c \
ui/theme-parser.h \
ui/theme.c \
ui/theme.h \
ui/themewidget.c \
ui/themewidget.h \
ui/ui.c \
include/all-keybindings.h
# by setting libmetacity_private_la_CFLAGS, the files shared with
# metacity proper will be compiled with different names.
libmetacity_private_la_CFLAGS =
libmetacity_private_la_SOURCES= \
boxes.c \
boxes.h \
gradient.c \
gradient.h \
preview-widget.c \
preview-widget.h \
theme.c \
theme.h \
theme-parser.c \
theme-parser.h \
util.c \
util.h \
common.h
libmetacity_private_la_SOURCES= \
core/boxes.c \
include/boxes.h \
ui/gradient.c \
ui/gradient.h \
core/util.c \
include/util.h \
include/common.h \
ui/preview-widget.c \
ui/preview-widget.h \
ui/theme-parser.c \
ui/theme-parser.h \
ui/theme.c \
ui/theme.h
libmetacity_private_la_LDFLAGS = -no-undefined
libmetacity_private_la_LIBADD = @METACITY_LIBS@
libmetacityincludedir = $(includedir)/metacity-1/metacity-private
libmetacityinclude_HEADERS = \
boxes.h \
common.h \
gradient.h \
preview-widget.h \
theme.h \
theme-parser.h \
util.h
libmetacityinclude_HEADERS = \
include/boxes.h \
ui/gradient.h \
include/util.h \
include/common.h \
ui/preview-widget.h \
ui/theme-parser.h \
ui/theme.h
metacity_theme_viewer_SOURCES= \
theme-viewer.c
ui/theme-viewer.c
metacity_dialog_SOURCES= \
metacity-dialog.c
ui/metacity-dialog.c
schema_bindings_SOURCES = \
core/schema-bindings.c \
metacity.schemas.in.in
schema_bindings_LDADD = @METACITY_LIBS@
metacity.schemas.in: schema_bindings ${srcdir}/metacity.schemas.in.in
@echo Generating keybinding schemas... ${srcdir}/metacity.schemas.in.in
${builddir}/schema_bindings ${srcdir}/metacity.schemas.in.in ${builddir}/metacity.schemas.in
bin_PROGRAMS=metacity metacity-theme-viewer
libexec_PROGRAMS=metacity-dialog
@@ -141,21 +154,27 @@ metacity_LDADD=@METACITY_LIBS@ $(EFENCE)
metacity_theme_viewer_LDADD= @METACITY_LIBS@ libmetacity-private.la
metacity_dialog_LDADD=@METACITY_LIBS@
testboxes_SOURCES=util.h util.c boxes.h boxes.c testboxes.c
testgradient_SOURCES=gradient.h gradient.c testgradient.c
testasyncgetprop_SOURCES=async-getprop.h async-getprop.c testasyncgetprop.c
testboxes_SOURCES=include/util.h core/util.c include/boxes.h core/boxes.c core/testboxes.c
testgradient_SOURCES=ui/gradient.h ui/gradient.c ui/testgradient.c
testasyncgetprop_SOURCES=core/async-getprop.h core/async-getprop.c core/testasyncgetprop.c
noinst_PROGRAMS=testboxes testgradient testasyncgetprop
noinst_PROGRAMS=testboxes testgradient testasyncgetprop schema_bindings
testboxes_LDADD= @METACITY_LIBS@
testgradient_LDADD= @METACITY_LIBS@
testasyncgetprop_LDADD= @METACITY_LIBS@
desktopfilesdir=$(datadir)/gnome/wm-properties
@INTLTOOL_DESKTOP_RULE@
desktopfilesdir=$(datadir)/applications
desktopfiles_in_files=metacity.desktop.in
desktopfiles_files=$(desktopfiles_in_files:.desktop.in=.desktop)
desktopfiles_DATA = $(desktopfiles_files)
@INTLTOOL_DESKTOP_RULE@
wmpropertiesdir=$(datadir)/gnome/wm-properties
wmproperties_in_files=metacity-wm.desktop.in
wmproperties_files=$(wmproperties_in_files:.desktop.in=.desktop)
wmproperties_DATA = $(wmproperties_files)
schemadir = @GCONF_SCHEMA_FILE_DIR@
schema_in_files = metacity.schemas.in
@@ -176,25 +195,26 @@ 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 \
stock_maximize_data $(srcdir)/stock_maximize.png \
IMAGES=stock_maximize.png stock_minimize.png stock_delete.png
VARIABLES=stock_maximize_data $(srcdir)/stock_maximize.png \
stock_minimize_data $(srcdir)/stock_minimize.png \
stock_delete_data $(srcdir)/stock_delete.png
BUILT_SOURCES = inlinepixbufs.h
CLEANFILES = inlinepixbufs.h metacity.desktop metacity.schemas 50-metacity-desktop-key.xml 50-metacity-key.xml
CLEANFILES = inlinepixbufs.h metacity.desktop metacity-wm.desktop metacity.schemas metacity.schemas.in 50-metacity-desktop-key.xml 50-metacity-key.xml
inlinepixbufs.h: $(IMAGES)
$(GDK_PIXBUF_CSOURCE) --raw --build-list $(VARIABLES) >$(srcdir)/inlinepixbufs.h
$(GDK_PIXBUF_CSOURCE) --raw --build-list $(VARIABLES) >$(srcdir)/inlinepixbufs.h
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libmetacity-private.pc
EXTRA_DIST=$(desktopfiles_files) \
$(wmproperties_files) \
$(IMAGES) $(schema_DATA) \
$(desktopfiles_in_files) \
$(wmproperties_in_files) \
$(schema_in_files) \
$(xml_in_files) \
libmetacity-private.pc.in

View File

@@ -1,55 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity misc. public entry points */
/*
* Copyright (C) 2001 Havoc Pennington
*
* 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 "api.h"
#include "display.h"
#include "colors.h"
PangoContext*
meta_get_pango_context (Screen *xscreen,
const PangoFontDescription *desc)
{
MetaScreen *screen;
screen = meta_screen_for_x_screen (xscreen);
g_return_val_if_fail (screen != NULL, NULL);
return meta_screen_get_pango_context (screen,
desc,
/* FIXME, from the frame window */
PANGO_DIRECTION_LTR);
}
gulong
meta_get_x_pixel (Screen *xscreen, const PangoColor *color)
{
MetaScreen *screen;
screen = meta_screen_for_x_screen (xscreen);
g_return_val_if_fail (screen != NULL, 0);
return meta_screen_get_x_pixel (screen, color);
}

View File

@@ -1,64 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity misc. public entry points */
/*
* Copyright (C) 2001 Havoc Pennington
*
* 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_API_H
#define META_API_H
/* don't add any internal headers here; api.h is an installed/public
* header. Only theme.h is also installed.
*/
#include <X11/Xlib.h>
#include <pango/pangox.h>
/* Colors/state stuff matches GTK since we get the info from
* the GTK UI slave
*/
typedef struct _MetaUIColors MetaUIColors;
typedef enum
{
META_STATE_NORMAL,
META_STATE_ACTIVE,
META_STATE_PRELIGHT,
META_STATE_SELECTED,
META_STATE_INSENSITIVE
} MetaUIState;
struct _MetaUIColors
{
PangoColor fg[5];
PangoColor bg[5];
PangoColor light[5];
PangoColor dark[5];
PangoColor mid[5];
PangoColor text[5];
PangoColor base[5];
PangoColor text_aa[5];
};
PangoContext* meta_get_pango_context (Screen *xscreen,
const PangoFontDescription *desc);
gulong meta_get_x_pixel (Screen *xscreen,
const PangoColor *color);
#endif

View File

@@ -1,677 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2006 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/
#include <config.h>
#ifdef HAVE_COMPOSITE_EXTENSIONS
#include <cm/ws.h>
#include <cm/stacker.h>
#include <cm/wsint.h>
#include <cm/drawable-node.h>
#include <cm/state.h>
#include <cm/magnifier.h>
#include <cm/square.h>
#include <string.h>
#include "screen.h"
#include "c-screen.h"
#include "c-window.h"
struct MetaCompScreen
{
WsDisplay *display;
CmStacker *stacker;
CmMagnifier *magnifier;
WsWindow *gl_window;
WsWindow *root_window;
WsScreen *screen;
MetaScreen *meta_screen;
int repaint_id;
int idle_id;
WsWindow *selection_window;
GHashTable *windows_by_xid;
};
static MetaCompWindow *
meta_comp_window_lookup (MetaCompScreen *info,
Window xid)
{
MetaCompWindow *window;
window = g_hash_table_lookup (info->windows_by_xid, (gpointer)xid);
return window;
}
MetaCompWindow *
meta_comp_screen_lookup_window (MetaCompScreen *info,
Window xwindow)
{
return meta_comp_window_lookup (info, xwindow);
}
#if 0
static void
update_frame_counter (void)
{
#define BUFSIZE 128
static GTimer *timer;
static double buffer [BUFSIZE];
static int next = 0;
if (!timer)
timer = g_timer_new ();
buffer[next++] = g_timer_elapsed (timer, NULL);
if (next == BUFSIZE)
{
int i;
double total;
next = 0;
total = 0.0;
for (i = 1; i < BUFSIZE; ++i)
total += buffer[i] - buffer[i - 1];
g_print ("frames per second: %f\n", 1 / (total / (BUFSIZE - 1)));
}
}
#endif
static void
dump_stacking_order (GList *nodes)
{
GList *list;
for (list = nodes; list != NULL; list = list->next)
{
CmDrawableNode *node = list->data;
if (node)
g_print ("%lx, ", WS_RESOURCE_XID (node->drawable));
}
g_print ("\n");
}
static gboolean
repaint (gpointer data)
{
MetaCompScreen *info = data;
CmState *state;
#if 0
g_print ("repaint\n");
#endif
glViewport (0, 0,
info->meta_screen->rect.width,
info->meta_screen->rect.height);
glLoadIdentity();
#if 0
glClearColor (0, 0, 0, 1.0);
glClear (GL_COLOR_BUFFER_BIT);
#endif
ws_window_raise (info->gl_window);
#if 0
glDisable (GL_TEXTURE_2D);
glDisable (GL_TEXTURE_RECTANGLE_ARB);
glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);
glColor4f (0.0, 1.0, 0.0, 1.0);
glRectf (-1.0, -1.0, 1.0, 1.0);
glFinish();
#endif
state = cm_state_new ();
cm_state_disable_depth_buffer_update (state);
cm_node_render (CM_NODE (info->magnifier), state);
cm_state_enable_depth_buffer_update (state);
g_object_unref (state);
ws_window_gl_swap_buffers (info->gl_window);
glFinish();
#if 0
dump_stacking_order (info->stacker->children);
#endif
info->idle_id = 0;
return FALSE;
}
static MetaCompWindow *
find_comp_window (MetaCompScreen *info,
Window xwindow)
{
return meta_comp_window_lookup (info, xwindow);
}
static CmNode *
find_node (MetaCompScreen *info,
Window xwindow)
{
MetaCompWindow *window = meta_comp_window_lookup (info, xwindow);
if (window)
return meta_comp_window_get_node (window);
return NULL;
}
static GList *all_screen_infos;
MetaCompScreen *
meta_comp_screen_get_by_xwindow (Window xwindow)
{
GList *list;
for (list = all_screen_infos; list != NULL; list = list->next)
{
MetaCompScreen *info = list->data;
if (find_node (info, xwindow))
return info;
}
return NULL;
}
MetaCompScreen *
meta_comp_screen_new (WsDisplay *display,
MetaScreen *screen)
{
MetaCompScreen *scr_info = g_new0 (MetaCompScreen, 1);
scr_info->screen = ws_display_get_screen_from_number (
display, screen->number);
scr_info->root_window = ws_screen_get_root_window (scr_info->screen);
scr_info->display = display;
scr_info->meta_screen = screen;
scr_info->windows_by_xid = g_hash_table_new (g_direct_hash, g_direct_equal);
all_screen_infos = g_list_prepend (all_screen_infos, scr_info);
return scr_info;
}
static char *
make_selection_name (MetaCompScreen *info)
{
char *buffer;
buffer = g_strdup_printf ("_NET_WM_CM_S%d", info->meta_screen->number);
return buffer;
}
static void
on_selection_clear (WsWindow *window,
WsSelectionClearEvent *event,
gpointer data)
{
MetaCompScreen *info = data;
char *buffer = make_selection_name (info);
if (strcmp (event->selection, buffer))
{
/* We lost the selection */
meta_comp_screen_unredirect (info);
}
}
static WsWindow *
claim_selection (MetaCompScreen *info)
{
WsWindow *window = ws_window_new (info->root_window);
char *buffer = make_selection_name (info);
#if 0
g_print ("selection window: %lx\n", WS_RESOURCE_XID (window));
#endif
ws_window_own_selection (window, buffer, WS_CURRENT_TIME);
g_signal_connect (window, "selection_clear_event", G_CALLBACK (on_selection_clear), info);
g_free (buffer);
return window;
}
static void
queue_paint (CmNode *node,
MetaCompScreen *info)
{
#if 0
g_print ("queueing %s\n", G_OBJECT_TYPE_NAME (node));
#endif
meta_comp_screen_queue_paint (info);
}
void
meta_comp_screen_redirect (MetaCompScreen *info)
{
WsWindow *root = ws_screen_get_root_window (info->screen);
WsRectangle source;
WsRectangle target;
WsServerRegion *region;
int screen_w;
int screen_h;
CmSquare *square;
#if 0
g_print ("redirecting %lx\n", WS_RESOURCE_XID (root));
#endif
ws_window_redirect_subwindows (root);
info->gl_window = ws_screen_get_gl_window (info->screen);
/* FIXME: This should probably happen in libcm */
ws_window_set_override_redirect (info->gl_window, TRUE);
region = ws_server_region_new (info->display);
ws_window_set_input_shape (info->gl_window, region);
g_object_unref (G_OBJECT (region));
ws_display_begin_error_trap (info->display);
ws_window_unredirect (info->gl_window);
ws_display_end_error_trap (info->display);
info->selection_window = claim_selection (info);
ws_window_map (info->gl_window);
info->stacker = cm_stacker_new ();
square = cm_square_new (0.3, 0.3, 0.8, 1.0);
cm_stacker_add_child (info->stacker, CM_NODE (square));
g_object_unref (square);
screen_w = ws_screen_get_width (info->screen);
screen_h = ws_screen_get_height (info->screen);
#if 0
g_print ("width: %d height %d\n", screen_w, screen_h);
#endif
source.x = (screen_w - (screen_w / 4)) / 2;
source.y = screen_h / 16;
source.width = screen_w / 4;
source.height = screen_h / 16;
target.x = 0;
target.y = screen_h - screen_h / 4;
target.width = screen_w;
target.height = screen_h / 4;
info->magnifier = cm_magnifier_new (CM_NODE (info->stacker), &source, &target);
if (g_getenv ("USE_MAGNIFIER"))
cm_magnifier_set_active (info->magnifier, TRUE);
else
cm_magnifier_set_active (info->magnifier, FALSE);
info->repaint_id =
g_signal_connect (info->magnifier, "need_repaint",
G_CALLBACK (queue_paint), info);
ws_display_sync (info->display);
}
static void
listify (gpointer key,
gpointer value,
gpointer data)
{
GList **windows = data;
*windows = g_list_prepend (*windows, (gpointer)value);
}
static void
free_all_windows (MetaCompScreen *info)
{
GList *windows = NULL, *list;
g_hash_table_foreach (info->windows_by_xid, listify, &windows);
for (list = windows; list != NULL; list = list->next)
{
MetaCompWindow *window = list->data;
meta_comp_window_free (window);
}
g_list_free (windows);
}
void
meta_comp_screen_unredirect (MetaCompScreen *info)
{
WsScreen *ws_screen = info->screen;
WsWindow *root = ws_screen_get_root_window (ws_screen);
g_signal_handler_disconnect (info->magnifier, info->repaint_id);
g_object_unref (info->magnifier);
ws_window_unredirect_subwindows (root);
ws_screen_release_gl_window (ws_screen);
free_all_windows (info);
ws_display_sync (info->display);
/* FIXME: libcm needs a way to guarantee that a window is destroyed,
* without relying on ref counting having it as a side effect
*/
g_object_unref (info->selection_window);
}
void
meta_comp_screen_queue_paint (MetaCompScreen *info)
{
#if 0
g_print ("queuing\n");
#endif
if (!info->idle_id)
info->idle_id = g_idle_add (repaint, info);
}
void
meta_comp_screen_restack (MetaCompScreen *info,
Window window,
Window above_this)
{
MetaCompWindow *comp_window = find_comp_window (info, window);
MetaCompWindow *above_comp_window = find_comp_window (info, above_this);
CmNode *window_node = find_node (info, window);
CmNode *above_node = find_node (info, above_this);
if ((comp_window && meta_comp_window_stack_frozen (comp_window)) ||
(above_comp_window && meta_comp_window_stack_frozen (above_comp_window)))
{
return;
}
#if 0
dump_stacking_order (info->stacker->children);
#endif
if (window_node == above_node)
return;
if (window_node && above_this == WS_RESOURCE_XID (info->gl_window))
{
cm_stacker_raise_child (info->stacker, window_node);
}
else if (window_node && above_this == None)
{
cm_stacker_lower_child (info->stacker, window_node);
}
else if (window_node && above_node)
{
cm_stacker_restack_child (info->stacker, window_node, above_node);
}
#if 0
else
g_print ("nothing happened\n");
#endif
#if 0
g_print ("done restacking; new order:\n");
#endif
#if 0
dump_stacking_order (info->stacker->children);
#endif
}
void
meta_comp_screen_raise_window (MetaCompScreen *info,
Window window)
{
CmNode *node = find_node (info, window);
if (node)
cm_stacker_raise_child (info->stacker, node);
}
void
meta_comp_screen_set_size (MetaCompScreen *info,
Window xwindow,
gint x,
gint y,
gint width,
gint height)
{
MetaCompWindow *comp_window = meta_comp_window_lookup (info, xwindow);
if (comp_window)
{
WsRectangle rect;
rect.x = x;
rect.y = y;
rect.width = width;
rect.height = height;
meta_comp_window_set_size (comp_window, &rect);
}
}
static void
print_child_titles (WsWindow *window)
{
GList *children = ws_window_query_subwindows (window);
GList *list;
int i;
g_print ("window: %lx %s\n", WS_RESOURCE_XID (window), ws_window_query_title (window));
i = 0;
for (list = children; list != NULL; list = list->next)
{
WsWindow *child = list->data;
g_print (" %d adding: %lx %s\n", i++, WS_RESOURCE_XID (child), ws_window_query_title (child));
}
}
typedef struct
{
MetaCompScreen *cscreen;
XID xid;
} DestroyData;
static void
on_window_destroy (MetaCompWindow *comp_window,
gpointer closure)
{
DestroyData *data = closure;
CmNode *node = meta_comp_window_get_node (comp_window);
cm_stacker_remove_child (data->cscreen->stacker, node);
g_hash_table_remove (data->cscreen->windows_by_xid, (gpointer)data->xid);
}
void
meta_comp_screen_add_window (MetaCompScreen *info,
Window xwindow)
{
WsDrawable *drawable;
MetaCompWindow *comp_window;
DestroyData *data;
ws_display_begin_error_trap (info->display);
comp_window = meta_comp_window_lookup (info, xwindow);
if (comp_window)
goto out;
drawable = WS_DRAWABLE (ws_window_lookup (info->display, xwindow));
if (ws_window_query_input_only (WS_WINDOW (drawable)))
goto out;
if (WS_WINDOW (drawable) == info->gl_window ||
WS_WINDOW (drawable) == info->screen->overlay_window)
{
#if 0
g_print ("gl window\n");
#endif
goto out;
}
data = g_new (DestroyData, 1);
data->cscreen = info;
data->xid = WS_RESOURCE_XID (drawable);
comp_window = meta_comp_window_new (info->meta_screen, drawable,
on_window_destroy, data);
g_hash_table_insert (info->windows_by_xid, (gpointer)WS_RESOURCE_XID (drawable), comp_window);
cm_stacker_add_child (info->stacker, meta_comp_window_get_node (comp_window));
out:
if (comp_window)
{
/* This function is called both when windows are created and when they
* are mapped, so for now we have this silly function.
*/
meta_comp_window_refresh_attrs (comp_window);
}
ws_display_end_error_trap (info->display);
#if 0
g_print ("done checking\n");
#endif
return;
}
void
meta_comp_screen_remove_window (MetaCompScreen *info,
Window xwindow)
{
MetaCompWindow *comp_window = meta_comp_window_lookup (info, xwindow);
if (comp_window)
meta_comp_window_free (comp_window);
}
void
meta_comp_screen_set_updates (MetaCompScreen *info,
Window xwindow,
gboolean updates)
{
MetaCompWindow *comp_window = meta_comp_window_lookup (info, xwindow);
meta_comp_window_set_updates (comp_window, updates);
}
void
meta_comp_screen_set_patch (MetaCompScreen *info,
Window xwindow,
CmPoint points[4][4])
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
if (node)
cm_drawable_node_set_patch (node, points);
}
void
meta_comp_screen_unset_patch (MetaCompScreen *info,
Window xwindow)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
if (node)
cm_drawable_node_unset_patch (node);
}
void
meta_comp_screen_set_alpha (MetaCompScreen *info,
Window xwindow,
gdouble alpha)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
#if 0
g_print ("alpha: %f\n", alpha);
#endif
cm_drawable_node_set_alpha (node, alpha);
}
void
meta_comp_screen_get_real_size (MetaCompScreen *info,
Window xwindow,
WsRectangle *size)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
if (!size)
return;
cm_drawable_node_get_clipbox (node, size);
}
void
meta_comp_screen_unmap (MetaCompScreen *info,
Window xwindow)
{
MetaCompWindow *window = find_comp_window (info, xwindow);
if (window)
meta_comp_window_hide (window);
}
void
meta_comp_screen_set_target_rect (MetaCompScreen *info,
Window xwindow,
WsRectangle *rect)
{
CmDrawableNode *node = CM_DRAWABLE_NODE (find_node (info, xwindow));
if (node)
cm_drawable_node_set_scale_rect (node, rect);
}
#endif

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -1,72 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2006 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/
#include <cm/node.h>
#include "display.h"
#include "effects.h"
#ifndef C_WINDOW_H
#define C_WINDOW_H
typedef struct _MetaCompWindow MetaCompWindow;
typedef void (* MetaCompWindowDestroy) (MetaCompWindow *window,
gpointer closure);
MetaCompWindow *meta_comp_window_new (MetaScreen *screen,
WsDrawable *drawable,
MetaCompWindowDestroy destroy,
gpointer data);
CmNode *meta_comp_window_get_node (MetaCompWindow *window);
gboolean meta_comp_window_free (MetaCompWindow *window);
void meta_comp_window_set_size (MetaCompWindow *window,
WsRectangle *size);
void meta_comp_window_hide (MetaCompWindow *comp_window);
void meta_comp_window_show (MetaCompWindow *comp_window);
void meta_comp_window_refresh_attrs (MetaCompWindow *comp_window);
void meta_comp_window_set_updates (MetaCompWindow *comp_window,
gboolean updates);
void meta_comp_window_explode (MetaCompWindow *comp_window,
MetaEffect *effect);
void meta_comp_window_shrink (MetaCompWindow *comp_window,
MetaEffect *effect);
void meta_comp_window_unshrink (MetaCompWindow *comp_window,
MetaEffect *effect);
void meta_comp_window_run_focus (MetaCompWindow *comp_window,
MetaEffect *effect);
void meta_comp_window_restack (MetaCompWindow *comp_window,
MetaCompWindow *above);
void meta_comp_window_freeze_stack (MetaCompWindow *comp_window);
void meta_comp_window_thaw_stack (MetaCompWindow *comp_window);
gboolean meta_comp_window_stack_frozen (MetaCompWindow *comp_window);
void meta_comp_window_run_minimize (MetaCompWindow *window,
MetaEffect *effect);
void meta_comp_window_run_unminimize (MetaCompWindow *comp_window,
MetaEffect *effect);
#if 0
void meta_comp_window_set_explode (MetaCompWindow *comp_window,
double level);
#endif
#endif

View File

@@ -1,370 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity RGB color stuff */
/*
* Copyright (C) 2001 Havoc Pennington
*
* 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 "colors.h"
static void
visual_decompose_mask (gulong mask,
gint *shift,
gint *prec)
{
/* This code is from GTK+, (C) GTK+ Team */
*shift = 0;
*prec = 0;
while (!(mask & 0x1))
{
(*shift)++;
mask >>= 1;
}
while (mask & 0x1)
{
(*prec)++;
mask >>= 1;
}
}
void
meta_screen_init_visual_info (MetaScreen *screen)
{
Visual *xvisual;
int nxvisuals;
XVisualInfo *visual_list;
XVisualInfo visual_template;
/* root window visual */
xvisual = DefaultVisual (screen->display->xdisplay,
screen->number);
visual_template.visualid = XVisualIDFromVisual (xvisual);
visual_list = XGetVisualInfo (screen->display->xdisplay,
VisualIDMask, &visual_template, &nxvisuals);
if (nxvisuals != 1)
meta_warning ("Matched weird number of visuals %d\n", nxvisuals);
screen->visual_info = *visual_list;
meta_verbose ("Using visual class %d\n", screen->visual_info.class);
XFree (visual_list);
}
gulong
meta_screen_get_x_pixel (MetaScreen *screen,
const PangoColor *color)
{
/* This code is derived from GTK+, (C) GTK+ Team */
gulong pixel;
if (screen->visual_info.class == TrueColor ||
screen->visual_info.class == DirectColor)
{
int red_prec, red_shift, green_prec, green_shift, blue_prec, blue_shift;
visual_decompose_mask (screen->visual_info.red_mask,
&red_shift, &red_prec);
visual_decompose_mask (screen->visual_info.green_mask,
&green_shift, &green_prec);
visual_decompose_mask (screen->visual_info.blue_mask,
&blue_shift, &blue_prec);
pixel = (((color->red >> (16 - red_prec)) << red_shift) +
((color->green >> (16 - green_prec)) << green_shift) +
((color->blue >> (16 - blue_prec)) << blue_shift));
}
else
{
#define INTENSITY(r, g, b) ((r) * 0.30 + (g) * 0.59 + (b) * 0.11)
double r, g, b;
r = color->red / (double) 0xffff;
g = color->green / (double) 0xffff;
b = color->blue / (double) 0xffff;
/* Now this is a low-bloat GdkRGB replacement! */
if (INTENSITY (r, g, b) > 0.5)
pixel = WhitePixel (screen->display->xdisplay, screen->number);
else
pixel = BlackPixel (screen->display->xdisplay, screen->number);
#undef INTENSITY
}
return pixel;
}
void
meta_screen_set_ui_colors (MetaScreen *screen,
const MetaUIColors *colors)
{
screen->colors = *colors;
meta_screen_queue_frame_redraws (screen);
}
/* Straight out of gtkstyle.c */
static PangoColor meta_default_normal_fg = { 0, 0, 0 };
static PangoColor meta_default_active_fg = { 0, 0, 0 };
static PangoColor meta_default_prelight_fg = { 0, 0, 0 };
static PangoColor meta_default_selected_fg = { 0xffff, 0xffff, 0xffff };
static PangoColor meta_default_insensitive_fg = { 0x7530, 0x7530, 0x7530 };
static PangoColor meta_default_normal_bg = { 0xd6d6, 0xd6d6, 0xd6d6 };
static PangoColor meta_default_active_bg = { 0xc350, 0xc350, 0xc350 };
static PangoColor meta_default_prelight_bg = { 0xea60, 0xea60, 0xea60 };
static PangoColor meta_default_selected_bg = { 0, 0, 0x9c40 };
static PangoColor meta_default_insensitive_bg = { 0xd6d6, 0xd6d6, 0xd6d6 };
static void
rgb_to_hls (gdouble *r,
gdouble *g,
gdouble *b)
{
gdouble min;
gdouble max;
gdouble red;
gdouble green;
gdouble blue;
gdouble h, l, s;
gdouble delta;
red = *r;
green = *g;
blue = *b;
if (red > green)
{
if (red > blue)
max = red;
else
max = blue;
if (green < blue)
min = green;
else
min = blue;
}
else
{
if (green > blue)
max = green;
else
max = blue;
if (red < blue)
min = red;
else
min = blue;
}
l = (max + min) / 2;
s = 0;
h = 0;
if (max != min)
{
if (l <= 0.5)
s = (max - min) / (max + min);
else
s = (max - min) / (2 - max - min);
delta = max -min;
if (red == max)
h = (green - blue) / delta;
else if (green == max)
h = 2 + (blue - red) / delta;
else if (blue == max)
h = 4 + (red - green) / delta;
h *= 60;
if (h < 0.0)
h += 360;
}
*r = h;
*g = l;
*b = s;
}
static void
hls_to_rgb (gdouble *h,
gdouble *l,
gdouble *s)
{
gdouble hue;
gdouble lightness;
gdouble saturation;
gdouble m1, m2;
gdouble r, g, b;
lightness = *l;
saturation = *s;
if (lightness <= 0.5)
m2 = lightness * (1 + saturation);
else
m2 = lightness + saturation - lightness * saturation;
m1 = 2 * lightness - m2;
if (saturation == 0)
{
*h = lightness;
*l = lightness;
*s = lightness;
}
else
{
hue = *h + 120;
while (hue > 360)
hue -= 360;
while (hue < 0)
hue += 360;
if (hue < 60)
r = m1 + (m2 - m1) * hue / 60;
else if (hue < 180)
r = m2;
else if (hue < 240)
r = m1 + (m2 - m1) * (240 - hue) / 60;
else
r = m1;
hue = *h;
while (hue > 360)
hue -= 360;
while (hue < 0)
hue += 360;
if (hue < 60)
g = m1 + (m2 - m1) * hue / 60;
else if (hue < 180)
g = m2;
else if (hue < 240)
g = m1 + (m2 - m1) * (240 - hue) / 60;
else
g = m1;
hue = *h - 120;
while (hue > 360)
hue -= 360;
while (hue < 0)
hue += 360;
if (hue < 60)
b = m1 + (m2 - m1) * hue / 60;
else if (hue < 180)
b = m2;
else if (hue < 240)
b = m1 + (m2 - m1) * (240 - hue) / 60;
else
b = m1;
*h = r;
*l = g;
*s = b;
}
}
static void
style_shade (PangoColor *a,
PangoColor *b,
gdouble k)
{
gdouble red;
gdouble green;
gdouble blue;
red = (gdouble) a->red / 65535.0;
green = (gdouble) a->green / 65535.0;
blue = (gdouble) a->blue / 65535.0;
rgb_to_hls (&red, &green, &blue);
green *= k;
if (green > 1.0)
green = 1.0;
else if (green < 0.0)
green = 0.0;
blue *= k;
if (blue > 1.0)
blue = 1.0;
else if (blue < 0.0)
blue = 0.0;
hls_to_rgb (&red, &green, &blue);
b->red = red * 65535.0;
b->green = green * 65535.0;
b->blue = blue * 65535.0;
}
#define LIGHTNESS_MULT 1.3
#define DARKNESS_MULT 0.7
void
meta_screen_init_ui_colors (MetaScreen *screen)
{
int i;
MetaUIColors *colors;
colors = &screen->colors;
colors->fg[META_STATE_NORMAL] = meta_default_normal_fg;
colors->fg[META_STATE_ACTIVE] = meta_default_active_fg;
colors->fg[META_STATE_PRELIGHT] = meta_default_prelight_fg;
colors->fg[META_STATE_SELECTED] = meta_default_selected_fg;
colors->fg[META_STATE_INSENSITIVE] = meta_default_insensitive_fg;
colors->bg[META_STATE_NORMAL] = meta_default_normal_bg;
colors->bg[META_STATE_ACTIVE] = meta_default_active_bg;
colors->bg[META_STATE_PRELIGHT] = meta_default_prelight_bg;
colors->bg[META_STATE_SELECTED] = meta_default_selected_bg;
colors->bg[META_STATE_INSENSITIVE] = meta_default_insensitive_bg;
for (i = 0; i < 4; i++)
{
colors->text[i] = colors->fg[i];
colors->base[i].red = G_MAXUSHORT;
colors->base[i].green = G_MAXUSHORT;
colors->base[i].blue = G_MAXUSHORT;
}
colors->base[META_STATE_SELECTED] = meta_default_selected_bg;
colors->base[META_STATE_INSENSITIVE] = meta_default_prelight_bg;
colors->text[META_STATE_INSENSITIVE] = meta_default_insensitive_fg;
for (i = 0; i < 5; i++)
{
style_shade (&colors->bg[i], &colors->light[i], LIGHTNESS_MULT);
style_shade (&colors->bg[i], &colors->dark[i], DARKNESS_MULT);
colors->mid[i].red = (colors->light[i].red + colors->dark[i].red) / 2;
colors->mid[i].green = (colors->light[i].green + colors->dark[i].green) / 2;
colors->mid[i].blue = (colors->light[i].blue + colors->dark[i].blue) / 2;
colors->text_aa[i].red = (colors->text[i].red + colors->base[i].red) / 2;
colors->text_aa[i].green = (colors->text[i].green + colors->base[i].green) / 2;
colors->text_aa[i].blue = (colors->text[i].blue + colors->base[i].blue) / 2;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,92 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* 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"
#include "spring-model.h"
#ifdef HAVE_COMPOSITE_EXTENSIONS
#include "cm/deform.h"
/* FIXME: Needs namespacing. */
void get_patch_points (Model *model, CmPoint points[4][4]);
#endif
typedef void (* MetaAnimationFinishedFunc) (gpointer data);
/* XXX namespace me */
void compute_window_rect (MetaWindow *window, MetaRectangle *rect);
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_set_debug_updates (MetaCompositor *compositor,
gboolean debug_updates);
void meta_compositor_manage_screen (MetaCompositor *compositor,
MetaScreen *screen);
void meta_compositor_unmanage_screen (MetaCompositor *compositor,
MetaScreen *screen);
#if 0
void meta_compositor_minimize (MetaCompositor *compositor,
MetaWindow *window,
int x,
int y,
int width,
int height,
MetaAnimationFinishedFunc finished_cb,
gpointer finished_data);
#endif
void
meta_compositor_set_updates (MetaCompositor *compositor,
MetaWindow *window,
gboolean updates);
void
meta_compositor_destroy (MetaCompositor *compositor);
void meta_compositor_begin_move (MetaCompositor *compositor,
MetaWindow *window,
MetaRectangle *initial,
int grab_x, int grab_y);
void meta_compositor_update_move (MetaCompositor *compositor,
MetaWindow *window,
int x, int y);
void meta_compositor_end_move (MetaCompositor *compositor,
MetaWindow *window);
void meta_compositor_free_window (MetaCompositor *compositor,
MetaWindow *window);
void meta_compositor_free_window (MetaCompositor *compositor,
MetaWindow *window);
#endif /* META_COMPOSITOR_H */

View File

@@ -0,0 +1,54 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2008 Iain Holmes
*
* 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_PRIVATE_H
#define META_COMPOSITOR_PRIVATE_H
#include "compositor.h"
struct _MetaCompositor
{
void (* destroy) (MetaCompositor *compositor);
void (*manage_screen) (MetaCompositor *compositor,
MetaScreen *screen);
void (*unmanage_screen) (MetaCompositor *compositor,
MetaScreen *screen);
void (*add_window) (MetaCompositor *compositor,
MetaWindow *window,
Window xwindow,
XWindowAttributes *attrs);
void (*remove_window) (MetaCompositor *compositor,
Window xwindow);
void (*set_updates) (MetaCompositor *compositor,
MetaWindow *window,
gboolean update);
void (*process_event) (MetaCompositor *compositor,
XEvent *event,
MetaWindow *window);
Pixmap (*get_window_pixmap) (MetaCompositor *compositor,
MetaWindow *window);
void (*set_active_window) (MetaCompositor *compositor,
MetaScreen *screen,
MetaWindow *window);
};
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity fixed tooltip routine */
/*
* Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2007 Iain Holmes
* Based on xcompmgr - (c) 2003 Keith Packard
* xfwm4 - (c) 2005-2007 Olivier Fourdan
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -21,16 +21,11 @@
* 02111-1307, USA.
*/
#ifndef META_FIXED_TIP_H
#define META_FIXED_TIP_H
#ifndef META_COMPOSITOR_XRENDER_H_
#define META_COMPOSITOR_XRENDER_H_
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
void meta_fixed_tip_show (Display *xdisplay, int screen_number,
int root_x, int root_y,
const char *markup_text);
void meta_fixed_tip_hide (void);
#include "types.h"
MetaCompositor *meta_compositor_xrender_new (MetaDisplay *display);
#endif

159
src/compositor/compositor.c Normal file
View File

@@ -0,0 +1,159 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2008 Iain Holmes
*
* 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 "compositor-private.h"
#include "compositor-xrender.h"
MetaCompositor *
meta_compositor_new (MetaDisplay *display)
{
#ifdef HAVE_COMPOSITE_EXTENSIONS
/* At some point we would have a way to select between backends */
return meta_compositor_xrender_new (display);
#else
return NULL;
#endif
}
void
meta_compositor_destroy (MetaCompositor *compositor)
{
#ifdef HAVE_COMPOSITE_EXTENSIONS
if (compositor && compositor->destroy)
compositor->destroy (compositor);
#endif
}
void
meta_compositor_add_window (MetaCompositor *compositor,
MetaWindow *window,
Window xwindow,
XWindowAttributes *attrs)
{
#ifdef HAVE_COMPOSITE_EXTENSIONS
if (compositor && compositor->add_window)
compositor->add_window (compositor, window, xwindow, attrs);
#endif
}
void
meta_compositor_remove_window (MetaCompositor *compositor,
Window xwindow)
{
#ifdef HAVE_COMPOSITE_EXTENSIONS
if (compositor && compositor->remove_window)
compositor->remove_window (compositor, xwindow);
#endif
}
void
meta_compositor_manage_screen (MetaCompositor *compositor,
MetaScreen *screen)
{
#ifdef HAVE_COMPOSITE_EXTENSIONS
if (compositor && compositor->manage_screen)
compositor->manage_screen (compositor, screen);
#endif
}
void
meta_compositor_unmanage_screen (MetaCompositor *compositor,
MetaScreen *screen)
{
#ifdef HAVE_COMPOSITE_EXTENSIONS
if (compositor && compositor->unmanage_screen)
compositor->unmanage_screen (compositor, screen);
#endif
}
void
meta_compositor_set_updates (MetaCompositor *compositor,
MetaWindow *window,
gboolean updates)
{
#ifdef HAVE_COMPOSITE_EXTENSIONS
if (compositor && compositor->set_updates)
compositor->set_updates (compositor, window, updates);
#endif
}
void
meta_compositor_process_event (MetaCompositor *compositor,
XEvent *event,
MetaWindow *window)
{
#ifdef HAVE_COMPOSITE_EXTENSIONS
if (compositor && compositor->process_event)
compositor->process_event (compositor, event, window);
#endif
}
Pixmap
meta_compositor_get_window_pixmap (MetaCompositor *compositor,
MetaWindow *window)
{
#ifdef HAVE_COMPOSITE_EXTENSIONS
if (compositor && compositor->get_window_pixmap)
return compositor->get_window_pixmap (compositor, window);
else
return None;
#else
return None;
#endif
}
void
meta_compositor_set_active_window (MetaCompositor *compositor,
MetaScreen *screen,
MetaWindow *window)
{
#ifdef HAVE_COMPOSITE_EXTENSIONS
if (compositor && compositor->set_active_window)
compositor->set_active_window (compositor, screen, window);
#endif
}
/* These functions are unused at the moment */
void meta_compositor_begin_move (MetaCompositor *compositor,
MetaWindow *window,
MetaRectangle *initial,
int grab_x,
int grab_y)
{
}
void meta_compositor_update_move (MetaCompositor *compositor,
MetaWindow *window,
int x,
int y)
{
}
void meta_compositor_end_move (MetaCompositor *compositor,
MetaWindow *window)
{
}
void meta_compositor_free_window (MetaCompositor *compositor,
MetaWindow *window)
{
}

View File

@@ -586,7 +586,7 @@ ag_task_get_reply_and_free (AgGetPropertyTask *task,
int *actual_format,
unsigned long *nitems,
unsigned long *bytesafter,
char **prop)
unsigned char **prop)
{
Display *dpy;
@@ -615,7 +615,7 @@ ag_task_get_reply_and_free (AgGetPropertyTask *task,
*nitems = task->n_items;
*bytesafter = task->bytes_after;
*prop = task->data; /* pass out ownership of task->data */
*prop = (unsigned char*) task->data; /* pass out ownership of task->data */
SyncHandle ();

View File

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

166
src/core/atomnames.h Normal file
View File

@@ -0,0 +1,166 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2001 Havoc Pennington
* Copyright (C) 2002, 2003, 2004 Red Hat, Inc.
* Copyright (C) 2003, 2004 Rob Adams
* Copyright (C) 2004-2006 Elijah Newren
* Copyright (C) 2008 Thomas Thurman
*
* 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.
*/
/**
* \file atomnames.h A list of atom names.
*
* This is a list of the names of all the X atoms that Metacity uses.
* Each is wrapped in a macro "item()" which is undefined here; the
* idea is that when you need to make a big list of all the X atoms,
* you can define item(), include this file, and then undefine it
* again.
*
* If you also define EWMH_ATOMS_ONLY then you will only get _NET_WM_*
* atoms rather than all of them.
*/
#ifndef item
#error "item(x) must be defined when you include atomnames.h"
#endif
#ifndef EWMH_ATOMS_ONLY
item(WM_PROTOCOLS)
item(WM_TAKE_FOCUS)
item(WM_DELETE_WINDOW)
item(WM_STATE)
item(_MOTIF_WM_HINTS)
item(WM_CHANGE_STATE)
item(SM_CLIENT_ID)
item(WM_CLIENT_LEADER)
item(WM_WINDOW_ROLE)
item(UTF8_STRING)
item(WM_ICON_SIZE)
item(_KWM_WIN_ICON)
item(_METACITY_RESTART_MESSAGE)
item(_METACITY_RELOAD_THEME_MESSAGE)
item(_METACITY_SET_KEYBINDINGS_MESSAGE)
item(_METACITY_TOGGLE_VERBOSE)
item(_GNOME_PANEL_ACTION)
item(_GNOME_PANEL_ACTION_MAIN_MENU)
item(_GNOME_PANEL_ACTION_RUN_DIALOG)
item(_METACITY_SENTINEL)
item(_METACITY_VERSION)
item(WM_CLIENT_MACHINE)
item(MANAGER)
item(TARGETS)
item(MULTIPLE)
item(TIMESTAMP)
item(VERSION)
item(ATOM_PAIR)
/* Oddities: These are used, and we need atoms for them,
* but when we need all _NET_WM hints (i.e. when we're making
* lists of which _NET_WM hints we support in order to advertise
* it) we haven't historically listed them. I don't know what
* the reason for this is. It may be a bug.
*/
item(_NET_WM_SYNC_REQUEST)
item(_NET_WM_SYNC_REQUEST_COUNTER)
item(_NET_WM_VISIBLE_NAME)
item(_NET_WM_VISIBLE_ICON_NAME)
item(_NET_SUPPORTING_WM_CHECK)
/* But I suppose it's quite reasonable not to advertise using
* _NET_SUPPORTED that we support _NET_SUPPORTED :)
*/
item(_NET_SUPPORTED)
#endif /* !EWMH_ATOMS_ONLY */
/**************************************************************************/
item(_NET_WM_NAME)
item(_NET_CLOSE_WINDOW)
item(_NET_WM_STATE)
item(_NET_WM_STATE_SHADED)
item(_NET_WM_STATE_MAXIMIZED_HORZ)
item(_NET_WM_STATE_MAXIMIZED_VERT)
item(_NET_WM_DESKTOP)
item(_NET_NUMBER_OF_DESKTOPS)
item(_NET_CURRENT_DESKTOP)
item(_NET_WM_WINDOW_TYPE)
item(_NET_WM_WINDOW_TYPE_DESKTOP)
item(_NET_WM_WINDOW_TYPE_DOCK)
item(_NET_WM_WINDOW_TYPE_TOOLBAR)
item(_NET_WM_WINDOW_TYPE_MENU)
item(_NET_WM_WINDOW_TYPE_DIALOG)
item(_NET_WM_WINDOW_TYPE_NORMAL)
item(_NET_WM_STATE_MODAL)
item(_NET_CLIENT_LIST)
item(_NET_CLIENT_LIST_STACKING)
item(_NET_WM_STATE_SKIP_TASKBAR)
item(_NET_WM_STATE_SKIP_PAGER)
item(_NET_WM_ICON_NAME)
item(_NET_WM_ICON)
item(_NET_WM_ICON_GEOMETRY)
item(_NET_WM_MOVERESIZE)
item(_NET_ACTIVE_WINDOW)
item(_NET_WM_STRUT)
item(_NET_WM_STATE_HIDDEN)
item(_NET_WM_WINDOW_TYPE_UTILITY)
item(_NET_WM_WINDOW_TYPE_SPLASH)
item(_NET_WM_STATE_FULLSCREEN)
item(_NET_WM_PING)
item(_NET_WM_PID)
item(_NET_WORKAREA)
item(_NET_SHOWING_DESKTOP)
item(_NET_DESKTOP_LAYOUT)
item(_NET_DESKTOP_NAMES)
item(_NET_WM_ALLOWED_ACTIONS)
item(_NET_WM_ACTION_MOVE)
item(_NET_WM_ACTION_RESIZE)
item(_NET_WM_ACTION_SHADE)
item(_NET_WM_ACTION_STICK)
item(_NET_WM_ACTION_MAXIMIZE_HORZ)
item(_NET_WM_ACTION_MAXIMIZE_VERT)
item(_NET_WM_ACTION_CHANGE_DESKTOP)
item(_NET_WM_ACTION_CLOSE)
item(_NET_WM_STATE_ABOVE)
item(_NET_WM_STATE_BELOW)
item(_NET_STARTUP_ID)
item(_NET_WM_STRUT_PARTIAL)
item(_NET_WM_ACTION_FULLSCREEN)
item(_NET_WM_ACTION_MINIMIZE)
item(_NET_FRAME_EXTENTS)
item(_NET_REQUEST_FRAME_EXTENTS)
item(_NET_WM_USER_TIME)
item(_NET_WM_STATE_DEMANDS_ATTENTION)
item(_NET_MOVERESIZE_WINDOW)
item(_NET_DESKTOP_GEOMETRY)
item(_NET_DESKTOP_VIEWPORT)
item(_NET_WM_USER_TIME_WINDOW)
item(_NET_WM_ACTION_ABOVE)
item(_NET_WM_ACTION_BELOW)
item(_NET_WM_STATE_STICKY)
item(_NET_WM_FULLSCREEN_MONITORS)
#if 0
/* We apparently never use: */
/* item(_NET_RESTACK_WINDOW) */
#endif
/* eof atomnames.h */

View File

@@ -22,13 +22,57 @@
* 02111-1307, USA.
*/
/**
* \file bell.c Ring the bell or flash the screen
*
* Sometimes, X programs "ring the bell", whatever that means. Metacity lets
* the user configure the bell to be audible or visible (aka visual), and
* if it's visual it can be configured to be frame-flash or fullscreen-flash.
* We never get told about audible bells; X handles them just fine by itself.
*
* Visual bells come in at meta_bell_notify(), which checks we are actually
* in visual mode and calls through to bell_visual_notify(). That
* function then checks what kind of visual flash you like, and calls either
* bell_flash_fullscreen()-- which calls bell_flash_screen() to do
* its work-- or bell_flash_frame(), which flashes the focussed window
* using bell_flash_window_frame(), unless there is no such window, in
* which case it flashes the screen instead. bell_flash_window_frame()
* flashes the frame and calls bell_unflash_frame() as a timeout to
* remove the flash.
*
* The visual bell was the result of a discussion in Bugzilla here:
* <http://bugzilla.gnome.org/show_bug.cgi?id=99886>.
*
* Several of the functions in this file are ifdeffed out entirely if we are
* found not to have the XKB extension, which is required to do these clever
* things with bells; some others are entirely no-ops in that case.
*/
#include <config.h>
#include "bell.h"
#include "screen.h"
#include "screen-private.h"
#include "prefs.h"
/**
* Flashes one entire screen. This is done by making a window the size of the
* whole screen (or reusing the old one, if it's still around), mapping it,
* painting it white and then black, and then unmapping it. We set saveunder so
* that all the windows behind it come back immediately.
*
* Unlike frame flashes, we don't do fullscreen flashes with a timeout; rather,
* we do them in one go, because we don't have to rely on the theme code
* redrawing the frame for us in order to do the flash.
*
* \param display The display which owns the screen (rather redundant)
* \param screen The screen to flash
*
* \bug The way I read it, this appears not to do the flash
* the first time we flash a particular display. Am I wrong?
*
* \bug This appears to destroy our current XSync status.
*/
static void
meta_bell_flash_screen (MetaDisplay *display,
bell_flash_screen (MetaDisplay *display,
MetaScreen *screen)
{
Window root = screen->xroot;
@@ -89,9 +133,19 @@ meta_bell_flash_screen (MetaDisplay *display,
XFlush (display->xdisplay);
}
/**
* Flashes one screen, or all screens, in response to a bell event.
* If the event is on a particular window, flash the screen that
* window is on. Otherwise, flash every screen on this display.
*
* If the configure script found we had no XKB, this does not exist.
*
* \param display The display the event came in on
* \param xkb_ev The bell event
*/
#ifdef HAVE_XKB
static void
meta_bell_flash_fullscreen (MetaDisplay *display,
bell_flash_fullscreen (MetaDisplay *display,
XkbAnyEvent *xkb_ev)
{
XkbBellNotifyEvent *xkb_bell_ev = (XkbBellNotifyEvent *) xkb_ev;
@@ -102,7 +156,7 @@ meta_bell_flash_fullscreen (MetaDisplay *display,
{
screen = meta_display_screen_for_xwindow (display, xkb_bell_ev->window);
if (screen)
meta_bell_flash_screen (display, screen);
bell_flash_screen (display, screen);
}
else
{
@@ -110,14 +164,28 @@ meta_bell_flash_fullscreen (MetaDisplay *display,
while (screen_list)
{
screen = (MetaScreen *) screen_list->data;
meta_bell_flash_screen (display, screen);
bell_flash_screen (display, screen);
screen_list = screen_list->next;
}
}
}
/**
* Makes a frame be not flashed; this is the timeout half of
* bell_flash_window_frame(). This is done simply by clearing the
* flash flag and queuing a redraw of the frame.
*
* If the configure script found we had no XKB, this does not exist.
*
* \param data The frame to unflash, cast to a gpointer so it can go into
* a callback function.
* \return Always FALSE, so we don't get called again.
*
* \bug This is the parallel to bell_flash_window_frame(), so it should
* really be called meta_bell_unflash_window_frame().
*/
static gboolean
meta_bell_unflash_frame (gpointer data)
bell_unflash_frame (gpointer data)
{
MetaFrame *frame = (MetaFrame *) data;
frame->is_flashing = 0;
@@ -125,18 +193,36 @@ meta_bell_unflash_frame (gpointer data)
return FALSE;
}
/**
* Makes a frame flash and then return to normal shortly afterwards.
* This is done by setting a flag so that the theme
* code will temporarily draw the frame as focussed if it's unfocussed and
* vice versa, and then queueing a redraw. Lastly, we create a timeout so
* that the flag can be unset and the frame re-redrawn.
*
* If the configure script found we had no XKB, this does not exist.
*
* \param window The window to flash
*/
static void
meta_bell_flash_window_frame (MetaWindow *window)
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);
bell_unflash_frame, window->frame, NULL);
}
/**
* Flashes the frame of the focussed window. If there is no focussed window,
* flashes the screen.
*
* \param display The display the bell event came in on
* \param xkb_ev The bell event we just received
*/
static void
meta_bell_flash_frame (MetaDisplay *display,
bell_flash_frame (MetaDisplay *display,
XkbAnyEvent *xkb_ev)
{
XkbBellNotifyEvent *xkb_bell_event = (XkbBellNotifyEvent *) xkb_ev;
@@ -150,25 +236,36 @@ meta_bell_flash_frame (MetaDisplay *display,
}
if (window)
{
meta_bell_flash_window_frame (window);
bell_flash_window_frame (window);
}
else /* revert to fullscreen flash if there's no focussed window */
{
meta_bell_flash_fullscreen (display, xkb_ev);
bell_flash_fullscreen (display, xkb_ev);
}
}
/**
* Gives the user some kind of visual bell substitute, in response to a
* bell event. What this is depends on the "visual bell type" pref.
*
* If the configure script found we had no XKB, this does not exist.
*
* \param display The display the bell event came in on
* \param xkb_ev The bell event we just received
*
* \bug This should be merged with meta_bell_notify().
*/
static void
meta_bell_visual_notify (MetaDisplay *display,
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);
bell_flash_fullscreen (display, xkb_ev);
break;
case META_VISUAL_BELL_FRAME_FLASH:
meta_bell_flash_frame (display, xkb_ev); /* does nothing yet */
bell_flash_frame (display, xkb_ev); /* does nothing yet */
break;
case META_VISUAL_BELL_INVALID:
/* do nothing */
@@ -182,9 +279,9 @@ meta_bell_notify (MetaDisplay *display,
{
/* flash something */
if (meta_prefs_get_visual_bell ())
meta_bell_visual_notify (display, xkb_ev);
bell_visual_notify (display, xkb_ev);
}
#endif
#endif /* HAVE_XKB */
void
meta_bell_set_audible (MetaDisplay *display, gboolean audible)
@@ -250,6 +347,14 @@ meta_bell_shutdown (MetaDisplay *display)
#endif
}
/**
* Deals with a frame being destroyed. This is important because if we're
* using a visual bell, we might be flashing the edges of the frame, and
* so we'd have a timeout function waiting ready to un-flash them. If the
* frame's going away, we can tell the timeout not to bother.
*
* \param frame The frame which is being destroyed
*/
void
meta_bell_notify_frame_destroy (MetaFrame *frame)
{

108
src/core/bell.h Normal file
View File

@@ -0,0 +1,108 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/**
* \file bell.h Ring the bell or flash the screen
*
* Sometimes, X programs "ring the bell", whatever that means. Metacity lets
* the user configure the bell to be audible or visible (aka visual), and
* if it's visual it can be configured to be frame-flash or fullscreen-flash.
* We never get told about audible bells; X handles them just fine by itself.
*
* The visual bell was the result of a discussion in Bugzilla here:
* <http://bugzilla.gnome.org/show_bug.cgi?id=99886>.
*/
/*
* 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-private.h"
#include "frame-private.h"
#ifdef HAVE_XKB
/**
* Gives the user some kind of visual bell; in fact, this is our response
* to any kind of bell request, but we set it up so that we only get
* notified about visual bells, and X deals with audible ones.
*
* If the configure script found we had no XKB, this does not exist.
*
* \param display The display the bell event came in on
* \param xkb_ev The bell event we just received
*/
void meta_bell_notify (MetaDisplay *display, XkbAnyEvent *xkb_ev);
#endif
/**
* Turns the bell to audible or visual. This tells X what to do, but
* not Metacity; you will need to set the "visual bell" pref for that.
*
* If the configure script found we had no XKB, this is a no-op.
*
* \param display The display we're configuring
* \param audible True for an audible bell, false for a visual bell
*/
void meta_bell_set_audible (MetaDisplay *display, gboolean audible);
/**
* Initialises the bell subsystem. This involves intialising
* XKB (which, despite being a keyboard extension, is the
* place to look for bell notifications), then asking it
* to send us bell notifications, and then also switching
* off the audible bell if we're using a visual one ourselves.
*
* Unlike most X extensions we use, we only initialise XKB here
* (rather than in main()). It's possible that XKB is not
* installed at all, but if that was known at build time
* we will have HAVE_XKB undefined, which will cause this
* function to be a no-op.
*
* \param display The display which is opening
*
* \bug There is a line of code that's never run that tells
* XKB to reset the bell status after we quit. Bill H said
* (<http://bugzilla.gnome.org/show_bug.cgi?id=99886#c12>)
* that XFree86's implementation is broken so we shouldn't
* call it, but that was in 2002. Is it working now?
*/
gboolean meta_bell_init (MetaDisplay *display);
/**
* Shuts down the bell subsystem.
*
* \param display The display which is closing
*
* \bug This is never called! If we had XkbSetAutoResetControls
* enabled in meta_bell_init(), this wouldn't be a problem, but
* we don't.
*/
void meta_bell_shutdown (MetaDisplay *display);
/**
* Deals with a frame being destroyed. This is important because if we're
* using a visual bell, we might be flashing the edges of the frame, and
* so we'd have a timeout function waiting ready to un-flash them. If the
* frame's going away, we can tell the timeout not to bother.
*
* \param frame The frame which is being destroyed
*/
void meta_bell_notify_frame_destroy (MetaFrame *frame);

View File

@@ -29,7 +29,6 @@
#include "boxes.h"
#include "util.h"
#include <X11/Xutil.h> /* Just for the definition of the various gravities */
#include <stdio.h> /* For snprintf */
char*
meta_rectangle_to_string (const MetaRectangle *rect,
@@ -61,7 +60,7 @@ meta_rectangle_region_to_string (GList *region,
char *cur = output;
if (region == NULL)
snprintf (output, 10, "(EMPTY)");
g_snprintf (output, 10, "(EMPTY)");
while (tmp)
{
@@ -114,7 +113,7 @@ meta_rectangle_edge_list_to_string (GList *edge_list,
GList *tmp = edge_list;
if (edge_list == NULL)
snprintf (output, 10, "(EMPTY)");
g_snprintf (output, 10, "(EMPTY)");
while (tmp)
{
@@ -198,6 +197,40 @@ meta_rectangle_equal (const MetaRectangle *src1,
(src1->height == src2->height));
}
void
meta_rectangle_union (const MetaRectangle *rect1,
const MetaRectangle *rect2,
MetaRectangle *dest)
{
int dest_x, dest_y;
int dest_w, dest_h;
dest_x = rect1->x;
dest_y = rect1->y;
dest_w = rect1->width;
dest_h = rect1->height;
if (rect2->x < dest_x)
{
dest_w += dest_x - rect2->x;
dest_x = rect2->x;
}
if (rect2->y < dest_y)
{
dest_h += dest_y - rect2->y;
dest_y = rect2->y;
}
if (rect2->x + rect2->width > dest_x + dest_w)
dest_w = rect2->x + rect2->width - dest_x;
if (rect2->y + rect2->height > dest_y + dest_h)
dest_h = rect2->y + rect2->height - dest_y;
dest->x = dest_x;
dest->y = dest_y;
dest->width = dest_w;
dest->height = dest_h;
}
gboolean
meta_rectangle_overlap (const MetaRectangle *rect1,
const MetaRectangle *rect2)

View File

@@ -91,7 +91,7 @@
typedef enum
{
PRIORITY_MINIMUM = 0, // Dummy value used for loop start = min(all priorities)
PRIORITY_MINIMUM = 0, /* Dummy value used for loop start = min(all priorities) */
PRIORITY_ASPECT_RATIO = 0,
PRIORITY_ENTIRELY_VISIBLE_ON_SINGLE_XINERAMA = 0,
PRIORITY_ENTIRELY_VISIBLE_ON_WORKAREA = 1,
@@ -101,7 +101,7 @@ typedef enum
PRIORITY_SIZE_HINTS_LIMITS = 3,
PRIORITY_TITLEBAR_VISIBLE = 4,
PRIORITY_PARTIALLY_VISIBLE_ON_WORKAREA = 4,
PRIORITY_MAXIMUM = 4 // Dummy value used for loop end = max(all priorities)
PRIORITY_MAXIMUM = 4 /* Dummy value used for loop end = max(all priorities) */
} ConstraintPriority;
typedef enum
@@ -392,7 +392,27 @@ setup_constraint_info (ConstraintInfo *info,
meta_window_get_work_area_for_xinerama (window,
xinerama_info->number,
&info->work_area_xinerama);
info->entire_xinerama = xinerama_info->rect;
if (!window->fullscreen || window->fullscreen_monitors[0] == -1)
{
info->entire_xinerama = xinerama_info->rect;
}
else
{
int i = 0;
long monitor;
monitor = window->fullscreen_monitors[i];
info->entire_xinerama =
window->screen->xinerama_infos[monitor].rect;
for (i = 1; i <= 3; i++)
{
monitor = window->fullscreen_monitors[i];
meta_rectangle_union (&info->entire_xinerama,
&window->screen->xinerama_infos[monitor].rect,
&info->entire_xinerama);
}
}
cur_workspace = window->screen->active_workspace;
info->usable_screen_region =
@@ -784,7 +804,9 @@ constrain_fullscreen (MetaWindow *window,
/* Determine whether constraint applies; exit if it doesn't */
if (!window->fullscreen)
return TRUE;
xinerama = info->entire_xinerama;
get_size_limits (window, info->fgeom, FALSE, &min_size, &max_size);
too_big = !meta_rectangle_could_fit_rect (&xinerama, &min_size);
too_small = !meta_rectangle_could_fit_rect (&max_size, &xinerama);
@@ -811,6 +833,7 @@ constrain_size_increments (MetaWindow *window,
int bh, hi, bw, wi, extra_height, extra_width;
int new_width, new_height;
gboolean constraint_already_satisfied;
MetaRectangle *start_rect;
if (priority > PRIORITY_SIZE_HINTS_INCREMENTS)
return TRUE;
@@ -852,8 +875,16 @@ constrain_size_increments (MetaWindow *window,
if (new_height < window->size_hints.min_height)
new_height += ((window->size_hints.min_height - new_height)/hi + 1)*hi;
/* Figure out what original rect to pass to meta_rectangle_resize_with_gravity
* See bug 448183
*/
if (info->action_type == ACTION_MOVE_AND_RESIZE)
start_rect = &info->current;
else
start_rect = &info->orig;
/* Resize to the new size */
meta_rectangle_resize_with_gravity (&info->orig,
meta_rectangle_resize_with_gravity (start_rect,
&info->current,
info->resize_gravity,
new_width,
@@ -870,6 +901,7 @@ constrain_size_limits (MetaWindow *window,
MetaRectangle min_size, max_size;
gboolean too_big, too_small, constraint_already_satisfied;
int new_width, new_height;
MetaRectangle *start_rect;
if (priority > PRIORITY_SIZE_HINTS_LIMITS)
return TRUE;
@@ -898,7 +930,16 @@ constrain_size_limits (MetaWindow *window,
/*** Enforce constraint ***/
new_width = CLAMP (info->current.width, min_size.width, max_size.width);
new_height = CLAMP (info->current.height, min_size.height, max_size.height);
meta_rectangle_resize_with_gravity (&info->orig,
/* Figure out what original rect to pass to meta_rectangle_resize_with_gravity
* See bug 448183
*/
if (info->action_type == ACTION_MOVE_AND_RESIZE)
start_rect = &info->current;
else
start_rect = &info->orig;
meta_rectangle_resize_with_gravity (start_rect,
&info->current,
info->resize_gravity,
new_width,
@@ -917,6 +958,7 @@ constrain_aspect_ratio (MetaWindow *window,
int fudge, new_width, new_height;
double best_width, best_height;
double alt_width, alt_height;
MetaRectangle *start_rect;
if (priority > PRIORITY_ASPECT_RATIO)
return TRUE;
@@ -1022,7 +1064,15 @@ constrain_aspect_ratio (MetaWindow *window,
break;
}
meta_rectangle_resize_with_gravity (&info->orig,
/* Figure out what original rect to pass to meta_rectangle_resize_with_gravity
* See bug 448183
*/
if (info->action_type == ACTION_MOVE_AND_RESIZE)
start_rect = &info->current;
else
start_rect = &info->orig;
meta_rectangle_resize_with_gravity (start_rect,
&info->current,
info->resize_gravity,
new_width,
@@ -1042,13 +1092,16 @@ do_screen_and_xinerama_relative_constraints (
MetaRectangle how_far_it_can_be_smushed, min_size, max_size;
#ifdef WITH_VERBOSE_MODE
/* First, log some debugging information */
char spanning_region[1 + 28 * g_list_length (region_spanning_rectangles)];
if (meta_is_verbose ())
{
/* First, log some debugging information */
char spanning_region[1 + 28 * g_list_length (region_spanning_rectangles)];
meta_topic (META_DEBUG_GEOMETRY,
"screen/xinerama constraint; region_spanning_rectangles: %s\n",
meta_rectangle_region_to_string (region_spanning_rectangles, ", ",
spanning_region));
meta_topic (META_DEBUG_GEOMETRY,
"screen/xinerama constraint; region_spanning_rectangles: %s\n",
meta_rectangle_region_to_string (region_spanning_rectangles, ", ",
spanning_region));
}
#endif
/* Determine whether constraint applies; exit if it doesn't */

View File

@@ -26,8 +26,8 @@
#define META_CONSTRAINTS_H
#include "util.h"
#include "window.h"
#include "frame.h"
#include "window-private.h"
#include "frame-private.h"
typedef enum
{

View File

@@ -25,7 +25,7 @@
#include <config.h>
#include "core.h"
#include "frame.h"
#include "frame-private.h"
#include "workspace.h"
#include "prefs.h"
@@ -328,6 +328,40 @@ meta_core_maximize (Display *xdisplay,
META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_VERTICAL);
}
void
meta_core_toggle_maximize_vertically (Display *xdisplay,
Window frame_xwindow)
{
MetaWindow *window = get_window (xdisplay, frame_xwindow);
if (meta_prefs_get_raise_on_click ())
meta_window_raise (window);
if (META_WINDOW_MAXIMIZED_VERTICALLY (window))
meta_window_unmaximize (window,
META_MAXIMIZE_VERTICAL);
else
meta_window_maximize (window,
META_MAXIMIZE_VERTICAL);
}
void
meta_core_toggle_maximize_horizontally (Display *xdisplay,
Window frame_xwindow)
{
MetaWindow *window = get_window (xdisplay, frame_xwindow);
if (meta_prefs_get_raise_on_click ())
meta_window_raise (window);
if (META_WINDOW_MAXIMIZED_HORIZONTALLY (window))
meta_window_unmaximize (window,
META_MAXIMIZE_HORIZONTAL);
else
meta_window_maximize (window,
META_MAXIMIZE_HORIZONTAL);
}
void
meta_core_toggle_maximize (Display *xdisplay,
Window frame_xwindow)
@@ -486,87 +520,87 @@ meta_core_get_menu_accelerator (MetaMenuOp menu_op,
switch (menu_op)
{
case META_MENU_OP_DELETE:
name = META_KEYBINDING_CLOSE;
name = "close";
break;
case META_MENU_OP_MINIMIZE:
name = META_KEYBINDING_MINIMIZE;
name = "minimize";
break;
case META_MENU_OP_UNMAXIMIZE:
name = META_KEYBINDING_UNMAXIMIZE;
name = "unmaximize";
break;
case META_MENU_OP_MAXIMIZE:
name = META_KEYBINDING_MAXIMIZE;
name = "maximize";
break;
case META_MENU_OP_UNSHADE:
case META_MENU_OP_SHADE:
name = META_KEYBINDING_TOGGLE_SHADE;
name = "toggle_shaded";
break;
case META_MENU_OP_UNSTICK:
case META_MENU_OP_STICK:
name = META_KEYBINDING_TOGGLE_STICKY;
name = "toggle_on_all_workspaces";
break;
case META_MENU_OP_ABOVE:
case META_MENU_OP_UNABOVE:
name = META_KEYBINDING_TOGGLE_ABOVE;
name = "toggle_above";
break;
case META_MENU_OP_WORKSPACES:
switch (workspace)
{
case 1:
name = META_KEYBINDING_MOVE_WORKSPACE_1;
name = "move_to_workspace_1";
break;
case 2:
name = META_KEYBINDING_MOVE_WORKSPACE_2;
name = "move_to_workspace_2";
break;
case 3:
name = META_KEYBINDING_MOVE_WORKSPACE_3;
name = "move_to_workspace_3";
break;
case 4:
name = META_KEYBINDING_MOVE_WORKSPACE_4;
name = "move_to_workspace_4";
break;
case 5:
name = META_KEYBINDING_MOVE_WORKSPACE_5;
name = "move_to_workspace_5";
break;
case 6:
name = META_KEYBINDING_MOVE_WORKSPACE_6;
name = "move_to_workspace_6";
break;
case 7:
name = META_KEYBINDING_MOVE_WORKSPACE_7;
name = "move_to_workspace_7";
break;
case 8:
name = META_KEYBINDING_MOVE_WORKSPACE_8;
name = "move_to_workspace_8";
break;
case 9:
name = META_KEYBINDING_MOVE_WORKSPACE_9;
name = "move_to_workspace_9";
break;
case 10:
name = META_KEYBINDING_MOVE_WORKSPACE_10;
name = "move_to_workspace_10";
break;
case 11:
name = META_KEYBINDING_MOVE_WORKSPACE_11;
name = "move_to_workspace_11";
break;
case 12:
name = META_KEYBINDING_MOVE_WORKSPACE_12;
name = "move_to_workspace_12";
break;
}
break;
case META_MENU_OP_MOVE:
name = META_KEYBINDING_BEGIN_MOVE;
name = "begin_move";
break;
case META_MENU_OP_RESIZE:
name = META_KEYBINDING_BEGIN_RESIZE;
name = "begin_resize";
break;
case META_MENU_OP_MOVE_LEFT:
name = META_KEYBINDING_MOVE_WORKSPACE_LEFT;
name = "move_to_workspace_left";
break;
case META_MENU_OP_MOVE_RIGHT:
name = META_KEYBINDING_MOVE_WORKSPACE_RIGHT;
name = "move_to_workspace_right";
break;
case META_MENU_OP_MOVE_UP:
name = META_KEYBINDING_MOVE_WORKSPACE_UP;
name = "move_to_workspace_up";
break;
case META_MENU_OP_MOVE_DOWN:
name = META_KEYBINDING_MOVE_WORKSPACE_DOWN;
name = "move_to_workspace_down";
break;
case META_MENU_OP_RECOVER:
/* No keybinding for this one */
@@ -718,28 +752,25 @@ meta_core_increment_event_serial (Display *xdisplay)
void
meta_invalidate_default_icons (void)
{
GSList *displays, *windows;
MetaDisplay *display = meta_get_display ();
GSList *windows;
GSList *l;
for (displays = meta_displays_list ();
displays != NULL;
displays = displays->next)
if (display == NULL)
return; /* We can validly be called before the display is opened. */
windows = meta_display_list_windows (display);
for (l = windows; l != NULL; l = l->next)
{
MetaWindow *window = (MetaWindow*)l->data;
for (windows = meta_display_list_windows (displays->data);
windows != NULL;
windows = windows->next)
if (window->icon_cache.origin == USING_FALLBACK_ICON)
{
MetaWindow *window = (MetaWindow*)windows->data;
if (window->icon_cache.origin == USING_FALLBACK_ICON)
{
meta_icon_cache_free (&(window->icon_cache));
meta_window_update_icon_now (window);
}
meta_icon_cache_free (&(window->icon_cache));
meta_window_update_icon_now (window);
}
g_slist_free (windows);
}
g_slist_free (windows);
}

View File

@@ -22,9 +22,12 @@
* 02111-1307, USA.
*/
#define _GNU_SOURCE
#define _SVID_SOURCE /* for gethostname() */
#include <config.h>
#include "util.h"
#include "window.h"
#include "window-private.h"
#include "errors.h"
#include "workspace.h"
@@ -144,7 +147,8 @@ search_and_destroy_window (int pid,
* kill the window.
*/
GSList *tmp;
gboolean found;
gboolean found = FALSE;
GSList *windows;
if (xwindow == None)
{
@@ -153,39 +157,31 @@ search_and_destroy_window (int pid,
return;
}
found = FALSE;
tmp = meta_displays_list ();
windows = meta_display_list_windows (meta_get_display ());
tmp = windows;
while (tmp != NULL)
{
GSList *windows = meta_display_list_windows (tmp->data);
GSList *tmp2;
MetaWindow *w = tmp->data;
tmp2 = windows;
while (tmp2 != NULL)
if (w->dialog_pid == pid)
{
MetaWindow *w = tmp2->data;
if (w->dialog_pid == pid)
if (w->xwindow != xwindow)
meta_topic (META_DEBUG_PING,
"Dialog pid matches but not xwindow (0x%lx vs. 0x%lx)\n",
w->xwindow, xwindow);
else
{
if (w->xwindow != xwindow)
meta_topic (META_DEBUG_PING,
"Dialog pid matches but not xwindow (0x%lx vs. 0x%lx)\n",
w->xwindow, xwindow);
else
{
meta_window_kill (w);
found = TRUE;
}
meta_window_kill (w);
found = TRUE;
}
tmp2 = tmp2->next;
}
g_slist_free (windows);
tmp = tmp->next;
}
g_slist_free (windows);
if (!found)
meta_topic (META_DEBUG_PING,
"Did not find a window with dialog pid %d xwindow 0x%lx\n",
@@ -199,40 +195,30 @@ release_window_with_fd (int fd)
* double check that it matches "xwindow", then
* kill the window.
*/
GSList *tmp;
gboolean found;
found = FALSE;
gboolean found = FALSE;
tmp = meta_displays_list ();
GSList *windows = meta_display_list_windows (meta_get_display ());
GSList *tmp = windows;
while (tmp != NULL)
{
GSList *windows = meta_display_list_windows (tmp->data);
GSList *tmp2;
MetaWindow *w = tmp->data;
tmp2 = windows;
while (tmp2 != NULL)
if (w->dialog_pid >= 0 &&
w->dialog_pipe == fd)
{
MetaWindow *w = tmp2->data;
if (w->dialog_pid >= 0 &&
w->dialog_pipe == fd)
{
meta_topic (META_DEBUG_PING,
"Removing dialog with fd %d pid %d from window %s\n",
fd, w->dialog_pid, w->desc);
meta_window_free_delete_dialog (w);
found = TRUE;
}
tmp2 = tmp2->next;
meta_topic (META_DEBUG_PING,
"Removing dialog with fd %d pid %d from window %s\n",
fd, w->dialog_pid, w->desc);
meta_window_free_delete_dialog (w);
found = TRUE;
}
g_slist_free (windows);
tmp = tmp->next;
}
g_slist_free (windows);
if (!found)
meta_topic (META_DEBUG_PING,
"Did not find a window with a dialog pipe %d\n",
@@ -251,7 +237,7 @@ io_from_ping_dialog (GIOChannel *channel,
if (condition & G_IO_IN)
{
char *str;
unsigned int len;
gsize len;
GError *err;
/* Go ahead and block for all data from child */
@@ -270,8 +256,8 @@ io_from_ping_dialog (GIOChannel *channel,
}
meta_topic (META_DEBUG_PING,
"Read %d bytes strlen %d \"%s\" from child\n",
len, str ? strlen (str) : 0, str ? str : "NULL");
"Read %" G_GSIZE_FORMAT " bytes strlen %d \"%s\" from child\n",
len, str ? (int) strlen (str) : 0, str ? str : "NULL");
if (len > 0)
{
@@ -379,7 +365,7 @@ meta_window_delete (MetaWindow *window,
"Deleting %s with delete_window request\n",
window->desc);
meta_window_send_icccm_message (window,
window->display->atom_wm_delete_window,
window->display->atom_WM_DELETE_WINDOW,
timestamp);
}
else
@@ -505,7 +491,7 @@ meta_window_present_delete_dialog (MetaWindow *window, guint32 timestamp)
if (w->xtransient_for == window->xwindow &&
w->res_class &&
g_strcasecmp (w->res_class, "metacity-dialog") == 0)
g_ascii_strcasecmp (w->res_class, "metacity-dialog") == 0)
{
meta_window_activate (w, timestamp);
break;

View File

@@ -24,8 +24,8 @@
* 02111-1307, USA.
*/
#ifndef META_DISPLAY_H
#define META_DISPLAY_H
#ifndef META_DISPLAY_PRIVATE_H
#define META_DISPLAY_PRIVATE_H
#ifndef PACKAGE
#error "config.h not included"
@@ -36,6 +36,7 @@
#include "eventqueue.h"
#include "common.h"
#include "boxes.h"
#include "display.h"
#ifdef HAVE_STARTUP_NOTIFICATION
#include <libsn/sn.h>
@@ -45,16 +46,9 @@
#include <X11/extensions/sync.h>
#endif
#define meta_XFree(p) do { if ((p)) XFree ((p)); } while (0)
typedef struct MetaCompositor MetaCompositor;
typedef struct _MetaDisplay MetaDisplay;
typedef struct _MetaFrame MetaFrame;
typedef struct _MetaKeyBinding MetaKeyBinding;
typedef struct _MetaScreen MetaScreen;
typedef struct _MetaStack MetaStack;
typedef struct _MetaUISlave MetaUISlave;
typedef struct _MetaWindow MetaWindow;
typedef struct _MetaWorkspace MetaWorkspace;
typedef struct _MetaWindowPropHooks MetaWindowPropHooks;
@@ -87,103 +81,12 @@ struct _MetaDisplay
Window leader_window;
Window timestamp_pinging_window;
Atom atom_net_wm_name;
Atom atom_wm_protocols;
Atom atom_wm_take_focus;
Atom atom_wm_delete_window;
Atom atom_wm_state;
Atom atom_net_close_window;
Atom atom_net_wm_state;
Atom atom_motif_wm_hints;
Atom atom_net_wm_state_shaded;
Atom atom_net_wm_state_maximized_horz;
Atom atom_net_wm_state_maximized_vert;
Atom atom_net_wm_desktop;
Atom atom_net_number_of_desktops;
Atom atom_wm_change_state;
Atom atom_sm_client_id;
Atom atom_wm_client_leader;
Atom atom_wm_window_role;
Atom atom_net_current_desktop;
Atom atom_net_supporting_wm_check;
Atom atom_net_supported;
Atom atom_net_wm_window_type;
Atom atom_net_wm_window_type_desktop;
Atom atom_net_wm_window_type_dock;
Atom atom_net_wm_window_type_toolbar;
Atom atom_net_wm_window_type_menu;
Atom atom_net_wm_window_type_dialog;
Atom atom_net_wm_window_type_normal;
Atom atom_net_wm_state_modal;
Atom atom_net_client_list;
Atom atom_net_client_list_stacking;
Atom atom_net_wm_state_skip_taskbar;
Atom atom_net_wm_state_skip_pager;
Atom atom_net_wm_icon_name;
Atom atom_net_wm_icon;
Atom atom_net_wm_icon_geometry;
Atom atom_utf8_string;
Atom atom_wm_icon_size;
Atom atom_kwm_win_icon;
Atom atom_net_wm_moveresize;
Atom atom_net_active_window;
Atom atom_metacity_restart_message;
Atom atom_net_wm_strut;
Atom atom_metacity_reload_theme_message;
Atom atom_metacity_set_keybindings_message;
Atom atom_net_wm_state_hidden;
Atom atom_net_wm_window_type_utility;
Atom atom_net_wm_window_type_splash;
Atom atom_net_wm_ping;
Atom atom_net_wm_pid;
Atom atom_wm_client_machine;
Atom atom_net_wm_state_fullscreen;
Atom atom_net_workarea;
Atom atom_net_showing_desktop;
Atom atom_net_desktop_layout;
Atom atom_manager;
Atom atom_targets;
Atom atom_multiple;
Atom atom_timestamp;
Atom atom_version;
Atom atom_atom_pair;
Atom atom_net_desktop_names;
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;
Atom atom_net_wm_action_maximize_vert;
Atom atom_net_wm_action_change_desktop;
Atom atom_net_wm_action_close;
Atom atom_net_wm_action_above;
Atom atom_net_wm_action_below;
Atom atom_net_wm_state_above;
Atom atom_net_wm_state_below;
Atom atom_net_startup_id;
Atom atom_metacity_toggle_verbose;
Atom atom_net_wm_sync_request;
Atom atom_net_wm_sync_request_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;
Atom atom_net_wm_user_time;
Atom atom_net_wm_state_demands_attention;
Atom atom_net_restack_window;
Atom atom_net_moveresize_window;
Atom atom_net_desktop_geometry;
Atom atom_net_desktop_viewport;
Atom atom_metacity_version;
Atom atom_net_wm_visible_name;
Atom atom_net_wm_visible_icon_name;
Atom atom_net_wm_user_time_window;
/* Pull in all the names of atoms as fields; we will intern them when the
* class is constructed.
*/
#define item(x) Atom atom_##x;
#include "atomnames.h"
#undef item
/* This is the actual window from focus events,
* not the one we last set
@@ -298,10 +201,8 @@ struct _MetaDisplay
int grab_resize_timeout_id;
/* Keybindings stuff */
MetaKeyBinding *screen_bindings;
int n_screen_bindings;
MetaKeyBinding *window_bindings;
int n_window_bindings;
MetaKeyBinding *key_bindings;
int n_key_bindings;
int min_keycode;
int max_keycode;
KeySym *keymap;
@@ -354,6 +255,16 @@ struct _MetaDisplay
int render_event_base;
int render_error_base;
#endif
#ifdef HAVE_COMPOSITE_EXTENSIONS
int composite_event_base;
int composite_error_base;
int composite_major_version;
int composite_minor_version;
int damage_event_base;
int damage_error_base;
int xfixes_event_base;
int xfixes_error_base;
#endif
#ifdef HAVE_XSYNC
unsigned int have_xsync : 1;
#define META_DISPLAY_HAS_XSYNC(display) ((display)->have_xsync)
@@ -372,6 +283,18 @@ struct _MetaDisplay
#else
#define META_DISPLAY_HAS_RENDER(display) FALSE
#endif
#ifdef HAVE_COMPOSITE_EXTENSIONS
unsigned int have_composite : 1;
unsigned int have_damage : 1;
unsigned int have_xfixes : 1;
#define META_DISPLAY_HAS_COMPOSITE(display) ((display)->have_composite)
#define META_DISPLAY_HAS_DAMAGE(display) ((display)->have_damage)
#define META_DISPLAY_HAS_XFIXES(display) ((display)->have_xfixes)
#else
#define META_DISPLAY_HAS_COMPOSITE(display) FALSE
#define META_DISPLAY_HAS_DAMAGE(display) FALSE
#define META_DISPLAY_HAS_XFIXES(display) FALSE
#endif
};
/* Xserver time can wraparound, thus comparing two timestamps needs to take
@@ -399,8 +322,6 @@ struct _MetaDisplay
gboolean meta_display_open (void);
void meta_display_close (MetaDisplay *display,
guint32 timestamp);
MetaScreen* meta_display_screen_for_root (MetaDisplay *display,
Window xroot);
MetaScreen* meta_display_screen_for_x_screen (MetaDisplay *display,
Screen *screen);
MetaScreen* meta_display_screen_for_xwindow (MetaDisplay *display,
@@ -437,7 +358,7 @@ gboolean meta_display_xwindow_is_a_no_focus_window (MetaDisplay *display,
GSList* meta_display_list_windows (MetaDisplay *display);
MetaDisplay* meta_display_for_x_display (Display *xdisplay);
GSList* meta_displays_list (void);
MetaDisplay* meta_get_display (void);
Cursor meta_display_create_x_cursor (MetaDisplay *display,
MetaCursor cursor);

File diff suppressed because it is too large Load Diff

View File

@@ -21,9 +21,10 @@
* 02111-1307, USA.
*/
#include <config.h>
#include "edge-resistance.h"
#include "boxes.h"
#include "display.h"
#include "display-private.h"
#include "workspace.h"
/* A simple macro for whether a given window's edges are potentially
@@ -1091,6 +1092,7 @@ meta_display_compute_resistance_and_snapping_edges (MetaDisplay *display)
/*
* 4th: Free the extra memory not needed and sort the list
*/
g_list_free (stacked_windows);
/* Free the memory used by the obscuring windows/docks lists */
g_slist_free (window_stacking);
/* FIXME: Shouldn't there be a helper function to make this one line of code

View File

@@ -24,7 +24,7 @@
#ifndef META_EDGE_RESISTANCE_H
#define META_EDGE_RESISTANCE_H
#include "window.h"
#include "window-private.h"
void meta_window_edge_resistance_for_move (MetaWindow *window,
int old_x,

View File

@@ -1,6 +1,40 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Metacity animation effects */
/**
* \file effects.c "Special effects" other than compositor effects.
*
* Before we had a serious compositor, we supported swooping
* rectangles for minimising and so on. These are still supported
* today, even when the compositor is enabled. The file contains two
* parts:
*
* 1) A set of functions, each of which implements a special effect.
* (Only the minimize function does anything interesting; we should
* probably get rid of the rest.)
*
* 2) A set of functions for moving a highlighted wireframe box around
* the screen, optionally with height and width shown in the middle.
* This is used for moving and resizing when reduced_resources is set.
*
* There was formerly a system which allowed callers to drop in their
* own handlers for various things; it was never used (people who want
* their own handlers can just modify this file, after all) and it added
* a good deal of extra complexity, so it has been removed. If you want it,
* it can be found in svn r3769.
*
* Once upon a time there were three different ways of drawing the box
* animation: window wireframe, window opaque, and root. People who had
* the shape extension theoretically had the choice of all three, and
* people who didn't weren't given the choice of the wireframe option.
* In practice, though, the opaque animation was never perfect, so it came
* down to the wireframe option for those who had the extension and
* the root option for those who didn't; there was actually no way of choosing
* any other option anyway. Work on the opaque animation stopped in 2002;
* anyone who wants something like that these days will be using the
* compositor anyway.
*
* In svn r3769 this was made explicit.
*/
/*
* Copyright (C) 2001 Anders Carlsson, Havoc Pennington
@@ -23,23 +57,22 @@
#include <config.h>
#include "effects.h"
#include "display.h"
#include "display-private.h"
#include "ui.h"
#include "window.h"
#include "window-private.h"
#include "prefs.h"
#ifdef HAVE_SHAPE
#include <X11/extensions/shape.h>
#endif
#define META_MINIMIZE_ANIMATION_LENGTH 0.25
#define META_SHADE_ANIMATION_LENGTH 0.2
#include <string.h>
typedef enum
{
META_ANIMATION_DRAW_ROOT,
META_ANIMATION_WINDOW_WIREFRAME,
META_ANIMATION_WINDOW_OPAQUE
} MetaAnimationStyle;
typedef struct MetaEffect MetaEffect;
typedef struct MetaEffectPriv MetaEffectPriv;
typedef struct
{
@@ -48,65 +81,85 @@ typedef struct
double millisecs_duration;
GTimeVal start_time;
#ifdef HAVE_SHAPE
/** For wireframe window */
Window wireframe_xwindow;
#else
/** Rectangle to erase */
MetaRectangle last_rect;
/** First time we've plotted anything in this animation? */
gboolean first_time;
/** For wireframe drawn on root window */
GC gc;
#endif
MetaRectangle start_rect;
MetaRectangle end_rect;
/* rect to erase */
MetaRectangle last_rect;
/* used instead of the global flag, since
* we don't want to change midstream.
*/
MetaAnimationStyle style;
/* For wireframe drawn on root window */
GC gc;
/* For wireframe window */
Window wireframe_xwindow;
/* For opaque */
MetaImageWindow *image_window;
GdkPixbuf *orig_pixbuf;
MetaBoxAnimType anim_type;
} BoxAnimationContext;
/**
* Information we need to know during a maximise or minimise effect.
*/
typedef struct
{
/** This is the normal-size window. */
MetaRectangle window_rect;
/** This is the size of the window when it's an icon. */
MetaRectangle icon_rect;
} MetaMinimizeEffect, MetaUnminimizeEffect;
struct MetaEffectPriv
{
MetaEffectFinished finished;
gpointer finished_data;
gpointer finished_data;
};
struct MetaEffect
{
/** The window the effect is applied to. */
MetaWindow *window;
/** Which effect is happening here. */
MetaEffectType type;
/** The effect handler can hang data here. */
gpointer info;
union
{
MetaMinimizeEffect minimize;
/* ... and theoretically anything else */
} u;
MetaEffectPriv *priv;
};
static void run_default_effect_handler (MetaEffect *effect);
static void run_handler (MetaEffect *effect);
static MetaEffectHandler effect_handler;
static gpointer effect_handler_data;
void
meta_push_effect_handler (MetaEffectHandler handler,
gpointer data)
{
effect_handler = handler;
effect_handler_data = data;
}
void
meta_pop_effect_handler (void)
{
/* FIXME: not implemented yet */
g_assert_not_reached ();
}
static void effect_free (MetaEffect *effect);
static MetaEffect *
create_effect (MetaEffectType type,
MetaWindow *window,
MetaEffectFinished finished,
gpointer finished_data)
MetaWindow *window,
MetaEffectFinished finished,
gpointer finished_data);
static void
draw_box_animation (MetaScreen *screen,
MetaRectangle *initial_rect,
MetaRectangle *destination_rect,
double seconds_duration);
/**
* Creates an effect.
*
*/
static MetaEffect*
create_effect (MetaEffectType type,
MetaWindow *window,
MetaEffectFinished finished,
gpointer finished_data)
{
MetaEffect *effect = g_new (MetaEffect, 1);
@@ -119,14 +172,20 @@ create_effect (MetaEffectType type,
return effect;
}
void
meta_effect_end (MetaEffect *effect)
/**
* Destroys an effect. If the effect has a "finished" hook, it will be
* called before cleanup.
*
* \param effect The effect.
*/
static void
effect_free (MetaEffect *effect)
{
if (effect->priv->finished)
effect->priv->finished (effect, effect->priv->finished_data);
if (effect->priv->finished)
effect->priv->finished (effect->priv->finished_data);
g_free (effect->priv);
g_free (effect);
g_free (effect->priv);
g_free (effect);
}
void
@@ -145,10 +204,10 @@ meta_effect_run_focus (MetaWindow *window,
void
meta_effect_run_minimize (MetaWindow *window,
MetaRectangle *window_rect,
MetaRectangle *icon_rect,
MetaEffectFinished finished,
gpointer data)
MetaRectangle *window_rect,
MetaRectangle *icon_rect,
MetaEffectFinished finished,
gpointer data)
{
MetaEffect *effect;
@@ -165,10 +224,10 @@ meta_effect_run_minimize (MetaWindow *window,
void
meta_effect_run_unminimize (MetaWindow *window,
MetaRectangle *window_rect,
MetaRectangle *icon_rect,
MetaEffectFinished finished,
gpointer data)
MetaRectangle *window_rect,
MetaRectangle *icon_rect,
MetaEffectFinished finished,
gpointer data)
{
MetaEffect *effect;
@@ -193,7 +252,7 @@ meta_effect_run_close (MetaWindow *window,
g_return_if_fail (window != NULL);
effect = create_effect (META_EFFECT_CLOSE, window,
finished, data);
finished, data);
run_handler (effect);
}
@@ -201,6 +260,7 @@ meta_effect_run_close (MetaWindow *window,
/* old ugly minimization effect */
#ifdef HAVE_SHAPE
static void
update_wireframe_window (MetaDisplay *display,
Window xwindow,
@@ -211,8 +271,6 @@ update_wireframe_window (MetaDisplay *display,
rect->x, rect->y,
rect->width, rect->height);
#ifdef HAVE_SHAPE
#define OUTLINE_WIDTH 3
if (rect->width > OUTLINE_WIDTH * 2 &&
@@ -253,21 +311,22 @@ update_wireframe_window (MetaDisplay *display,
XShapeCombineMask (display->xdisplay, xwindow,
ShapeBounding, 0, 0, None, ShapeSet);
}
#endif
}
#endif
/**
* A hack to force the X server to synchronize with the
* graphics hardware.
*/
static void
graphics_sync (BoxAnimationContext *context)
{
XImage *image;
/* A hack to force the X server to synchronize with the
* graphics hardware
*/
image = XGetImage (context->screen->display->xdisplay,
context->screen->xroot,
0, 0, 1, 1,
AllPlanes, ZPixmap);
context->screen->xroot,
0, 0, 1, 1,
AllPlanes, ZPixmap);
XDestroyImage (image);
}
@@ -280,20 +339,20 @@ effects_draw_box_animation_timeout (BoxAnimationContext *context)
MetaRectangle draw_rect;
double fraction;
#ifndef HAVE_SHAPE
if (!context->first_time)
{
if (context->style == META_ANIMATION_DRAW_ROOT)
{
/* Restore the previously drawn background */
XDrawRectangle (context->screen->display->xdisplay,
context->screen->xroot,
context->gc,
context->last_rect.x, context->last_rect.y,
context->last_rect.width, context->last_rect.height);
}
/* Restore the previously drawn background */
XDrawRectangle (context->screen->display->xdisplay,
context->screen->xroot,
context->gc,
context->last_rect.x, context->last_rect.y,
context->last_rect.width, context->last_rect.height);
}
else
context->first_time = FALSE;
context->first_time = FALSE;
#endif /* !HAVE_SHAPE */
g_get_current_time (&current_time);
@@ -312,23 +371,15 @@ effects_draw_box_animation_timeout (BoxAnimationContext *context)
if (elapsed > context->millisecs_duration)
{
/* All done */
if (context->style == META_ANIMATION_WINDOW_OPAQUE)
{
g_object_unref (G_OBJECT (context->orig_pixbuf));
meta_image_window_free (context->image_window);
}
else if (context->style == META_ANIMATION_DRAW_ROOT)
{
meta_display_ungrab (context->screen->display);
meta_ui_pop_delay_exposes (context->screen->ui);
XFreeGC (context->screen->display->xdisplay,
context->gc);
}
else if (context->style == META_ANIMATION_WINDOW_WIREFRAME)
{
XDestroyWindow (context->screen->display->xdisplay,
#ifdef HAVE_SHAPE
XDestroyWindow (context->screen->display->xdisplay,
context->wireframe_xwindow);
}
#else
meta_display_ungrab (context->screen->display);
meta_ui_pop_delay_exposes (context->screen->ui);
XFreeGC (context->screen->display->xdisplay,
context->gc);
#endif /* !HAVE_SHAPE */
graphics_sync (context);
@@ -352,195 +403,99 @@ effects_draw_box_animation_timeout (BoxAnimationContext *context)
draw_rect.width = 1;
if (draw_rect.height < 1)
draw_rect.height = 1;
#ifdef HAVE_SHAPE
update_wireframe_window (context->screen->display,
context->wireframe_xwindow,
&draw_rect);
#else
context->last_rect = draw_rect;
if (context->style == META_ANIMATION_WINDOW_OPAQUE)
{
GdkPixbuf *scaled;
scaled = NULL;
switch (context->anim_type)
{
case META_BOX_ANIM_SCALE:
scaled = gdk_pixbuf_scale_simple (context->orig_pixbuf,
draw_rect.width,
draw_rect.height,
GDK_INTERP_BILINEAR);
break;
case META_BOX_ANIM_SLIDE_UP:
{
int x, y;
x = context->start_rect.width - draw_rect.width;
y = context->start_rect.height - draw_rect.height;
/* paranoia */
if (x < 0)
x = 0;
if (y < 0)
y = 0;
scaled = gdk_pixbuf_new_subpixbuf (context->orig_pixbuf,
x, y,
draw_rect.width,
draw_rect.height);
}
break;
}
/* handle out-of-memory */
if (scaled != NULL)
{
meta_image_window_set (context->image_window,
scaled,
draw_rect.x, draw_rect.y);
g_object_unref (G_OBJECT (scaled));
}
}
else if (context->style == META_ANIMATION_DRAW_ROOT)
{
/* Draw the rectangle */
XDrawRectangle (context->screen->display->xdisplay,
context->screen->xroot,
context->gc,
draw_rect.x, draw_rect.y,
draw_rect.width, draw_rect.height);
}
else if (context->style == META_ANIMATION_WINDOW_WIREFRAME)
{
update_wireframe_window (context->screen->display,
context->wireframe_xwindow,
&draw_rect);
}
/* Draw the rectangle */
XDrawRectangle (context->screen->display->xdisplay,
context->screen->xroot,
context->gc,
draw_rect.x, draw_rect.y,
draw_rect.width, draw_rect.height);
#endif /* !HAVE_SHAPE */
/* kick changes onto the server */
graphics_sync (context);
return TRUE;
}
/* I really don't want this to be a configuration option, but I think
* the wireframe is sucky from a UI standpoint (more confusing than
* opaque), but the opaque is definitely still too slow on some
* systems, and also doesn't look quite right due to the mapping
* and unmapping of windows that's going on.
*/
static MetaAnimationStyle animation_style = META_ANIMATION_WINDOW_WIREFRAME;
void
meta_effects_draw_box_animation (MetaScreen *screen,
MetaRectangle *initial_rect,
MetaRectangle *destination_rect,
double seconds_duration,
MetaBoxAnimType anim_type)
draw_box_animation (MetaScreen *screen,
MetaRectangle *initial_rect,
MetaRectangle *destination_rect,
double seconds_duration)
{
BoxAnimationContext *context;
#ifdef HAVE_SHAPE
XSetWindowAttributes attrs;
#else
XGCValues gc_values;
#endif
g_return_if_fail (seconds_duration > 0.0);
if (g_getenv ("METACITY_DEBUG_EFFECTS"))
seconds_duration *= 10; /* slow things down */
/* Create the animation context */
context = g_new0 (BoxAnimationContext, 1);
context = g_new0 (BoxAnimationContext, 1);
context->screen = screen;
context->millisecs_duration = seconds_duration * 1000.0;
context->first_time = TRUE;
context->start_rect = *initial_rect;
context->end_rect = *destination_rect;
context->anim_type = anim_type;
context->style = animation_style;
#ifdef HAVE_SHAPE
#ifndef HAVE_SHAPE
if (context->style == META_ANIMATION_WINDOW_WIREFRAME)
context->style = META_ANIMATION_DRAW_ROOT;
attrs.override_redirect = True;
attrs.background_pixel = BlackPixel (screen->display->xdisplay,
screen->number);
context->wireframe_xwindow = XCreateWindow (screen->display->xdisplay,
screen->xroot,
initial_rect->x,
initial_rect->y,
initial_rect->width,
initial_rect->height,
0,
CopyFromParent,
CopyFromParent,
(Visual *)CopyFromParent,
CWOverrideRedirect | CWBackPixel,
&attrs);
update_wireframe_window (screen->display,
context->wireframe_xwindow,
initial_rect);
XMapWindow (screen->display->xdisplay,
context->wireframe_xwindow);
#else /* !HAVE_SHAPE */
context->first_time = TRUE;
gc_values.subwindow_mode = IncludeInferiors;
gc_values.function = GXinvert;
context->gc = XCreateGC (screen->display->xdisplay,
screen->xroot,
GCSubwindowMode | GCFunction,
&gc_values);
/* Grab the X server to avoid screen dirt */
meta_display_grab (context->screen->display);
meta_ui_push_delay_exposes (context->screen->ui);
#endif
if (context->style == META_ANIMATION_WINDOW_OPAQUE)
{
GdkPixbuf *pix;
pix = meta_gdk_pixbuf_get_from_window (NULL,
screen->xroot,
initial_rect->x,
initial_rect->y,
0, 0,
initial_rect->width,
initial_rect->height);
if (pix == NULL)
{
/* Fall back to wireframe */
context->style = META_ANIMATION_WINDOW_WIREFRAME;
}
else
{
context->image_window = meta_image_window_new (screen->display->xdisplay,
screen->number,
initial_rect->width,
initial_rect->height);
context->orig_pixbuf = pix;
meta_image_window_set (context->image_window,
context->orig_pixbuf,
initial_rect->x,
initial_rect->y);
meta_image_window_set_showing (context->image_window, TRUE);
}
}
/* Not an else, so that fallback works */
if (context->style == META_ANIMATION_WINDOW_WIREFRAME)
{
XSetWindowAttributes attrs;
attrs.override_redirect = True;
attrs.background_pixel = BlackPixel (screen->display->xdisplay,
screen->number);
context->wireframe_xwindow = XCreateWindow (screen->display->xdisplay,
screen->xroot,
initial_rect->x,
initial_rect->y,
initial_rect->width,
initial_rect->height,
0,
CopyFromParent,
CopyFromParent,
(Visual *)CopyFromParent,
CWOverrideRedirect | CWBackPixel,
&attrs);
update_wireframe_window (screen->display,
context->wireframe_xwindow,
initial_rect);
XMapWindow (screen->display->xdisplay,
context->wireframe_xwindow);
}
if (context->style == META_ANIMATION_DRAW_ROOT)
{
XGCValues gc_values;
gc_values.subwindow_mode = IncludeInferiors;
gc_values.function = GXinvert;
context->gc = XCreateGC (screen->display->xdisplay,
screen->xroot,
GCSubwindowMode | GCFunction,
&gc_values);
/* Grab the X server to avoid screen dirt */
meta_display_grab (context->screen->display);
meta_ui_push_delay_exposes (context->screen->ui);
}
/* Do this only after we get the pixbuf from the server,
* so that the animation doesn't get truncated.
@@ -759,28 +714,22 @@ run_default_effect_handler (MetaEffect *effect)
switch (effect->type)
{
case META_EFFECT_MINIMIZE:
meta_effects_draw_box_animation (effect->window->screen,
&(effect->u.minimize.window_rect),
&(effect->u.minimize.icon_rect),
META_MINIMIZE_ANIMATION_LENGTH,
META_BOX_ANIM_SCALE);
break;
draw_box_animation (effect->window->screen,
&(effect->u.minimize.window_rect),
&(effect->u.minimize.icon_rect),
META_MINIMIZE_ANIMATION_LENGTH);
break;
default:
break;
break;
}
}
static void
run_handler (MetaEffect *effect)
{
if (effect_handler)
{
effect_handler (effect, effect_handler_data);
}
else
{
run_default_effect_handler (effect);
meta_effect_end (effect);
}
if (meta_prefs_get_gnome_animations ())
run_default_effect_handler (effect);
effect_free (effect);
}

170
src/core/effects.h Normal file
View File

@@ -0,0 +1,170 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/**
* \file effects.h "Special effects" other than compositor effects.
*
* Before we had a serious compositor, we supported swooping
* rectangles for minimising and so on. These are still supported
* today, even when the compositor is enabled. The file contains two
* parts:
*
* 1) A set of functions, each of which implements a special effect.
* (Only the minimize function does anything interesting; we should
* probably get rid of the rest.)
*
* 2) A set of functions for moving a highlighted wireframe box around
* the screen, optionally with height and width shown in the middle.
* This is used for moving and resizing when reduced_resources is set.
*
* There was formerly a system which allowed callers to drop in their
* own handlers for various things; it was never used (people who want
* their own handlers can just modify this file, after all) and it added
* a good deal of extra complexity, so it has been removed. If you want it,
* it can be found in svn r3769.
*/
/*
* Copyright (C) 2001 Anders Carlsson, Havoc Pennington
*
* 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_EFFECTS_H
#define META_EFFECTS_H
#include "util.h"
#include "screen-private.h"
typedef enum
{
META_EFFECT_MINIMIZE,
META_EFFECT_UNMINIMIZE,
META_EFFECT_FOCUS,
META_EFFECT_CLOSE,
META_NUM_EFFECTS
} MetaEffectType;
/**
* A callback which will be called when the effect has finished.
*/
typedef void (* MetaEffectFinished) (gpointer data);
/**
* Performs the minimize effect.
*
* \param window The window we're moving
* \param window_rect Its current state
* \param target Where it should end up
* \param finished Callback for when it's finished
* \param data Data for callback
*/
void meta_effect_run_minimize (MetaWindow *window,
MetaRectangle *window_rect,
MetaRectangle *target,
MetaEffectFinished finished,
gpointer data);
/**
* Performs the unminimize effect. There is no such effect.
* FIXME: delete this.
*
* \param window The window we're moving
* \param icon_rect Its current state
* \param window_rect Where it should end up
* \param finished Callback for when it's finished
* \param data Data for callback
*/
void meta_effect_run_unminimize (MetaWindow *window,
MetaRectangle *window_rect,
MetaRectangle *icon_rect,
MetaEffectFinished finished,
gpointer data);
/**
* Performs the close effect. There is no such effect.
* FIXME: delete this.
*
* \param window The window we're moving
* \param finished Callback for when it's finished
* \param data Data for callback
*/
void meta_effect_run_close (MetaWindow *window,
MetaEffectFinished finished,
gpointer data);
/**
* Performs the focus effect. There is no such effect.
* FIXME: delete this.
*
* \param window The window we're moving
* \param finished Callback for when it's finished
* \param data Data for callback
*/
void meta_effect_run_focus (MetaWindow *window,
MetaEffectFinished finished,
gpointer data);
/**
* Grabs the server and paints a wireframe rectangle on the screen.
* Since this involves starting a grab, please be considerate of other
* users and don't keep the grab for long. You may move the wireframe
* around using meta_effects_update_wireframe() and remove it, and undo
* the grab, using meta_effects_end_wireframe().
*
* \param screen The screen to draw the rectangle on.
* \param rect The size of the rectangle to draw.
* \param width The width to display in the middle (or 0 not to)
* \param height The width to display in the middle (or 0 not to)
*/
void meta_effects_begin_wireframe (MetaScreen *screen,
const MetaRectangle *rect,
int width,
int height);
/**
* Moves a wireframe rectangle around after its creation by
* meta_effects_begin_wireframe(). (Perhaps we ought to remember the old
* positions and not require people to pass them in?)
*
* \param old_rect Where the rectangle is now
* \param old_width The width that was displayed on it (or 0 if there wasn't)
* \param old_height The height that was displayed on it (or 0 if there wasn't)
* \param new_rect Where the rectangle is going
* \param new_width The width that will be displayed on it (or 0 not to)
* \param new_height The height that will be displayed on it (or 0 not to)
*/
void meta_effects_update_wireframe (MetaScreen *screen,
const MetaRectangle *old_rect,
int old_width,
int old_height,
const MetaRectangle *new_rect,
int new_width,
int new_height);
/**
* Removes a wireframe rectangle from the screen and ends the grab started by
* meta_effects_begin_wireframe().
*
* \param old_rect Where the rectangle is now
* \param old_width The width that was displayed on it (or 0 if there wasn't)
* \param old_height The height that was displayed on it (or 0 if there wasn't)
*/
void meta_effects_end_wireframe (MetaScreen *screen,
const MetaRectangle *old_rect,
int width,
int height);
#endif /* META_EFFECTS_H */

View File

@@ -24,6 +24,7 @@
#include <config.h>
#include "errors.h"
#include "display-private.h"
#include <errno.h>
#include <stdlib.h>
#include <gdk/gdk.h>

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