Compare commits

...

160 Commits

Author SHA1 Message Date
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
153 changed files with 54464 additions and 41547 deletions

601
ChangeLog
View File

@@ -1,3 +1,604 @@
2008-04-27 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.23.13 release.
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.
2008-04-22 Carlos Garnacho <carlos@imendio.com>
* src/core/compositor.c (process_property_notify,
find_window_in_display): Propagate opacity to frame window.
2008-04-22 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.23.13.
2008-04-22 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.23.8 release.
2008-04-22 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.21.8.
(Which was seriously belated. Sorry, folks.)
2008-04-22 Thomas Thurman <tthurman@gnome.org>
* src/core/effects.c: a few comments
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.
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)
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.
2008-04-06 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.23.5 release.
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)
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.)
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.
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)
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.
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
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.
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.
2008-03-21 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.23.5.
2008-03-21 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.23.3 release.
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.
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.
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.
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.
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.
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
2008-03-10 Josh Lee <jleedev@gmail.com>
* src/core/compositor.c (window_has_shadow): Don't shadow
shaped windows.
2008-03-07 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.23.3.
2008-03-07 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.23.2 release.
2008-03-07 Thomas Thurman <tthurman@gnome.org>
* src/core/prefs.c (mouse_button_mods_handler): remove
debug statements (*blush*)
2008-03-06 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.23.2.
2008-03-06 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.23.1 release.
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)
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
2008-03-04 Thomas Thurman <tthurman@gnome.org>
* MAINTAINERS: added some spacing to see whether it
helps Pulse
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
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
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!)
2008-02-27 Jim Huang <jserv.tw@gmail.com>
* src/core/spring-model.[ch]: deleted as no longer used
* src/Makefile.am: modified accordingly
2008-02-27 Thomas Thurman <tthurman@gnome.org>
Lots of tiny fixes to make sure we compile with
"gcc -ansi -Werror".
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.
2008-02-26 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.23.1.
2008-02-26 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.23.0 release.
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.
It has now been excised from the changelog.
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.
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.
2008-02-23 Thomas Thurman <tthurman@gnome.org>
* tools/commit-wrangler.py: Print URL of changeset on success.
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.
2008-02-21 Mikkel Kamstrup Erlandsen <mikkel.kamstrup@gmail.com>
* src/core/constraints.c: Respect requested position on
_NET_MOVERESIZE_WINDOW. Closes #448183.
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.
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.
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.
2008-02-17 Thomas Thurman <tthurman@gnome.org>
* tools/commit-wrangler.py: added new script to manage commits
2008-02-17 Jim Huang <jserv.tw@gmail.com>
* src/core/prefs.c (update_binding): Allow compilation
when gconf mode is disabled. Closes #515019.
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.
2008-02-12 Thomas Thurman <tthurman@gnome.org>
* configure.in: Correct help for verbose option name.
2008-02-12 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-branch bump to 2.23.0.
2008-02-12 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.21.21.
2008-02-11 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.21.13 release.
2008-02-04 Thomas Thurman <tthurman@gnome.org>
* src/core/compositor.c: only use compositor version if
we have a compositor. Closes #514453.
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.
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
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.
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.)
2008-02-03 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-release bump to 2.21.13.
2008-02-03 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.21.8 release.
2008-02-03 Thomas Thurman <tthurman@gnome.org>
* tools/release-wrangler.py: Fix quoting error and added some
more error checking.
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
2008-02-02 Thomas Thurman <tthurman@gnome.org>
* src/Makefile.am: core.h is in include, not core. (Last one, I
promise.)
2008-02-02 Thomas Thurman <tthurman@gnome.org>
* src/Makefile.am: main.h is in include, not core.
2008-02-02 Thomas Thurman <tthurman@gnome.org>
* src/Makefile.am: draw-workspace.h is in ui, not core.
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.
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.
2008-01-21 Thomas Thurman <tthurman@gnome.org>
* src/ui/theme.[ch]: more commenting.
2008-01-18 Thomas Thurman <tthurman@gnome.org>
* src/ui/theme.[ch]: some more commenting.
2008-01-16 Thomas Thurman <tthurman@gnome.org>
* src/core/bell.c: Correct comment.
* src/core/main.c: Correct comment.
* src/ui/theme.c: Much commenting; #ifdeffed-out
debug code removed.
* src/ui/theme.h: Much commenting.
2008-01-13 Thomas Thurman <tthurman@gnome.org>
* src/core/bell.c: Commenting.
* src/core/main.c: Commenting, and fixing existing comments.
2008-01-12 Thomas Thurman <tthurman@gnome.org>
* src/core/main.c: Refactor repeated lines in main() to
iterate instead.
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.
2008-01-12 Thomas Thurman <tthurman@gnome.org>
* src/core/display.c: reinstated missing first character!
* Doxyfile: correct reordering of blank fields.
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.
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).
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.
2008-01-06 Thomas Thurman <tthurman@gnome.org>
* src/core/display.c: Function commenting marathon; more to come.
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.
2007-12-27 Iain Holmes <iain@gnome.org>
* src/core/compositor.c: Don't do anything in
meta_compositor_free_window, it doesn't seem to be needed and breaks
things very badly. http://bugzilla.gnome.org/show_bug.cgi?id=504876
2007-12-27 Iain Holmes <iain@gnome.org>
* src/core/compositor.c: When a window is mapped, don't set damaged to
TRUE. Fixes a bug when redrawing shadows.
2007-12-25 Iain Holmes <iain@gnome.org>
* src/core/compositor.c: USe the compositor overlay window instead of
the root window.
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.
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
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
2007-12-19 Thomas Thurman <thomas@thurman.org.uk>
* configure.in: Post-release bump to 2.21.8.
2007-12-19 Thomas Thurman <tthurman@gnome.org>
* NEWS: 2.21.5 release.

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

165
NEWS
View File

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

View File

@@ -5,7 +5,7 @@ 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) || {

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], [23])
# 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], [5])
m4_define([metacity_micro_version], [13])
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)
@@ -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

View File

@@ -1,10 +1,226 @@
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.
* es.po: Updated Spanish translation.
2007-12-17 Daniel Nylander <po@danielnylander.se>
@@ -16,7 +232,7 @@
2007-12-10 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation, fixes bug #500562 and bug #500831
* es.po: Updated Spanish translation, fixes bug #500562 and bug #500831
2007-12-10 Matej Urbančič <mateju@svn.gnome.org>
@@ -24,11 +240,11 @@
2007-12-10 Jorge Gonzalez <jorgegonz@svn.gnome.org>
* es.po: Updated Spanish translation, fixes bug #500831
* 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
* es.po: Updated Spanish translation, fixes bug #500562
2007-12-08 Jakub Friedl <jfriedl@suse.cz>
@@ -176,7 +392,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>
@@ -188,11 +404,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>
@@ -327,7 +543,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>
@@ -1732,7 +1948,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>
@@ -1919,7 +2135,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>
@@ -2534,7 +2750,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,7 @@
#
am
ar
as
az
be
be@latin
@@ -37,6 +38,7 @@ is
it
ja
ka
kn
ko
ku
lt

View File

@@ -2,28 +2,28 @@
# 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/session.c
src/core/util.c
src/core/window-props.c
src/core/window.c
src/core/xprops.c
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/ui/frames.c
src/ui/menu.c
src/ui/metaaccellabel.c
src/ui/metacity-dialog.c
src/ui/resizepopup.c
src/ui/theme-parser.c
src/ui/theme-viewer.c
src/ui/theme.c
src/tools/metacity-message.c

1825
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

File diff suppressed because it is too large Load Diff

1802
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

1915
po/da.po

File diff suppressed because it is too large Load Diff

2173
po/de.po

File diff suppressed because it is too large Load Diff

1734
po/es.po

File diff suppressed because it is too large Load Diff

2438
po/eu.po

File diff suppressed because it is too large Load Diff

1888
po/fi.po

File diff suppressed because it is too large Load Diff

1851
po/fr.po

File diff suppressed because it is too large Load Diff

5114
po/ga.po

File diff suppressed because it is too large Load Diff

1799
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

2649
po/hu.po

File diff suppressed because it is too large Load Diff

1910
po/it.po

File diff suppressed because it is too large Load Diff

1832
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

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

1788
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

2865
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

1791
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

1860
po/pt.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

1811
po/sl.po

File diff suppressed because it is too large Load Diff

1754
po/sv.po

File diff suppressed because it is too large Load Diff

1793
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

1965
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

@@ -2,132 +2,130 @@ lib_LTLIBRARIES = libmetacity-private.la
SUBDIRS=wm-tester tools themes
INCLUDES=@METACITY_CFLAGS@ -DMETACITY_LIBEXECDIR=\"$(libexecdir)\" -DHOST_ALIAS=\"@HOST_ALIAS@\" -DMETACITY_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" -DMETACITY_PKGDATADIR=\"$(pkgdatadir)\" -DMETACITY_DATADIR=\"$(datadir)\" -DG_LOG_DOMAIN=\"metacity\" -DSN_API_NOT_YET_FROZEN=1
INCLUDES=@METACITY_CFLAGS@ -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_SOURCES= \
async-getprop.c \
async-getprop.h \
bell.h \
bell.c \
boxes.h \
boxes.c \
common.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/bell.c \
core/bell.h \
core/boxes.c \
include/boxes.h \
core/compositor.c \
core/compositor.h \
core/constraints.c \
core/constraints.h \
core/core.c \
core/delete.c \
core/display.c \
core/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 \
core/errors.h \
core/eventqueue.c \
core/eventqueue.h \
core/frame.c \
core/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.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.h \
core/workspace.c \
core/workspace.h \
core/xprops.c \
core/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
# 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
bin_PROGRAMS=metacity metacity-theme-viewer
libexec_PROGRAMS=metacity-dialog
@@ -137,9 +135,9 @@ 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
@@ -151,6 +149,7 @@ desktopfilesdir=$(datadir)/gnome/wm-properties
desktopfiles_in_files=metacity.desktop.in
desktopfiles_files=$(desktopfiles_in_files:.desktop.in=.desktop)
desktopfiles_DATA = $(desktopfiles_files)
@INTLTOOL_DESKTOP_RULE@
schemadir = @GCONF_SCHEMA_FILE_DIR@
@@ -182,7 +181,7 @@ BUILT_SOURCES = inlinepixbufs.h
CLEANFILES = inlinepixbufs.h metacity.desktop metacity.schemas 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

View File

View File

View File

View File

View File

@@ -22,11 +22,57 @@
* 02111-1307, USA.
*/
/**
* \file core/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 meta_bell_visual_notify(). That
* function then checks what kind of visual flash you like, and calls either
* meta_bell_flash_fullscreen()-- which calls meta_bell_flash_screen() to do
* its work-- or meta_bell_flash_frame(), which flashes the focussed window
* using meta_bell_flash_window_frame(), unless there is no such window, in
* which case it flashes the screen instead. meta_bell_flash_window_frame()
* flashes the frame and calls meta_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.
*
* \bug Static functions should not be called meta_*.
*/
#include <config.h>
#include "bell.h"
#include "screen.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,
MetaScreen *screen)
@@ -89,6 +135,16 @@ 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,
@@ -116,6 +172,20 @@ meta_bell_flash_fullscreen (MetaDisplay *display,
}
}
/**
* Makes a frame be not flashed; this is the timeout half of
* meta_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 meta_bell_flash_window_frame(), so it should
* really be called meta_bell_unflash_window_frame().
*/
static gboolean
meta_bell_unflash_frame (gpointer data)
{
@@ -125,6 +195,17 @@ 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)
{
@@ -135,6 +216,13 @@ meta_bell_flash_window_frame (MetaWindow *window)
meta_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,
XkbAnyEvent *xkb_ev)
@@ -158,6 +246,17 @@ meta_bell_flash_frame (MetaDisplay *display,
}
}
/**
* 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,
XkbAnyEvent *xkb_ev)
@@ -176,6 +275,16 @@ meta_bell_visual_notify (MetaDisplay *display,
}
}
/**
* 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)
@@ -184,8 +293,17 @@ meta_bell_notify (MetaDisplay *display,
if (meta_prefs_get_visual_bell ())
meta_bell_visual_notify (display, xkb_ev);
}
#endif
#endif /* HAVE_XKB */
/**
* 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)
{
@@ -197,6 +315,27 @@ meta_bell_set_audible (MetaDisplay *display, gboolean audible)
#endif
}
/**
* 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)
{
@@ -238,6 +377,15 @@ meta_bell_init (MetaDisplay *display)
return FALSE;
}
/**
* 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)
{
@@ -250,6 +398,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)
{

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)
{

File diff suppressed because it is too large Load Diff

View File

@@ -26,7 +26,6 @@
#include "util.h"
#include "display.h"
#include "spring-model.h"
MetaCompositor* meta_compositor_new (MetaDisplay *display);
void meta_compositor_process_event (MetaCompositor *compositor,
@@ -65,5 +64,8 @@ void meta_compositor_free_window (MetaCompositor *compositor,
MetaWindow *window);
Pixmap meta_compositor_get_window_pixmap (MetaCompositor *compositor,
MetaWindow *window);
void meta_compositor_set_active_window (MetaCompositor *compositor,
MetaScreen *screen,
MetaWindow *window);
#endif /* META_COMPOSITOR_H */

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
@@ -811,6 +811,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 +853,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 +879,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 +908,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 +936,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 +1042,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,

View File

@@ -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)
@@ -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,6 +22,9 @@
* 02111-1307, USA.
*/
#define _GNU_SOURCE
#define _SVID_SOURCE /* for gethostname() */
#include <config.h>
#include "util.h"
#include "window.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",
@@ -271,7 +257,7 @@ 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");
len, str ? (int) strlen (str) : 0, str ? str : "NULL");
if (len > 0)
{

File diff suppressed because it is too large Load Diff

View File

@@ -357,6 +357,8 @@ struct _MetaDisplay
#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;
@@ -457,7 +459,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);

View File

@@ -1091,6 +1091,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

@@ -21,6 +21,16 @@
* 02111-1307, USA.
*/
/**
* \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.
*/
#include <config.h>
#include "effects.h"
#include "display.h"
@@ -256,14 +266,15 @@ update_wireframe_window (MetaDisplay *display,
#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,

View File

@@ -25,7 +25,6 @@
#include "iconcache.h"
#include "ui.h"
#include "errors.h"
#include "theme.h"
#include <X11/Xatom.h>
@@ -818,9 +817,15 @@ meta_read_icons (MetaScreen *screen,
if (icon_cache->want_fallback &&
icon_cache->origin < USING_FALLBACK_ICON)
{
MetaTheme *theme = meta_theme_get_current ();
GdkPixbuf *fallback_icon;
GdkPixbuf *fallback_mini_icon;
fallback_icon = NULL;
fallback_mini_icon = NULL;
if (theme->fallback_icon == NULL || theme->fallback_mini_icon == NULL)
meta_ui_get_fallback_icons(&fallback_icon, &fallback_mini_icon);
if (fallback_icon == NULL || fallback_mini_icon == NULL)
{
get_fallback_icons (screen,
iconp,
@@ -831,14 +836,14 @@ meta_read_icons (MetaScreen *screen,
ideal_mini_height);
}
if (theme->fallback_icon != NULL)
*iconp = theme->fallback_icon;
if (theme->fallback_mini_icon != NULL)
*mini_iconp = theme->fallback_mini_icon;
if (fallback_icon != NULL)
*iconp = fallback_icon;
if (fallback_mini_icon != NULL)
*mini_iconp = fallback_mini_icon;
replace_cache (icon_cache, USING_FALLBACK_ICON,
*iconp, *mini_iconp);
return TRUE;
}

View File

@@ -23,6 +23,9 @@
* 02111-1307, USA.
*/
#define _GNU_SOURCE
#define _SVID_SOURCE /* for putenv() */
#include <config.h>
#include "keybindings.h"
#include "workspace.h"
@@ -1580,7 +1583,7 @@ find_handler (const MetaKeyHandler *handlers,
return NULL;
}
static void
static gboolean
process_event (MetaKeyBinding *bindings,
int n_bindings,
const MetaKeyHandler *handlers,
@@ -1594,13 +1597,13 @@ process_event (MetaKeyBinding *bindings,
/* we used to have release-based bindings but no longer. */
if (event->type == KeyRelease)
return;
return FALSE;
i = 0;
while (i < n_bindings)
{
if (bindings[i].keycode == event->xkey.keycode &&
((event->xkey.state & ~(display->ignored_modifier_mask)) ==
((event->xkey.state & 0xff & ~(display->ignored_modifier_mask)) ==
bindings[i].mask) &&
event->type == KeyPress)
{
@@ -1634,7 +1637,7 @@ process_event (MetaKeyBinding *bindings,
(* handler->func) (display, screen, window, event,
&bindings[i]);
return;
return TRUE;
}
++i;
@@ -1642,6 +1645,7 @@ process_event (MetaKeyBinding *bindings,
meta_topic (META_DEBUG_KEYBINDINGS,
"No handler found for this event in this binding table\n");
return FALSE;
}
/* Handle a key event. May be called recursively: some key events cause
@@ -1662,16 +1666,17 @@ meta_display_process_key_event (MetaDisplay *display,
{
KeySym keysym;
gboolean handled;
gboolean keep_grab;
gboolean all_keys_grabbed;
const char *str;
MetaScreen *screen;
XAllowEvents (display->xdisplay,
all_bindings_disabled ? ReplayKeyboard : AsyncKeyboard,
event->xkey.time);
if (all_bindings_disabled)
return;
/* if key event was on root window, we have a shortcut */
screen = meta_display_screen_for_root (display, event->xkey.window);
@@ -1700,115 +1705,102 @@ meta_display_process_key_event (MetaDisplay *display,
str ? str : "none", event->xkey.state,
window ? window->desc : "(no window)");
keep_grab = TRUE;
all_keys_grabbed = window ? window->all_keys_grabbed : screen->all_keys_grabbed;
if (!all_keys_grabbed)
if (all_keys_grabbed)
{
/* Do the normal keybindings */
process_event (display->screen_bindings,
display->n_screen_bindings,
screen_handlers,
display, screen, NULL, event, keysym);
if (window)
process_event (display->window_bindings,
display->n_window_bindings,
window_handlers,
display, screen, window, event, keysym);
return;
}
if (display->grab_op == META_GRAB_OP_NONE)
return;
/* If we get here we have a global grab, because
* we're in some special keyboard mode such as window move
* mode.
*/
handled = FALSE;
if (window ? (window == display->grab_window) :
(screen == display->grab_screen))
{
switch (display->grab_op)
if (display->grab_op == META_GRAB_OP_NONE)
return;
/* If we get here we have a global grab, because
* we're in some special keyboard mode such as window move
* mode.
*/
if (window ? (window == display->grab_window) :
(screen == display->grab_screen))
{
case META_GRAB_OP_MOVING:
case META_GRAB_OP_RESIZING_SE:
case META_GRAB_OP_RESIZING_S:
case META_GRAB_OP_RESIZING_SW:
case META_GRAB_OP_RESIZING_N:
case META_GRAB_OP_RESIZING_NE:
case META_GRAB_OP_RESIZING_NW:
case META_GRAB_OP_RESIZING_W:
case META_GRAB_OP_RESIZING_E:
meta_topic (META_DEBUG_KEYBINDINGS,
"Processing event for mouse-only move/resize\n");
g_assert (window != NULL);
handled = process_mouse_move_resize_grab (display, screen,
window, event, keysym);
break;
case META_GRAB_OP_KEYBOARD_MOVING:
meta_topic (META_DEBUG_KEYBINDINGS,
"Processing event for keyboard move\n");
g_assert (window != NULL);
handled = process_keyboard_move_grab (display, screen,
window, event, keysym);
break;
case META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN:
case META_GRAB_OP_KEYBOARD_RESIZING_S:
case META_GRAB_OP_KEYBOARD_RESIZING_N:
case META_GRAB_OP_KEYBOARD_RESIZING_W:
case META_GRAB_OP_KEYBOARD_RESIZING_E:
case META_GRAB_OP_KEYBOARD_RESIZING_SE:
case META_GRAB_OP_KEYBOARD_RESIZING_NE:
case META_GRAB_OP_KEYBOARD_RESIZING_SW:
case META_GRAB_OP_KEYBOARD_RESIZING_NW:
meta_topic (META_DEBUG_KEYBINDINGS,
"Processing event for keyboard resize\n");
g_assert (window != NULL);
handled = process_keyboard_resize_grab (display, screen,
window, event, keysym);
break;
case META_GRAB_OP_KEYBOARD_TABBING_NORMAL:
case META_GRAB_OP_KEYBOARD_TABBING_DOCK:
case META_GRAB_OP_KEYBOARD_TABBING_GROUP:
case META_GRAB_OP_KEYBOARD_ESCAPING_NORMAL:
case META_GRAB_OP_KEYBOARD_ESCAPING_DOCK:
case META_GRAB_OP_KEYBOARD_ESCAPING_GROUP:
meta_topic (META_DEBUG_KEYBINDINGS,
"Processing event for keyboard tabbing/cycling\n");
handled = process_tab_grab (display, screen, event, keysym);
break;
case META_GRAB_OP_KEYBOARD_WORKSPACE_SWITCHING:
meta_topic (META_DEBUG_KEYBINDINGS,
"Processing event for keyboard workspace switching\n");
handled = process_workspace_switch_grab (display, screen, event, keysym);
break;
default:
break;
switch (display->grab_op)
{
case META_GRAB_OP_MOVING:
case META_GRAB_OP_RESIZING_SE:
case META_GRAB_OP_RESIZING_S:
case META_GRAB_OP_RESIZING_SW:
case META_GRAB_OP_RESIZING_N:
case META_GRAB_OP_RESIZING_NE:
case META_GRAB_OP_RESIZING_NW:
case META_GRAB_OP_RESIZING_W:
case META_GRAB_OP_RESIZING_E:
meta_topic (META_DEBUG_KEYBINDINGS,
"Processing event for mouse-only move/resize\n");
g_assert (window != NULL);
keep_grab = process_mouse_move_resize_grab (display, screen,
window, event, keysym);
break;
case META_GRAB_OP_KEYBOARD_MOVING:
meta_topic (META_DEBUG_KEYBINDINGS,
"Processing event for keyboard move\n");
g_assert (window != NULL);
keep_grab = process_keyboard_move_grab (display, screen,
window, event, keysym);
break;
case META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN:
case META_GRAB_OP_KEYBOARD_RESIZING_S:
case META_GRAB_OP_KEYBOARD_RESIZING_N:
case META_GRAB_OP_KEYBOARD_RESIZING_W:
case META_GRAB_OP_KEYBOARD_RESIZING_E:
case META_GRAB_OP_KEYBOARD_RESIZING_SE:
case META_GRAB_OP_KEYBOARD_RESIZING_NE:
case META_GRAB_OP_KEYBOARD_RESIZING_SW:
case META_GRAB_OP_KEYBOARD_RESIZING_NW:
meta_topic (META_DEBUG_KEYBINDINGS,
"Processing event for keyboard resize\n");
g_assert (window != NULL);
keep_grab = process_keyboard_resize_grab (display, screen,
window, event, keysym);
break;
case META_GRAB_OP_KEYBOARD_TABBING_NORMAL:
case META_GRAB_OP_KEYBOARD_TABBING_DOCK:
case META_GRAB_OP_KEYBOARD_TABBING_GROUP:
case META_GRAB_OP_KEYBOARD_ESCAPING_NORMAL:
case META_GRAB_OP_KEYBOARD_ESCAPING_DOCK:
case META_GRAB_OP_KEYBOARD_ESCAPING_GROUP:
meta_topic (META_DEBUG_KEYBINDINGS,
"Processing event for keyboard tabbing/cycling\n");
keep_grab = process_tab_grab (display, screen, event, keysym);
break;
case META_GRAB_OP_KEYBOARD_WORKSPACE_SWITCHING:
meta_topic (META_DEBUG_KEYBINDINGS,
"Processing event for keyboard workspace switching\n");
keep_grab = process_workspace_switch_grab (display, screen, event, keysym);
break;
default:
break;
}
}
}
/* end grab if a key that isn't used gets pressed */
if (!handled)
{
meta_topic (META_DEBUG_KEYBINDINGS,
"Ending grab op %u on key event sym %s\n",
display->grab_op, XKeysymToString (keysym));
meta_display_end_grab_op (display, event->xkey.time);
g_assert (display->grab_op == META_GRAB_OP_NONE);
/* and go round again: #112560 */
meta_display_process_key_event (display, window, event);
}
if (!keep_grab)
{
meta_topic (META_DEBUG_KEYBINDINGS,
"Ending grab op %u on key event sym %s\n",
display->grab_op, XKeysymToString (keysym));
meta_display_end_grab_op (display, event->xkey.time);
return;
}
}
/* Do the normal keybindings */
handled = process_event (display->screen_bindings,
display->n_screen_bindings,
screen_handlers,
display, screen, NULL, event, keysym);
if (!all_keys_grabbed && !handled && window)
handled = process_event (display->window_bindings,
display->n_window_bindings,
window_handlers,
display, screen, window, event, keysym);
}
static gboolean
@@ -1845,13 +1837,10 @@ process_mouse_move_resize_grab (MetaDisplay *display,
else
display->grab_was_cancelled = TRUE;
/* End grab, since this was an "unhandled" keypress */
/* End grab */
return FALSE;
}
/* The keypress really isn't handled but we just want to ignore it, so
* treat it as handled.
*/
return TRUE;
}

View File

@@ -22,6 +22,27 @@
* 02111-1307, USA.
*/
/**
* \file core/main.c Program startup
*
* Functions which parse the command-line arguments, create the display,
* kick everything off and then close down Metacity when it's time to go.
*/
/**
* \mainpage Metacity - a boring window manager for the adult in you
*
* Many window managers are like Marshmallow Froot Loops; Metacity
* is like Cheerios.
*
* The best way to get a handle on how the whole system fits together
* is discussed in doc/code-overview.txt; if you're looking for functions
* to investigate, read main(), meta_display_open(), and event_callback().
*/
#define _GNU_SOURCE
#define _SVID_SOURCE /* for putenv() and some signal-related functions */
#include <config.h>
#include "main.h"
#include "util.h"
@@ -44,13 +65,36 @@
#include <locale.h>
#include <time.h>
/**
* The exit code we'll return to our parent process when we eventually die.
*/
static MetaExitCode meta_exit_code = META_EXIT_SUCCESS;
/**
* Handle on the main loop, so that we have an easy way of shutting Metacity
* down.
*/
static GMainLoop *meta_main_loop = NULL;
/**
* If set, Metacity will spawn an identical copy of itself immediately
* before quitting.
*/
static gboolean meta_restart_after_quit = FALSE;
static void prefs_changed_callback (MetaPreference pref,
gpointer data);
/**
* Prints log messages. If Metacity was compiled with backtrace support,
* also prints a backtrace (see meta_print_backtrace()).
*
* \param log_domain the domain the error occurred in (we ignore this)
* \param log_level the log level so that we can filter out less
* important messages
* \param message the message to log
* \param user_data arbitrary data (we ignore this)
*/
static void
log_handler (const gchar *log_domain,
GLogLevelFlags log_level,
@@ -61,17 +105,27 @@ log_handler (const gchar *log_domain,
meta_print_backtrace ();
}
/**
* Prints the version notice. This is shown when Metacity is called
* with the --version switch.
*/
static void
version (void)
{
g_print (_("metacity %s\n"
"Copyright (C) 2001-2007 Havoc Pennington, Red Hat, Inc., and others\n"
"Copyright (C) 2001-2008 Havoc Pennington, Red Hat, Inc., and others\n"
"This is free software; see the source for copying conditions.\n"
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"),
VERSION);
exit (0);
}
/**
* Prints a list of which configure script options were used to
* build this copy of Metacity. This is actually always called
* on startup, but it's all no-op unless we're in verbose mode
* (see meta_set_verbose).
*/
static void
meta_print_compilation_info (void)
{
@@ -117,6 +171,14 @@ meta_print_compilation_info (void)
#endif
}
/**
* Prints the version number, the current timestamp (not the
* build date), the locale, the character encoding, and a list
* of configure script options that were used to build this
* copy of Metacity. This is actually always called
* on startup, but it's all no-op unless we're in verbose mode
* (see meta_set_verbose).
*/
static void
meta_print_self_identity (void)
{
@@ -140,6 +202,11 @@ meta_print_self_identity (void)
meta_print_compilation_info ();
}
/**
* The set of possible options that can be set on Metacity's
* command line. This type exists so that meta_parse_options() can
* write to an instance of it.
*/
typedef struct
{
gchar *save_file;
@@ -152,13 +219,16 @@ typedef struct
} MetaArguments;
/**
* meta_parse_options() parses argc and argv and returns the
* arguments that Metacity understands in struct
* MetaArguments. In meta_args.
* Parses argc and argv and returns the
* arguments that Metacity understands in meta_args.
*
* The strange call signature has to be written like it is so
* that g_option_context_parse() gets a chance to modify argc and
* argv.
*
* \param argc Pointer to the number of arguments Metacity was given
* \param argv Pointer to the array of arguments Metacity was given
* \param meta_args The result of parsing the arguments.
**/
static void
meta_parse_options (int *argc, char ***argv,
@@ -225,8 +295,7 @@ meta_parse_options (int *argc, char ***argv,
}
/**
* meta_select_display() is a helper function that selects
* which display Metacity should use. It first tries to use
* Selects which display Metacity should use. It first tries to use
* display_name as the display. If display_name is NULL then
* try to use the environment variable METACITY_DISPLAY. If that
* also is NULL, use the default - :0.0
@@ -244,12 +313,28 @@ void meta_select_display (gchar *display_name)
putenv (envVar);
}
/**
* This is where the story begins. It parses commandline options and
* environment variables, sets up the screen, hands control off to
* GTK, and cleans up afterwards.
*
* \param argc Number of arguments (as usual)
* \param argv Array of arguments (as usual)
*
* \bug It's a bit long. It would be good to split it out into separate
* functions.
*/
int
main (int argc, char **argv)
{
struct sigaction act;
sigset_t empty_mask;
MetaArguments meta_args;
const gchar *log_domains[] = {
NULL, G_LOG_DOMAIN, "Gtk", "Gdk", "GLib",
"Pango", "GLib-GObject", "GThread"
};
guint i;
if (setlocale (LC_ALL, "") == NULL)
meta_warning ("Locale not understood by C library, internationalization will not work\n");
@@ -312,30 +397,12 @@ main (int argc, char **argv)
#if 1
g_log_set_handler (NULL,
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
log_handler, NULL);
g_log_set_handler (G_LOG_DOMAIN,
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
log_handler, NULL);
g_log_set_handler ("Gtk",
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
log_handler, NULL);
g_log_set_handler ("Gdk",
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
log_handler, NULL);
g_log_set_handler ("GLib",
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
log_handler, NULL);
g_log_set_handler ("Pango",
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
log_handler, NULL);
g_log_set_handler ("GLib-GObject",
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
log_handler, NULL);
g_log_set_handler ("GThread",
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
log_handler, NULL);
for (i=0; i<G_N_ELEMENTS(log_domains); i++)
g_log_set_handler (log_domains[i],
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
log_handler, NULL);
#endif
if (g_getenv ("METACITY_G_FATAL_WARNINGS") != NULL)
@@ -402,36 +469,17 @@ main (int argc, char **argv)
/* Free memory possibly allocated by the argument parsing which are
* no longer needed.
*/
if (meta_args.save_file)
g_free (meta_args.save_file);
if (meta_args.display_name)
g_free (meta_args.display_name);
if (meta_args.client_id)
g_free (meta_args.client_id);
g_free (meta_args.save_file);
g_free (meta_args.display_name);
g_free (meta_args.client_id);
if (!meta_display_open ())
meta_exit (META_EXIT_ERROR);
g_main_loop_run (meta_main_loop);
{
GSList *displays;
GSList *tmp;
/* we need a copy since closing the display removes it
* from the list
*/
displays = g_slist_copy (meta_displays_list ());
tmp = displays;
while (tmp != NULL)
{
guint32 timestamp;
timestamp = CurrentTime; /* I doubt correct timestamps matter here */
meta_display_close (tmp->data, timestamp);
tmp = tmp->next;
}
g_slist_free (displays);
}
meta_display_close (meta_get_display (),
CurrentTime); /* I doubt correct timestamps matter here */
meta_session_shutdown ();
@@ -459,12 +507,15 @@ main (int argc, char **argv)
return meta_exit_code;
}
GMainLoop*
meta_get_main_loop (void)
{
return meta_main_loop;
}
/**
* Stops Metacity. This tells the event loop to stop processing; it is rather
* dangerous to use this rather than meta_restart() because this will leave
* the user with no window manager. We generally do this only if, for example,
* the session manager asks us to; we assume the session manager knows what
* it's talking about.
*
* \param code The success or failure code to return to the calling process.
*/
void
meta_quit (MetaExitCode code)
{
@@ -474,6 +525,12 @@ meta_quit (MetaExitCode code)
g_main_loop_quit (meta_main_loop);
}
/**
* Restarts Metacity. In practice, this tells the event loop to stop
* processing, having first set the meta_restart_after_quit flag which
* tells Metacity to spawn an identical copy of itself before quitting.
* This happens on receipt of a _METACITY_RESTART_MESSAGE client event.
*/
void
meta_restart (void)
{
@@ -481,6 +538,15 @@ meta_restart (void)
meta_quit (META_EXIT_SUCCESS);
}
/**
* Called on pref changes. (One of several functions of its kind and purpose.)
*
* \bug Why are these particular prefs handled in main.c and not others?
* Should they be?
*
* \param pref Which preference has changed
* \param data Arbitrary data (which we ignore)
*/
static void
prefs_changed_callback (MetaPreference pref,
gpointer data)

View File

@@ -86,7 +86,7 @@ northwestcmp (gconstpointer a, gconstpointer b)
else
return 0;
}
static void
find_next_cascade (MetaWindow *window,
MetaFrameGeometry *fgeom,
@@ -871,6 +871,12 @@ meta_window_place (MetaWindow *window,
}
}
/* If no placement has been done, revert to cascade to avoid
* fully overlapping window (e.g. starting multiple terminals)
* */
if (x == xi->rect.x && y == xi->rect.y)
find_next_cascade (window, fgeom, windows, x, y, &x, &y);
done_check_denied_focus:
/* If the window is being denied focus and isn't a transient of the
* focus window, we do NOT want it to overlap with the focus window

File diff suppressed because it is too large Load Diff

View File

@@ -2255,7 +2255,7 @@ meta_screen_calc_workspace_layout (MetaScreen *screen,
if (i != grid_area)
meta_bug ("did not fill in the whole workspace grid in %s (%d filled)\n",
G_GNUC_FUNCTION, i);
G_STRFUNC, i);
current_row = 0;
current_col = 0;

View File

@@ -807,17 +807,28 @@ save_state (void)
char *metacity_dir;
char *session_dir;
FILE *outfile;
GSList *displays;
GSList *display_iter;
GSList *windows;
GSList *tmp;
int stack_position;
g_assert (client_id);
outfile = NULL;
metacity_dir = g_strconcat (g_get_home_dir (), "/.metacity",
/*
* g_get_user_config_dir() is guaranteed to return an existing directory.
* Eventually, if SM stays with the WM, I'd like to make this
* something like <config>/window_placement in a standard format.
* Future optimisers should note also that by the time we get here
* we probably already have full_save_path figured out and therefore
* can just use the directory name from that.
*/
metacity_dir = g_strconcat (g_get_user_config_dir (),
G_DIR_SEPARATOR_S "metacity",
NULL);
session_dir = g_strconcat (metacity_dir, "/sessions",
session_dir = g_strconcat (metacity_dir,
G_DIR_SEPARATOR_S "sessions",
NULL);
if (mkdir (metacity_dir, 0700) < 0 &&
@@ -863,127 +874,116 @@ save_state (void)
fprintf (outfile, "<metacity_session id=\"%s\">\n",
client_id);
displays = meta_displays_list ();
display_iter = displays;
while (display_iter != NULL)
windows = meta_display_list_windows (meta_get_display ());
stack_position = 0;
windows = g_slist_sort (windows, meta_display_stack_cmp);
tmp = windows;
stack_position = 0;
while (tmp != NULL)
{
GSList *windows;
GSList *tmp;
int stack_position;
windows = meta_display_list_windows (display_iter->data);
windows = g_slist_sort (windows, meta_display_stack_cmp);
MetaWindow *window;
stack_position = 0;
tmp = windows;
while (tmp != NULL)
window = tmp->data;
if (window->sm_client_id)
{
MetaWindow *window;
char *sm_client_id;
char *res_class;
char *res_name;
char *role;
char *title;
window = tmp->data;
if (window->sm_client_id)
{
char *sm_client_id;
char *res_class;
char *res_name;
char *role;
char *title;
/* client id, class, name, role are not expected to be
* in UTF-8 (I think they are in XPCS which is Latin-1?
* in practice they are always ascii though.)
*/
/* client id, class, name, role are not expected to be
* in UTF-8 (I think they are in XPCS which is Latin-1?
* in practice they are always ascii though.)
*/
sm_client_id = encode_text_as_utf8_markup (window->sm_client_id);
res_class = window->res_class ?
encode_text_as_utf8_markup (window->res_class) : NULL;
res_name = window->res_name ?
encode_text_as_utf8_markup (window->res_name) : NULL;
role = window->role ?
encode_text_as_utf8_markup (window->role) : NULL;
if (window->title)
title = g_markup_escape_text (window->title, -1);
else
title = NULL;
meta_topic (META_DEBUG_SM, "Saving session managed window %s, client ID '%s'\n",
window->desc, window->sm_client_id);
fprintf (outfile,
" <window id=\"%s\" class=\"%s\" name=\"%s\" title=\"%s\" role=\"%s\" type=\"%s\" stacking=\"%d\">\n",
sm_client_id,
res_class ? res_class : "",
res_name ? res_name : "",
title ? title : "",
role ? role : "",
window_type_to_string (window->type),
stack_position);
g_free (sm_client_id);
g_free (res_class);
g_free (res_name);
g_free (role);
g_free (title);
/* Sticky */
if (window->on_all_workspaces)
fputs (" <sticky/>\n", outfile);
/* Minimized */
if (window->minimized)
fputs (" <minimized/>\n", outfile);
/* Maximized */
if (META_WINDOW_MAXIMIZED (window))
{
fprintf (outfile,
" <maximized saved_x=\"%d\" saved_y=\"%d\" saved_width=\"%d\" saved_height=\"%d\"/>\n",
window->saved_rect.x,
window->saved_rect.y,
window->saved_rect.width,
window->saved_rect.height);
}
/* Workspaces we're on */
{
int n;
n = meta_workspace_index (window->workspace);
fprintf (outfile,
" <workspace index=\"%d\"/>\n", n);
}
/* Gravity */
{
int x, y, w, h;
meta_window_get_geometry (window, &x, &y, &w, &h);
fprintf (outfile,
" <geometry x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" gravity=\"%s\"/>\n",
x, y, w, h,
meta_gravity_to_string (window->size_hints.win_gravity));
}
fputs (" </window>\n", outfile);
}
sm_client_id = encode_text_as_utf8_markup (window->sm_client_id);
res_class = window->res_class ?
encode_text_as_utf8_markup (window->res_class) : NULL;
res_name = window->res_name ?
encode_text_as_utf8_markup (window->res_name) : NULL;
role = window->role ?
encode_text_as_utf8_markup (window->role) : NULL;
if (window->title)
title = g_markup_escape_text (window->title, -1);
else
{
meta_topic (META_DEBUG_SM, "Not saving window '%s', not session managed\n",
window->desc);
}
tmp = tmp->next;
++stack_position;
}
g_slist_free (windows);
title = NULL;
meta_topic (META_DEBUG_SM, "Saving session managed window %s, client ID '%s'\n",
window->desc, window->sm_client_id);
display_iter = display_iter->next;
fprintf (outfile,
" <window id=\"%s\" class=\"%s\" name=\"%s\" title=\"%s\" role=\"%s\" type=\"%s\" stacking=\"%d\">\n",
sm_client_id,
res_class ? res_class : "",
res_name ? res_name : "",
title ? title : "",
role ? role : "",
window_type_to_string (window->type),
stack_position);
g_free (sm_client_id);
g_free (res_class);
g_free (res_name);
g_free (role);
g_free (title);
/* Sticky */
if (window->on_all_workspaces)
fputs (" <sticky/>\n", outfile);
/* Minimized */
if (window->minimized)
fputs (" <minimized/>\n", outfile);
/* Maximized */
if (META_WINDOW_MAXIMIZED (window))
{
fprintf (outfile,
" <maximized saved_x=\"%d\" saved_y=\"%d\" saved_width=\"%d\" saved_height=\"%d\"/>\n",
window->saved_rect.x,
window->saved_rect.y,
window->saved_rect.width,
window->saved_rect.height);
}
/* Workspaces we're on */
{
int n;
n = meta_workspace_index (window->workspace);
fprintf (outfile,
" <workspace index=\"%d\"/>\n", n);
}
/* Gravity */
{
int x, y, w, h;
meta_window_get_geometry (window, &x, &y, &w, &h);
fprintf (outfile,
" <geometry x=\"%d\" y=\"%d\" width=\"%d\" height=\"%d\" gravity=\"%s\"/>\n",
x, y, w, h,
meta_gravity_to_string (window->size_hints.win_gravity));
}
fputs (" </window>\n", outfile);
}
else
{
meta_topic (META_DEBUG_SM, "Not saving window '%s', not session managed\n",
window->desc);
}
tmp = tmp->next;
++stack_position;
}
/* don't need to free displays */
displays = NULL;
g_slist_free (windows);
fputs ("</metacity_session>\n", outfile);
out:
@@ -1061,8 +1061,9 @@ load_state (const char *previous_save_file)
gsize length;
char *session_file;
session_file = g_strconcat (g_get_home_dir (),
"/.metacity/sessions/",
session_file = g_strconcat (g_get_user_config_dir (),
G_DIR_SEPARATOR_S "metacity"
G_DIR_SEPARATOR_S "sessions" G_DIR_SEPARATOR_S,
previous_save_file,
NULL);
@@ -1072,11 +1073,32 @@ load_state (const char *previous_save_file)
&length,
&error))
{
meta_warning (_("Failed to read saved session file %s: %s\n"),
session_file, error->message);
g_error_free (error);
g_free (session_file);
return NULL;
char *canonical_session_file = session_file;
/* Maybe they were doing it the old way, with ~/.metacity */
session_file = g_strconcat (g_get_home_dir (),
G_DIR_SEPARATOR_S ".metacity"
G_DIR_SEPARATOR_S "sessions"
G_DIR_SEPARATOR_S,
previous_save_file,
NULL);
if (!g_file_get_contents (session_file,
&text,
&length,
NULL))
{
/* oh, just give up */
meta_warning (_("Failed to read saved session file %s: %s\n"),
canonical_session_file, error->message);
g_error_free (error);
g_free (session_file);
g_free (canonical_session_file);
return NULL;
}
g_free (canonical_session_file);
}
meta_topic (META_DEBUG_SM, "Parsing saved session file %s\n", session_file);
@@ -1678,8 +1700,9 @@ regenerate_save_file (void)
g_free (full_save_path);
if (client_id)
full_save_path = g_strconcat (g_get_home_dir (),
"/.metacity/sessions/",
full_save_path = g_strconcat (g_get_user_config_dir (),
G_DIR_SEPARATOR_S "metacity"
G_DIR_SEPARATOR_S "sessions" G_DIR_SEPARATOR_S,
client_id,
".ms",
NULL);
@@ -1760,9 +1783,8 @@ io_from_warning_dialog (GIOChannel *channel,
static void
warn_about_lame_clients_and_finish_interact (gboolean shutdown)
{
GSList *displays;
GSList *display_iter;
GSList *lame;
GSList *windows;
char **argv;
int i;
GSList *tmp;
@@ -1776,34 +1798,26 @@ warn_about_lame_clients_and_finish_interact (gboolean shutdown)
char timestampbuf[32];
lame = NULL;
displays = meta_displays_list ();
display_iter = displays;
while (display_iter != NULL)
windows = meta_display_list_windows (meta_get_display ());
tmp = windows;
while (tmp != NULL)
{
GSList *windows;
windows = meta_display_list_windows (display_iter->data);
tmp = windows;
while (tmp != NULL)
{
MetaWindow *window;
window = tmp->data;
/* only complain about normal windows, the others
* are kind of dumb to worry about
*/
if (window->sm_client_id == NULL &&
window->type == META_WINDOW_NORMAL)
lame = g_slist_prepend (lame, window);
MetaWindow *window;
tmp = tmp->next;
}
g_slist_free (windows);
window = tmp->data;
display_iter = display_iter->next;
/* only complain about normal windows, the others
* are kind of dumb to worry about
*/
if (window->sm_client_id == NULL &&
window->type == META_WINDOW_NORMAL)
lame = g_slist_prepend (lame, window);
tmp = tmp->next;
}
g_slist_free (windows);
if (lame == NULL)
{
/* No lame apps. */
@@ -1813,12 +1827,9 @@ warn_about_lame_clients_and_finish_interact (gboolean shutdown)
lame = g_slist_sort (lame, (GCompareFunc) windows_cmp_by_title);
timestamp = meta_display_get_current_time_roundtrip (displays->data);
timestamp = meta_display_get_current_time_roundtrip (meta_get_display ());
sprintf (timestampbuf, "%u", timestamp);
/* don't need to free displays */
displays = NULL;
len = g_slist_length (lame);
len *= 2; /* titles and also classes */
len += 2; /* --timestamp flag and actual timestamp */

View File

@@ -625,15 +625,15 @@ test_regions_okay ()
/*************************************************************/
region = get_screen_region (3);
tmp = NULL;
tmp = g_list_prepend (tmp, new_meta_rect ( 380, 675, 420, 525)); // 220500
tmp = g_list_prepend (tmp, new_meta_rect ( 0, 20, 300, 1180)); // 354000
tmp = g_list_prepend (tmp, new_meta_rect ( 380, 20, 320, 1180)); // 377600
tmp = g_list_prepend (tmp, new_meta_rect ( 0, 675, 800, 475)); // 380000
tmp = g_list_prepend (tmp, new_meta_rect (1200, 20, 400, 1180)); // 472000
tmp = g_list_prepend (tmp, new_meta_rect ( 0, 675, 1600, 425)); // 680000
tmp = g_list_prepend (tmp, new_meta_rect ( 900, 20, 700, 1080)); // 756000
tmp = g_list_prepend (tmp, new_meta_rect ( 0, 20, 700, 1130)); // 791000
tmp = g_list_prepend (tmp, new_meta_rect ( 0, 20, 1600, 505)); // 808000
tmp = g_list_prepend (tmp, new_meta_rect ( 380, 675, 420, 525)); /* 220500 */
tmp = g_list_prepend (tmp, new_meta_rect ( 0, 20, 300, 1180)); /* 354000 */
tmp = g_list_prepend (tmp, new_meta_rect ( 380, 20, 320, 1180)); /* 377600 */
tmp = g_list_prepend (tmp, new_meta_rect ( 0, 675, 800, 475)); /* 380000 */
tmp = g_list_prepend (tmp, new_meta_rect (1200, 20, 400, 1180)); /* 472000 */
tmp = g_list_prepend (tmp, new_meta_rect ( 0, 675, 1600, 425)); /* 680000 */
tmp = g_list_prepend (tmp, new_meta_rect ( 900, 20, 700, 1080)); /* 756000 */
tmp = g_list_prepend (tmp, new_meta_rect ( 0, 20, 700, 1130)); /* 791000 */
tmp = g_list_prepend (tmp, new_meta_rect ( 0, 20, 1600, 505)); /* 808000 */
#if 0
printf ("Got to here...\n");
char region_list[(RECT_LENGTH+2) * g_list_length (region)];

View File

@@ -22,6 +22,9 @@
* 02111-1307, USA.
*/
#define _GNU_SOURCE
#define _POSIX_C_SOURCE /* for fdopen() */
#include <config.h>
#include "util.h"
#include "main.h"
@@ -131,10 +134,10 @@ meta_set_verbose (gboolean setting)
#ifndef WITH_VERBOSE_MODE
if (setting)
meta_fatal (_("Metacity was compiled without support for verbose mode\n"));
#endif
#else
if (setting)
ensure_logfile ();
#endif
is_verbose = setting;
}
@@ -148,9 +151,11 @@ meta_is_debugging (void)
void
meta_set_debugging (gboolean setting)
{
#ifdef WITH_VERBOSE_MODE
if (setting)
ensure_logfile ();
#endif
is_debugging = setting;
}
@@ -373,8 +378,12 @@ meta_bug (const char *format, ...)
str = g_strdup_vprintf (format, args);
va_end (args);
#ifdef WITH_VERBOSE_MODE
out = logfile ? logfile : stderr;
#else
out = stderr;
#endif
if (no_prefix == 0)
utf8_fputs (_("Bug in window manager: "), out);
utf8_fputs (str, out);
@@ -402,8 +411,12 @@ meta_warning (const char *format, ...)
str = g_strdup_vprintf (format, args);
va_end (args);
#ifdef WITH_VERBOSE_MODE
out = logfile ? logfile : stderr;
#else
out = stderr;
#endif
if (no_prefix == 0)
utf8_fputs (_("Window manager warning: "), out);
utf8_fputs (str, out);
@@ -426,8 +439,12 @@ meta_fatal (const char *format, ...)
str = g_strdup_vprintf (format, args);
va_end (args);
#ifdef WITH_VERBOSE_MODE
out = logfile ? logfile : stderr;
#else
out = stderr;
#endif
if (no_prefix == 0)
utf8_fputs (_("Window manager error: "), out);
utf8_fputs (str, out);

View File

@@ -22,6 +22,9 @@
* 02111-1307, USA.
*/
#define _GNU_SOURCE
#define _SVID_SOURCE /* for gethostname() */
#include <config.h>
#include "window-props.h"
#include "errors.h"

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