1
0
Fork 0
Commit graph

12538 commits

Author SHA1 Message Date
Thomas Thurman
c500de4e38 fix comments (number)
2008-05-30  Thomas Thurman  <tthurman@gnome.org>

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


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

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


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

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


svn path=/trunk/; revision=3741
2008-05-28 04:10:08 +00:00
Thomas Thurman
c5c68fcbe8 added in two files needed for Iain's changes earlier to work in a release
2008-05-26  Thomas Thurman  <tthurman@gnome.org>

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


svn path=/trunk/; revision=3728
2008-05-26 21:45:43 +00:00
Iain Holmes
76735c18a1 Add Dropdown menu atoms so we can add shadows to them. Fixes #517442
2008-05-24  Iain Holmes  <iain@gnome.org>

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


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

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


svn path=/trunk/; revision=3723
2008-05-24 11:00:17 +00:00
Iain Holmes
3405f3d8c8 Applied patch from Ed Catmur to fix #528787
2008-05-19  Iain Holmes  <iain@gnome.org>

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



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

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

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

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

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

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

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

        * src/Makefile.am: Relocate the new files



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

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


svn path=/trunk/; revision=3708
2008-05-13 12:53:36 +00:00
Elijah Newren
b095ecc195 Remove src/ui/color.[ch] since they are not used anywhere
svn path=/trunk/; revision=3706
2008-05-11 22:42:02 +00:00
Thomas Thurman
f8ff76efdd Added curly brackets in two places to keep -pedantic happy.
2008-05-04  Thomas Thurman  <tthurman@gnome.org>

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

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


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

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

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

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

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


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

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


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

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


svn path=/trunk/; revision=3697
2008-04-29 02:54:56 +00:00
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 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
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
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 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
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
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
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
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
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 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
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Iain Holmes
c2a6eeaf5e Merge compositor branch.
2007-12-18  Iain Holmes  <iain@gnome.org>

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


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

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


svn path=/trunk/; revision=3472
2007-12-12 02:23:53 +00:00
Thomas Thurman
855de7253d rewrite long description of
2007-12-08  Thomas Thurman  <tthurman@gnome.org>

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


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

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


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

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


svn path=/trunk/; revision=3464
2007-12-09 22:56:12 +00:00
Martin Meyer
71c83da805 Fix typo where wrong variable was checked (reported by Kjartan Maraas).
2007-12-08  Martin Meyer  <elreydetodo@gmail.com>

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


svn path=/trunk/; revision=3462
2007-12-09 19:39:26 +00:00
Lucas Rocha
20d599819b try to get the session client ID from DESKTOP_AUTOSTART_ID environment
2007-11-19  Lucas Rocha  <lucasr@gnome.org>

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

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

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


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


svn path=/trunk/; revision=3401
2007-11-16 02:53:25 +00:00
Peter Bloomfield
fa51a94a69 more changes discussed in bug #461927
svn path=/trunk/; revision=3391
2007-11-13 13:31:14 +00:00
Thomas Thurman
2a9dc7272b adjust expression which decides whether new windows should not go on top,
2007-11-11  Thomas Thurman  <thomas@thurman.org.uk>

        * src/window.c (meta_window_show): adjust expression which decides
        whether new windows should not go on top, so that restacking happens
        only the first time a window is mapped. Thanks to Olav Vitters for
        pointing out the problem. Re-fixes #486445.


svn path=/trunk/; revision=3386
2007-11-12 00:45:35 +00:00
Alex R.M. Turner
bcc3f56193 Instruct the GtkLabel in the tabpopup to ellipsize text that is too big.
2007-11-11  Alex R.M. Turner  <armtuk@gmail.com>

        * src/tabpopup.c (tab_entry_new, meta_ui_tab_popup_new): Instruct the
        GtkLabel in the tabpopup to ellipsize text that is too big.  Set the
        maximum window width of the tabpopup to screen_width/4, which seems a
        sensible size for the popup.


svn path=/trunk/; revision=3385
2007-11-11 22:17:51 +00:00
Elijah Newren
618a9f03b3 If a window is launched without any kind of launch timestamp, grab the
2007-11-09  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_new_with_attrs): If a window is
	launched without any kind of launch timestamp, grab the current
	time and stash it away.  When transients of that window are also
	launched without a timestamp, we can use the stashed timestamp
	from the parent.  Fixes #488468.

svn path=/trunk/; revision=3381
2007-11-09 20:41:45 +00:00
Federico Mena Quintero
98886f3d94 Oops, revert patch which I didn't intend to commit - stupid 'git-svn dcommit' - Federico
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=3379
2007-11-09 19:01:31 +00:00
Federico Mena Quintero
7b690d6bc1 Fix swapped arguments when updating _NET_WM_USER_TIME
2007-11-09  Federico Mena Quintero  <federico@novell.com>

	* src/window.c (intervening_user_event_occurred): When the window
	doesn't have a user time nor an initial timestamp set, act as if
	there always was an intervening user event.  This causes
	un-timestamped windows to *not* get the focus.  Fixes
	http://bugzilla.gnome.org/show_bug.cgi?id=488468

Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=3378
2007-11-09 18:57:29 +00:00
Peter Bloomfield
6fa4345514 save unmaximized part of client root coords
svn path=/trunk/; revision=3375
2007-11-07 04:25:57 +00:00
Peter Bloomfield
d0523744b7 do not save client root coords while window is maximized
svn path=/trunk/; revision=3374
2007-11-06 13:23:39 +00:00
Iain Holmes
988e5f49dd Add a --sync option to turn on synchronous X calls
svn path=/trunk/; revision=3368
2007-10-30 18:10:54 +00:00
Jans Granseuer
118d962b2d Free title of preview when the preview is destroyed. Closes #469682.
2007-10-28  Jans Granseuer  <jensgr@gmx.net>

        * src/preview-widget.c (meta_preview_finalize): Free title of
        preview when the preview is destroyed. Closes #469682.


svn path=/trunk/; revision=3365
2007-10-28 19:55:37 +00:00
Alex R.M. Turner
1bf37776c3 Truncate the string to max_char_per_title before adding bold tags and fix
2007-10-27  Alex R.M. Turner  <armtuk@gmail.com>

        * src/tabpopup.c (tab_entry_new): Truncate the string to
        max_char_per_title before adding bold tags and fix general flow of
        function.


svn path=/trunk/; revision=3363
2007-10-28 15:51:14 +00:00
Thomas Thurman
4ef11cfbd3 new function. rewrite assertion not to put window on top in terms of
2007-10-16  Thomas Thurman  <thomas@thurman.org.uk>

        * src/window.c (window_would_be_covered): new function.
        * src/window.c (meta_window_show): rewrite assertion not
        to put window on top in terms of window_would_be_covered();
        remove assertion because it's no longer valid; explicitly
        don't focus windows that shouldn't be focussed; closes #486445.


svn path=/trunk/; revision=3358
2007-10-16 22:29:59 +00:00
Elijah Newren
dc7e1007b0 Patch from Alexey Rusakov to prevent a crash on logout with metacity
2007-09-15  Elijah Newren  <newren gmail com>

	* src/session.c (warn_about_lame_clients_and_finish_interact):
	Patch from Alexey Rusakov to prevent a crash on logout with
	metacity subsequently not being restored in future sessions.
	Fixes #433253.

svn path=/trunk/; revision=3340
2007-09-16 02:46:32 +00:00
Søren Sandmann
b1ff50f45f Don't maintain a passive grab on windows when raise-on-click is FALSE -
Tue Aug  7 13:26:49 2007  Søren Sandmann  <sandmann@redhat.com>

	* src/window.c (meta_window_notify_focus): Don't maintain a
	passive grab on windows when raise-on-click is FALSE - bug
	461577.



svn path=/trunk/; revision=3293
2007-08-07 17:27:09 +00:00
Thomas Thurman
1a6c98c79b If KEY_AUTO_RAISE_DELAY is undefined or non-integer, it is not treated as
2007-08-06  Thomas Thurman  <thomas@thurman.org.uk>

        If KEY_AUTO_RAISE_DELAY is undefined or non-integer, it is not treated
        as zero.

        * src/prefs.c (meta_prefs_init): check type of key, and behave sensibly
        if it's unexpected.
        * src/prefs.c (find_and_update_list_binding): remove old comment.


svn path=/trunk/; revision=3287
2007-08-07 01:30:28 +00:00
Frédéric Crozat
696ef85e64 Fix mangled window title in "Force Quit" dialog when using non-UTF8
* src/delete.c: Fix mangled window title in "Force Quit"
        dialog when using non-UTF8 locale. Close #462734.


svn path=/trunk/; revision=3284
2007-08-03 07:43:03 +00:00
Thomas Thurman
007e8c013c Move "close" to bottom of window menu; allow workspace list to appear at
2007-08-02  Thomas Thurman  <thomas@thurman.org.uk>

        Move "close" to bottom of window menu; allow workspace list to appear
        at any position in the menu. Closes #104026.

        * src/menu.c (MetaMenuItemType): added new MENU_ITEM_WORKSPACE_LIST
        item.
        * src/menu.c (menuitems): reordered "close", added a workspace list.
        * src/menu.c (menu_item_new): return null for workspace lists.
        * src/menu.c (meta_window_menu_new): handle workspace lists.


svn path=/trunk/; revision=3283
2007-08-02 13:45:46 +00:00
Thomas Thurman
cd07c25706 windows which are always on top have the "stick" menu option insensitive.
2007-06-31  Thomas Thurman  <thomas@thurman.org.uk>

        * src/window.c (meta_window_show_menu): windows which are
        always on top have the "stick" menu option insensitive. (#460997).


svn path=/trunk/; revision=3282
2007-07-31 12:20:14 +00:00
Thomas Thurman
3802f157b6 Put all bitfields together to help with optimisation. Closes #450271 (for
2007-06-23  Thomas Thurman  <thomas@thurman.org.uk>

        * src/window.h (MetaWindow): Put all bitfields together to
        help with optimisation. Closes #450271 (for real this time).


svn path=/trunk/; revision=3281
2007-07-30 13:53:25 +00:00
Matthias Clasen
e98e38d32e Use the correct directory when installing keybindings. (#454055)
2007-07-23  Matthias Clasen  <mclasen@redhat.com>

        * configure.in:
        * src/Makefile.am: Use the correct directory when
        installing keybindings.  (#454055)


svn path=/trunk/; revision=3278
2007-07-24 02:41:33 +00:00
Rob Bradford
618a6b38c3 Fix a bug where the window can be focused without being raised if the
2007-07-22  Rob Bradford  <rob@robster.org.uk>

        Fix a bug where the window can be focused without being raised
        if the maximize is aborted. Fixes #459027.

        * src/frames.c (meta_frames_button_press_event,
        meta_frames_button_release_event): When maximising only focus
        the window once the button press is released.       



svn path=/trunk/; revision=3273
2007-07-23 01:48:17 +00:00
Cosimo Cecchi
e8b016984b Unset fullscreen is an allowed action where relevant. Fixes #449427.
2007-07-22  Cosimo Cecchi  <anarki@lilik.it>

Unset fullscreen is an allowed action where relevant. Fixes #449427.

* src/window.c (set_allowed_actions_hint): Separate FULLSCREEN action from RESIZE action.
                                                                                      

svn path=/trunk/; revision=3272
2007-07-23 00:46:03 +00:00
Yair Hershkovitz
8bbccb91f7 Reverse window buttons and align them to the left for RTL locales. (#92212)
svn path=/trunk/; revision=3271
2007-07-22 06:39:29 +00:00
Thomas James Alexander Thurman
371f0b732f I don't actually know what year it is most days
svn path=/trunk/; revision=3255
2007-06-18 17:32:09 +00:00
Thomas Thurman
bdd9e28878 Update copyright year because it was five years out of date.
2007-06-18  Thomas Thurman  <thomas@thurman.org.uk>

        * src/main.c (version): Update copyright year because it was
        five years out of date.


svn path=/trunk/; revision=3254
2007-06-18 17:30:28 +00:00
Thomas Thurman
7c4af65ec1 Only open new windows on the current xinerama. Closes #145503, for now.
2007-06-18  Thomas Thurman  <thomas@thurman.org.uk>

        * src/place.c (find_first_fit, meta_window_place): Only open new
        windows on the current xinerama. Closes #145503, for now.


svn path=/trunk/; revision=3247
2007-06-18 11:46:44 +00:00
Thomas Thurman
e6083f64fb return a boolean instead a void, to show whether startup properties were
2007-06-17  Thomas Thurman  <thomas@thurman.org.uk>

        * src/screen.[ch] (meta_screen_apply_startup_properties): return a
        boolean instead a void, to show whether startup properties were
        applied. Also some commenting.
        * src/window-props.c: (reload_net_startup_id): Only activate the
        window if the startup_id was actually changed. Closes #400167.


svn path=/trunk/; revision=3245
2007-06-18 02:37:14 +00:00
Damien Carbery
b996cd03be MetaCloseEffect and MetaFocusEffect, which were empty structs, #ifdeffed
2007-06-16  Damien Carbery  <damien.carbery@sun.com>

        * effects.h: MetaCloseEffect and MetaFocusEffect, which were empty
        structs, #ifdeffed out because they broke the build on Solaris.
        Closes #397296.



svn path=/trunk/; revision=3244
2007-06-17 02:55:07 +00:00
Damien Carbery
36287b9417 make prototype of meta_window_unqueue match implementation. Closes
2007-06-16  Damien Carbery  <damien.carbery@sun.com>

        * window.h: make prototype of meta_window_unqueue match
        implementation. Closes #446535.



svn path=/trunk/; revision=3243
2007-06-17 02:15:07 +00:00
Thomas Thurman
8f2b9cb4a9 Refactor thrice-duplicated queue code in window.c. Closes #376760.
2007-06-10  Thomas Thurman  <thomas@thurman.org.uk>

        Refactor thrice-duplicated queue code in window.c. Closes #376760.

        * src/window.c (meta_window_queue, meta_window_unqueue):
        New functions.
        * src/window.[ch] (meta_window_unqueue_*, meta_window_queue_*):
        Removed functions.
        * src/window.c (meta_window_new_with_attrs, meta_window_free,
        meta_window_flush_calc_showing, queue_calc_showing_func,
        meta_window_minimize, meta_window_unminimize, meta_window_maximize,
        meta_window_make_fullscreen, meta_window_shade,
        meta_window_unshade, meta_window_move_resize_internal,
        window_stick_impl, window_unstick_impl,
        meta_window_client_message, process_property_notify): Modified to
        use new queueing functions.
        * src/window.c (idle_move_resize, idle_update_icon,
        idle_calc_showing): update to receive queue number from pointer.
        * src/window.h (MetaQueueType): new enum.
        * src/window.h (MetaWindow): *_queued replaced with is_in_queue
        bitfield.
        * src/core.c (meta_core_queue_frame_resize):
        * src/display.c (event_callback,
        meta_display_queue_retheme_all_windows): Using new queueing functions.
        * src/frame.c (meta_window_destroy_frame): Using new queueing functions.
        * src/screen.c (queue_resize, meta_screen_resize_func,
        queue_windows_showing): Using new queueing functions.
        * src/window-props.c (reload_mwm_hints, reload_wm_hints,
        reload_transient_for): Using new queueing functions.
        * src/workspace.c (meta_workspace_add_window,
        meta_workspace_remove_window, meta_workspace_queue_calc_showing,
        meta_workspace_invalidate_work_area): Using new queueing functions.


svn path=/trunk/; revision=3236
2007-06-11 01:15:33 +00:00
Thomas Thuramn
0418146249 added switch_group; closes #444879.
2007-06-09  Thomas Thuramn  <thomas@thurman.org.uk>

        * src/50-metacity-key.xml.in: added switch_group; closes #444879.


svn path=/trunk/; revision=3235
2007-06-09 21:11:57 +00:00
Elijah Newren
6e70013412 Update the raise_on_click description to try to prevent misuses, to
2007-06-08  Elijah Newren  <newren gmail com>

	* src/metacity.schemas.in:
	Update the raise_on_click description to try to prevent misuses,
	to appropriately warn users, and to stop wasting the time of
	application developers.  #445447, #389923

svn path=/trunk/; revision=3234
2007-06-08 15:28:48 +00:00
Thomas Thurman
ff33209e1f changed all tabs to spaces. Removed and replaced with meta_core_get(). New
2007-06-06  Thomas Thurman  <thomas@thurman.org.uk>

        * frames.c, core.[ch]: changed all tabs to spaces.
        * core.[ch] (meta_core_get_client_size, meta_core_window_has_frame,
        meta_core_titlebar_is_onscreen, meta_core_get_client_xwindow,
        meta_core_get_frame_flags, meta_core_get_frame_type,
        meta_core_get_mini_icon, meta_core_get_icon, meta_core_get_position,
        meta_core_get_size, meta_core_get_frame_workspace,
        meta_core_get_frame_extents, meta_core_get_screen_size): Removed
        and replaced with meta_core_get().
        * core.[ch] (meta_core_get): New function.
        * core.h (MetaCoreGetType): New enum.
        * frames.c (meta_frames_ensure_layout, meta_frames_calc_geometry,
        meta_frames_get_geometry, meta_frames_apply_shapes,
        meta_frame_titlebar_event, meta_frames_button_press_event,
        populate_cache, clip_to_screen, meta_frames_paint_to_drawable,
        meta_frames_set_window_background, get_control): Replace use of
        removed functions in ui.c with meta_core_get().

        All this should make things a little faster. Closes #377495.


svn path=/trunk/; revision=3233
2007-06-07 03:31:17 +00:00
Thomas Thurman
1004bd8b60 fix label layout for RTL languages. Closes #433400.
2007-06-04  Thomas Thurman  <thomas@thurman.org.uk>

        * src/metaaccellabel.c (meta_accel_label_expose_event): fix
        label layout for RTL languages. Closes #433400.


svn path=/trunk/; revision=3228
2007-06-04 12:50:50 +00:00
Thomas Thurman
45966f581b Pango layout for titlebars should take LTR/RTL-ness from the underlying
2007-06-03  Thomas Thurman  <thomas@thurman.org.uk>

        * src/frames.c (meta_frames_ensure_layout): Pango layout for
        titlebars should take LTR/RTL-ness from the underlying widget
        and not from sniffing the content. Closes #438944.



svn path=/trunk/; revision=3227
2007-06-03 06:26:29 +00:00
Yair Hershkovitz
5194df842c Add support for RTL languages so that alt-tab, etc., go the other way. In
2007-05-25  Yair Hershkovitz  <yairhr@yahoo.com>

        * src/workspace.c (meta_workspace_get_neighbor): Add support
        for RTL languages so that alt-tab, etc., go the other way.
        * src/keybindings.c (handle_activate_menu): In RTL locales,
        pop up the menu on the right-hand side when the menu keystroke
        is pressed.
        * src/fixedtip.c (meta_fixed_tip_show): right-justify tooltips
        in RTL locales.
        * src/menu.c (popup_position_func): popup menus in RTL locales
        are flush with the right-hand side of the window where possible.
        * src/frames.c (show_tip_now, meta_frames_button_press_event):
        tooltips are aligned with the right-hand side of buttons in
        RTL locales.
        * src/ui.[ch] (meta_ui_get_direction, enum MetaUIDirection):
        New content.
        * src/window.c (meta_window_show_menu): "move left" appears above
        "move right" in the window menu for LTR locales, and vice versa
        for RTL locales.

        This is all to close bug #387893.


svn path=/trunk/; revision=3222
2007-05-25 14:36:12 +00:00
Linus Torvalds
1724fa36f1 Add code to configure what happens when the titlebar is right or middle
2007-04-24  Linus Torvalds  <torvalds@woody.linux-foundation.org>

        * src/prefs.[ch] (init_action_meta_prefs, meta_prefs_init,
        action_change_titlebar, change_notify, update_action_titlebar,
        meta_preference_to_string): Add code to configure what happens
        when the titlebar is right or middle clicked as well as
        double clicked.

                                                                                                                                             

svn path=/trunk/; revision=3214
2007-04-25 03:30:17 +00:00
Elijah Newren
18c9101a4f Fix some uninitialized memory usage errors. #427385
2007-04-23  Elijah Newren  <newren gmail com>

        Fix some uninitialized memory usage errors.  #427385

        * src/frame.c (meta_window_ensure_frame):
        * src/frames.c (meta_frames_manage_window):
        Do not try to set the window background in
        meta_frames_manage_window() since the frame window is not yet
        created and not yet registered with the corresponding MetaWindow.
        Do it inside meta_window_ensure_frame() instead.

svn path=/trunk/; revision=3208
2007-04-23 22:44:01 +00:00
Elijah Newren
e66919510f Fix some fallout from #426519; update user_rect for all position changes
2007-04-17  Elijah Newren  <newren gmail com>

	Fix some fallout from #426519; update user_rect for all position
	changes prior to the window being marked as placed.  Prevents
	emacs in particular from flickering on start and always being
	shoved to the upper-left corner.

	* src/window.c (meta_window_move_resize_internal):
	Record position in user_rect if the window is not yet marked as
	placed too

	* src/window.c (struct MetaWindow, meta_window_new_with_attrs,
	  meta_window_move_resize_internal):
	Remove window->user_has_move_resized; it's not needed or used
	anymore.

	* src/window.[ch] (meta_window_get_user_position):
	Remove this function as it is no longer needed or used.

svn path=/trunk/; revision=3203
2007-04-18 05:43:42 +00:00
Elijah Newren
966e36b9f6 Prevent metacity from "forgetting" which machine a window is on. #418552
2007-04-16  Elijah Newren  <newren gmail com>

	Prevent metacity from "forgetting" which machine a window is on.
	#418552

	* src/window.c (meta_window_new_with_attrs): reorder the property
	loading so that we know the wm_client_machine when we load the
	name of the window and can modify the window name accordingly.

svn path=/trunk/; revision=3201
2007-04-16 16:23:12 +00:00
Elijah Newren
3f7d729978 Preserve stacking order across restarts.
2007-04-15  Elijah Newren  <newren gmail com>

	Preserve stacking order across restarts.

	* src/display.c (meta_display_unmanage_windows_for_screen):
	unmap windows in stacking order so that stacking is preserved upon
	shutdown

	* src/display.[ch] (meta_display_stack_cmp):
	* src/session.c (stack_cmp, save_state):
	rename stack_cmp() -> meta_display_stack_cmp() and move it to a
	different function so that it can be used in both
	session.c:save_state() and
	meta_display_unmanage_windows_for_screen()

svn path=/trunk/; revision=3197
2007-04-16 04:57:32 +00:00
Elijah Newren
6de7271ab6 Remove incorrect usage of window.h from menu.c. See #426791 & #382962.
2007-04-15  Elijah Newren  <newren gmail com>

	Remove incorrect usage of window.h from menu.c.  See #426791 &
	#382962.

	* src/menu.c (enum MetaMenuItemType, variable menuitems,
	  meta_menu_item_new):
	cleanup: add a MENU_ITEM_RADIOBUTTON for the sticky stuff

	* src/menu.c (variable menuitems):
	* src/core.c (meta_core_get_menu_accelerator):
	* src/window.c (menu_callback, meta_window_show_menu):
	* src/common.h (enum MetaMenuOp):
	reinstate META_MENU_OP_UNABOVE

	* src/menu.c (meta_window_menu_new):
	remove hacks (using inappropriate data) for STICK/UNSTICK/ABOVE
	and clean it up while just setting STICK/UNSTICK activeness as
	necessary

	* src/menu.[ch] (meta_window_menu_new):
	* src/ui.[ch] (meta_ui_window_menu_new):
	make the active_workspace parameter an unsigned long

2007-04-15  Bruno Boaventura <brunobol@gnome.org>

	* src/menu.c (meta_window_menu_new): don't show the current
	workspace as a possible workspace to switch to.  Fixes #426791.

svn path=/trunk/; revision=3196
2007-04-16 04:48:14 +00:00
Elijah Newren
bc6996b171 do not auto-maximize windows larger than the workarea in only a single
2007-04-12  Elijah Newren  <newren gmail com>

	* src/place.c (meta_window_place): do not auto-maximize windows
	larger than the workarea in only a single direction.  Fixes
	#419810.

svn path=/trunk/; revision=3194
2007-04-12 22:25:25 +00:00
Elijah Newren
9ec6dbd5ca Make sure apps have correct info about their coordinates, even on unmap.
2007-04-11  Elijah Newren  <newren gmail com>

	Make sure apps have correct info about their coordinates, even on
	unmap.  Fixes temporary hang with libXt (XtVaSetValues setting x &
	y coordinates).  #399552.

	* src/frame.c (meta_window_destroy_frame): Add a comment noting
	that the current choice causes the need for a ConfigureNotify
	event

	* src/window.c (meta_window_free): Send a configure notify event
	due to our XReparentWindow coordinate choices on withdrawal,
	(unmaximize_window_before_freeing): no need to send a configure
	notify from here since it is always done in meta_window_free new,
	(send_configure_notify): have to special case the coordinates used
	when withdrawing the window

svn path=/trunk/; revision=3192
2007-04-12 04:02:57 +00:00
Thomas Thurman
2034a309e5 Workaround for a gdk bug which dies with BadAlloc if you try to allocate
2007-04-11  Thomas Thurman  <thomas@thurman.org.uk>

        Workaround for a gdk bug which dies with BadAlloc if you try
        to allocate an insanely huge rectangle for an insanely huge
        window. Fixes #399529.



svn path=/trunk/; revision=3191
2007-04-12 03:48:50 +00:00
Elijah Newren
7626f74b85 Advertise support of Above and Below operations (assuming the proposed
2007-04-11  Elijah Newren  <newren gmail com>

	Advertise support of Above and Below operations (assuming the
	proposed EWMH additions of _NET_WM_ACTION_(ABOVE|BELOW) will be
	accepted, otherwise these changes will have to be modified).  Part
	of #115247.

	* src/display.[ch] (meta_display_open, struct MetaDisplay):
	* src/screen.c (set_wm_check_hint):
	Add support for _NET_WM_ACTION_ABOVE and _NET_WM_ACTION_BELOW

	* src/window.c (set_allowed_actions_hints):
	add active_above and action_below

svn path=/trunk/; revision=3190
2007-04-11 17:15:54 +00:00
Elijah Newren
eb639a4650 make sure to set _NET_WM_ALLOWED_ACTIONS so that libwnck menus don't have
2007-04-10  Elijah Newren  <newren gmail com>

	* src/window.c (recalc_window_features): make sure to set
	_NET_WM_ALLOWED_ACTIONS so that libwnck menus don't have sensitive
	but ineffective menu items.  The "On Top" item is now buggy, but
	due to the fact that _NET_WM_ACTION_ABOVE is not yet defined in
	the EWMH.  Fixes #115247.

svn path=/trunk/; revision=3189
2007-04-11 02:37:30 +00:00
Elijah Newren
b8f89db4d1 Add support for _NET_MOVERESIZE_WINDOW. #344521.
2007-04-09  Elijah Newren  <newren gmail com>

	Add support for _NET_MOVERESIZE_WINDOW.  #344521.

	* src/display.c (handle_net_moveresize_window, event_callback):
	Remove handle_net_moveresize_window() and the call to it; this
	code was highly buggy, though to be fair it was never tested and
	had simply been put into the code in commented out form.

	* src/screen.c (set_supported_hint):
	add atom_net_moveresize_window

	* src/window.[ch]:
	(meta_window_configure_request, meta_window_move_resize_request):
	Split out the moving/resize part of the configure request and put
	it into meta_window_move_resize_request

	(meta_window_client_message):
	check for NET_MOVERESIZE_WINDOW messages and call
	meta_window_move_resize_request() with the appropriate parameters
	to handle them

	(meta_window_move_resize_internal):
	fix some of the big comment at this function -- it wasn't quite
	right, use the passed in gravity instead of
	window->size_hints.win_gravity when calling adjust_for_gravity()
	to make sure the correct adjustments are used.

	(meta_window_get_gravity_position,
	 meta_window_get_geometry, meta_window_move_resize_request):
	add a gravity parameter to meta_window_get_gravity_position and
	have it use that gravity instead of window->size_hints.win_gravity

svn path=/trunk/; revision=3186
2007-04-09 23:00:55 +00:00
Elijah Newren
ebfbef86a0 Remove grab_start_serial, which we expect to be an ancient attempt to
2007-04-08  Elijah Newren  <newren gmail com>

	Remove grab_start_serial, which we expect to be an ancient attempt
	to workaround sloppy/mouse focus bugs that have since been
	correctly fixed.  May fix some race conditions.  May cause nasty
	bugs in sloppy/mouse focus modes.  We'll find out soon enough...
	See #304430.

	* src/display.c (event_callback):
	remove event->xany.serial >= display->grab_start_serial in several
	event callback handlers

	* src/display.[ch] (struct _MetaDisplay, meta_display_begin_grab_op):
	* src/keybindings.c (do_choose_window, handle_workspace_switch):
	* src/frames.c (meta_frames_button_press_event):
	* src/core.[ch] (meta_core_begin_grab_op):
	* src/window.c (meta_window_client_message, meta_window_begin_grab_op):
	don't require an event_serial to be passed to
	meta_display_begin_grab_op () and don't record it anymore.

	* src/ui.c (struct _EventFunc, filter_func,
	  meta_ui_get_last_event_serial)
	* src/core.h (meta_ui_get_last_event_serial):
	remove meta_ui_get_last_event_serial() function (don't ask me why
	it was declared in core.h) and the last_even_serial field of
	_EventFunc

svn path=/trunk/; revision=3182
2007-04-09 05:49:57 +00:00
Elijah Newren
addf369006 Fix move/resize events in relation to combinations of ConfigureRequest and
2007-04-08  Elijah Newren  <newren gmail com>

	Fix move/resize events in relation to combinations of
	ConfigureRequest and WM_NORMAL_HINTS change notifications (plus a
	few code cleanups).  Fixes #426519.

	* src/window.c (meta_window_move_resize_now):
	move to the user_rect position, not some weird combination of rect
	and user_rect

	* src/window.c (meta_window_configure_request):
        set user_rect in response to ConfigureRequest events (after the
	ConfigureRequest values have been constrained) and add a big
	comment explaining this change, remove unused only_resize variable
	and irrelevant huge FIXME comment about it

	* src/window.[ch] (meta_window_get_client_root_coords):
	new function

	* src/display.c (meta_display_begin_grab_op):
	* src/keybindings.c (process_keyboard_move_grab):
	* src/window.c (meta_window_unmaximize,
	  meta_window_move_resize_internal, meta_window_begin_wireframe,
	  update_move, meta_window_refresh_resize_popup,
	  warp_grab_pointer)
	combine multi-step client rect root coord setting into a single
	function call to meta_window_get_client_root_coords()

svn path=/trunk/; revision=3181
2007-04-09 03:43:55 +00:00
Elijah Newren
0a8bdcdcb3 Add an (unbound by default) keybinding for setting spew marks in verbose
2007-04-07  Elijah Newren  <newren gmail com>

	* src/prefs.[ch] (screen_bindings array,
	  META_KEYBINDING_SET_SPEW_MARK definition):
	* src/keybindings.c (handle_spew_mark, screen_handlers array):
	Add an (unbound by default) keybinding for setting spew marks in
	verbose debugging logs.  I'm not sure why this was ever removed;
	I've wanted it so many times.

	* HACKING:
	valgrind wants --log-file not --logfile.

svn path=/trunk/; revision=3174
2007-04-07 22:16:35 +00:00
Elijah Newren
745906b7db Fix memory bug (invalid free) introduced in 2007-04-02 strut cleanup
2007-04-07  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_free): Fix memory bug (invalid free)
	introduced in 2007-04-02 strut cleanup commit.  Part of #427385.

svn path=/trunk/; revision=3173
2007-04-07 21:42:05 +00:00
Thomas Thurman
8fe344db51 if theme is invalid and therefore got freed, don't attempt to read from
2007-04-05  Thomas Thurman  <thomas@thurman.org.uk>

        * src/theme_parser.c: if theme is invalid and therefore got
        freed, don't attempt to read from it. Closes #423855.



svn path=/trunk/; revision=3172
2007-04-05 18:45:03 +00:00
Bastien Nocera
f32712937b Add new control-center key bindings definitions (Closes: #420145)
2007-04-05  Bastien Nocera  <hadess@hadess.net>

	* src/50-metacity-desktop-key.xml.in:
	* src/50-metacity-key.xml.in:
	* src/Makefile.am:
	Add new control-center key bindings definitions (Closes: #420145)

2007-04-05  Bastien Nocera  <hadess@hadess.net>

	* POTFILES.in: add the XML keys definitions to the list


svn path=/trunk/; revision=3170
2007-04-05 09:22:19 +00:00
Elijah Newren
dda3c2bee6 send synthetic configurenotify events also in response to MapRequest
2007-04-04  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_move_resize_internal): send synthetic
	configurenotify events also in response to MapRequest events when
	the window has a frame and the application specifies PPosition or
	UPosition hints.  I believe they are already sent for all other
	cases.  Should fix #322840.  Fixes the testcase at least.  :)

svn path=/trunk/; revision=3156
2007-04-04 23:52:21 +00:00
Elijah Newren
921661e91d Fix lots of little issues with min/max constraints and size increment
2004-04-04  Elijah Newren  <newren gmail com>

	Fix lots of little issues with min/max constraints and size
	increment constraints.  Fixes #329152, #418395, and possibly
	others.

	* src/window-props.c (meta_set_normal_hints):
	Do more checking to make sure application specified constraints
	are self-consistent, modifying the size_hints as necessary to
	achieve self-consistency.

	* src/constraints.c (setup_constraint_info): remove ugly
	copy-pasto, (constrain_size_increments): be careful that fixing
	violation of the constraints doesn't cause a violation of the
	minimum size constraints.

	* src/window.c (ensure_size_hints_satisfied): new function,
	(meta_window_unmaximize, meta_window_unmake_fullscreen): the
	saved_rect may no longer be valid (as in the case of #329152) so
	call ensure_size_hints_satisfied to fix it up.

	* doc/how-to-get-focus-right.txt: Some minor spacing and wording
	fixes completely unrelated to the rest of this commit

svn path=/trunk/; revision=3155
2007-04-04 21:54:56 +00:00
Elijah Newren
7a799b3a63 Only use saved_rect for determining the position to unmaximize to for the
2007-04-03  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_unmaximize):
	Only use saved_rect for determining the position to unmaximize to
	for the previously-maximized direction(s).  Fixes #355497.

svn path=/trunk/; revision=3154
2007-04-04 03:07:26 +00:00
Elijah Newren
9cae11fd9e _NET_ACTIVE_WINDOW is a single xwindow id, not two.
2007-04-03  Elijah Newren  <newren gmail com>

	* src/display.c (meta_display_update_active_window_hint):
	_NET_ACTIVE_WINDOW is a single xwindow id, not two.

svn path=/trunk/; revision=3152
2007-04-03 22:26:47 +00:00
Elijah Newren
da7d198757 turn mouse_mode off to prevent focus issues with the run application
2007-04-03  Elijah Newren  <newren gmail com>

	* src/keybindings.c (handle_panel_keybinding): turn mouse_mode off
	to prevent focus issues with the run application dialog.  Fixes
	#374752.

svn path=/trunk/; revision=3149
2007-04-03 20:19:12 +00:00
Elijah Newren
350225ea37 Avoid some crashes when dragging windows partially offscreen. Possible (or
2007-04-03  Elijah Newren  <newren gmail com>

	Avoid some crashes when dragging windows partially offscreen.
	Possible (or at least partial) fix for #353513.

	* src/edge-resistance.c (apply_edge_resistance): be more careful
	about calls to find_index_of_edge_near_position() returning
	possibly invalid indices.  Also, add a warning comment to
	find_index_of_edge_near_position().

svn path=/trunk/; revision=3147
2007-04-03 19:56:34 +00:00
Elijah Newren
ec51e41c62 Patch from Carlo Wood to do some miscellaneous code cleanups found while
2007-04-02  Elijah Newren  <newren gmail com>

	Patch from Carlo Wood to do some miscellaneous code cleanups found
	while working on #358311.

	* src/constraints.c (do_screen_and_xinerama_relative_constraints):
	nicer way of avoiding compilation warning

	* src/boxes.c (meta_rectangle_clamp_to_fit_into_region,
	  meta_rectangle_clip_to_region, meta_rectangle_shove_into_region):
	Much cleaner way of ignoring invalid boxes in comparisons

svn path=/trunk/; revision=3145
2007-04-03 18:40:00 +00:00
Elijah Newren
08f51fdf94 Patch from Carlo Wood to fix handling of unidirectional maximization and
2007-04-02  Elijah Newren  <newren gmail com>

	Patch from Carlo Wood to fix handling of unidirectional
	maximization and partial struts.  #358311.

	* src/constraints.c (constrain_maximization):
	determine target size for unidirectionally maximized windows by
	determining how far they can be maximized without hitting
	orthogonal struts.  Avoids weird "empty spaces".

	* src/boxes.[ch] (meta_rectangle_expand_to_avoiding_struts):
	new function

2007-04-02  Elijah Newren  <newren gmail com>

	Make the strut lists (stored in workspaces) record both the
	rectangle and the side that the strut is on.  Lots of code
	cleanups relating to struts.

	* src/boxes.h (struct MetaStrut):
	new struct for struts

	* src/window.[ch] (struct MetaStruts, struct MetaWindow,
	  meta_window_update_struts):
	overhaul to make window's struts remember their side as well as
	their rectangular location, and just use a list instead of several
	copies of near-identical code for left/right/top/bottom (allowing
	us to nuke MetaStruts struct as well)
	
	* src/testboxes.c (new_meta_strut, get_strut_list):
	* src/workspace.c (ensure_work_areas_validated):
	* src/boxes.c (meta_rectangle_get_minimal_spanning_set_for_region,
	  meta_rectangle_expand_to_avoiding_struts,
	  get_disjoint_strut_rect_list_in_region, fix_up_edges,
	  meta_rectangle_find_onscreen_edges,
	  meta_rectangle_find_nonintersected_xinerama_edges):
	modify to handle struts being rectangle + side instead of just rectangle

	* src/workspace.c (ensure_work_areas_validated):
	simplify strut list creation considerably given MetaWindow change,
	modify work_area computations to take advantage of region
	computations being done (makes the code shorter as well as more
	robust against pathological cases).

	* src/util.[ch] (meta_free_gslist_and_elements):
	new convenience function

	* src/common.h (enum MetaDirection):
	* src/edge-resistance.c (movement_towards_edge):
	* src/boxes.c (meta_rectangle_edge_aligns,
	  rectangle_and_edge_intersection, split_edge):
	Add more MetaDirection fields for convenience

	* src/boxes.h (enum FixedDirections):
	* src/constraints.c (setup_constraint_info, place_window_if_needed):
	add a FIXED_DIRECTION_NONE to the FixedDirections enum to make
	code more clear

svn path=/trunk/; revision=3144
2007-04-03 03:41:10 +00:00
Bruno Boaventura
0bb8bd4370 Fallback to NORMAL state after checking for the middle button. Fixes bug
2007-01-27  Bruno Boaventura <brunobol@gnome.org>

	* src/theme.c (kill_window_question): Fallback to NORMAL state after
	checking for the middle button. Fixes bug #419043.
	Patch from Benjamin Berg <benjamin@sipsolutions.net>.	


svn path=/trunk/; revision=3140
2007-04-01 15:31:24 +00:00
Elijah Newren
81e32cfa32 Clean up event mask handling and meta_create_offscreen_window, to prevent
2007-03-31  Elijah Newren  <newren gmail com>

	Clean up event mask handling and meta_create_offscreen_window, to
	prevent nasty metacity/gdk interactions causing hangs. See #354213.

	* src/screen.[ch] (meta_create_offscreen_window):
	* src/display.c (meta_display_open):
	* src/screen.c (meta_screen_new):
	Add a valuemask parameter to meta_create_offscreen_window
	
	* src/display.c (meta_display_open):
	make it explicit that we can't rely on PropertyNotify events for
	the leader_window due to nasty metacity/gdk interaction

	* src/session.c (warn_about_lame_clients_and_finish_interact):
	remove cut-and-paste code for timestamp pinging and just call
	meta_display_get_current_time_roundtrip

svn path=/trunk/; revision=3137
2007-03-31 23:34:36 +00:00
Elijah Newren
6e007baaa8 Add support for _NET_WM_USER_TIME_WINDOW in order to cut down on context
2007-03-30  Elijah Newren  <newren gmail com>

	Add support for _NET_WM_USER_TIME_WINDOW in order to cut down on
	context switches.

	* src/display.c (meta_display_open):
	* src/display.h (struct _MetaDisplay):
	* src/screen.c (set_supported_hint):
	new atom

	* src/display.c (meta_display_open,
	  meta_display_get_current_time_roundtrip):
	* src/display.h (struct _MetaDisplay):
	create a dedicated timestamp pinging window instead of reusing
	display->leader_window

	* src/display.c (event_callback):
	* src/window-props.c (reload_net_wm_user_time_window):
	* src/window.c (meta_window_new_with_attrs, meta_window_free,
	  process_property_notify):
	* src/window.h (struct _MetaWindow):
	monitor property notify events on _NET_WM_USER_TIME_WINDOW windows too
	
	* src/window-props.[ch]:
	new meta_window_reload_propert(y|ies)_from_xwindow() functions

	* src/window-props.[ch]
	  (init_net_wm_user_time_window, reload_net_wm_user_time_window,
	  meta_display_init_window_prop_hooks):
	* src/window.c (meta_window_new_with_attrs):
	new hooks to handle new atom

svn path=/trunk/; revision=3134
2007-03-31 05:19:41 +00:00
Josselin Mouette
44b86d468e if previous client ID was supplied, use it in filename. use --sm-client-id
2007-03-26  Josselin Mouette  <joss@malsain.org>

        * src/session.c (meta_session_init): if previous client ID
        was supplied, use it in filename.
        * src/session.c (set_clone_restart_commands): use --sm-client-id
        in command line to restore session, not original file name.
        * src/session.c (regenerate_save_file): generate filename using
        client ID and not original file name.
        * src/session.c (base_save_file): removed function.
        Closes GNOME 407981, Debian 391287, Debian 315169.


svn path=/trunk/; revision=3125
2007-03-26 21:38:19 +00:00
Arthur Taylor
11a90c53ed adjusted the rounded corners so that they fit nicely with the arcs around
2007-03-20  Arthur Taylor  <theycallhimart@gmail.com>

        * src/frames.c (meta_frames_apply_shapes): adjusted the rounded
          corners so that they fit nicely with the arcs around them.
          Fixes #399373.
                                                                                                                                           

svn path=/trunk/; revision=3120
2007-03-21 02:22:10 +00:00
Kjartan Maraas
88b91199d2 Remove #include <pango/pangox.h> since it's apparently not installed
2007-03-17  Kjartan Maraas  <kmaraas@gnome.org>

	* src/ui.c: Remove #include <pango/pangox.h> since it's
	apparently not installed anymore. Builds just fine without it too.

svn path=/trunk/; revision=3119
2007-03-17 08:40:02 +00:00
Charlie Brej
c7cb503003 add action_{middle|right}_click_titlebar. Closes #408903.
2007-03-10  Charlie Brej  <cbrej@cs.man.ac.uk>

        * src/metacity.schemas.in: add action_{middle|right}_click_titlebar.
        Closes #408903.



svn path=/trunk/; revision=3107
2007-03-11 02:39:07 +00:00
Linus Torvalds
6ab8fb150f honour preferences. new functions.
2007-03-09  Linus Torvalds  <torvalds@woody.linux-foundation.org>

        * src/frames.c (meta_frame_middle_click_event,
        meta_frame_right_click_event): honour preferences.
        * src/prefs.[ch] (meta_prefs_get_action_middle_click_titlebar,
        meta_prefs_get_action_right_click_titlebar): new functions.


svn path=/trunk/; revision=3102
2007-03-10 01:15:14 +00:00
Linus Torvalds
4e478159b6 renamed from MetaActionDoubleClickTitleBar; added _LOWER and _MENU.
2007-02-17  Linus Torvalds  <torvalds@woody.linux-foundation.org>

        * src/common.h (MetaActionTitleBar): renamed from
        MetaActionDoubleClickTitleBar; added _LOWER and _MENU.
        * src/frames.c (meta_frame_titlebar_event): renamed
        enums as above; added code to handle _LOWER and _MENU,
        which is moved in from meta_frame_{middle|right}_click_event.
        * src/frames.c (meta_frame_middle_click_event,
        meta_frame_right_click_event): rewrote in terms of
        meta_frame_titlebar_event.
        * src/prefs.c: removed "DoubleClick" from names as above.
        * src/prefs.c (action_titlebar_from_string): added cases
        for "lower" and "menu".
        Fixes #408902.


svn path=/trunk/; revision=3062
2007-02-17 21:34:00 +00:00
Linus Torvalds
85e43a402f Split out code for different kinds of click into separate functions. Fixes
2007-02-17  Linus Torvalds  <torvalds@woody.linux-foundation.org>

        * src/frames.c (meta_frames_button_press_event): Split out
        code for different kinds of click into separate functions.
        Fixes #408899.
        * src/frames.c (meta_frame_titlebar_event,
         meta_frame_double_click_event, meta_frame_middle_click_event,
         meta_frame_right_click_event): new functions.



svn path=/trunk/; revision=3061
2007-02-17 21:15:59 +00:00
Bruno Boaventura
e9f578b511 Change dialog icon because gnome-icon-theme have no more
2007-01-27  Bruno Boaventura <brunobol@gnome.org>

        * src/metacity-dialog.c (kill_window_question): Change dialog
        icon because gnome-icon-theme have no more "panel-force-quit".
        Patch from Jaap A. Haitsma <jaap@haitsma.org>.


svn path=/trunk/; revision=3050
2007-01-27 04:18:15 +00:00
Thomas James Alexander Thurman
5d9ccfac37 Removed #ifdef SPIFFY_COMPOSITOR throughout the file. Replaced with check
* src/compositor.c (meta_compositor_new): Removed
        #ifdef SPIFFY_COMPOSITOR throughout the file. Replaced with check 
        for environment variable METACITY_BLING, which may be temporary.


svn path=/trunk/; revision=3042
2007-01-16 17:02:39 +00:00
Bruno Boaventura
50c5bf4bf6 Unmaximize button must keep preesed appearence when clicked (hold down),
2007-01-13  Bruno Boaventura  <brunobol@gnome.org>

        * src/frames.c (meta_frames_motion_notify_event): Unmaximize
        button must keep preesed appearence when clicked (hold down),
        move off, and back over the button. Fixes #395560. Patch from
        Mad Alex <madalexonline@yahoo.co.uk>.


svn path=/trunk/; revision=3040
2007-01-13 13:27:20 +00:00
Thomas James Alexander Thurman
4becc1e631 Remove double unref of stacker object. Fixes #387761.
* src/c-screen.c (meta_comp_screen_redirect): Remove double unref
        of stacker object. Fixes #387761.


svn path=/trunk/; revision=3036
2007-01-02 14:09:45 +00:00
Bruno Boaventura
5ca9f43752 Move "On Top" option in menu. Fix #382962.
2006-12-27  Bruno Boaventura  <brunoboaventura@gmail.com>

        Move "On Top" option in menu. Fix #382962.

        * src/common.h, src/core.c: Remove META_MENU_OP_UNABOVE.
        * src/menu.c: remove unabove menu item and put above item
        next "Always on Visible Viewport".
        * src/window.c: remove handles of META_MENU_OP_UNABOVE.
2006-12-27 15:51:49 +00:00
Thomas James Alexander Thurman
5080b8fefb Disabled bling for now; added function for handling CirculateNotify
* src/compositor.c: Disabled bling for now; added function for
        handling CirculateNotify XEvent; some commenting.
        * src/compositor.h, src/c-window.c: fix function prototype visibility.
2006-12-21 05:12:34 +00:00
Thomas James Alexander Thurman
ea137d35f3 Sanity check to avoid dereferencing a null pointer.
* src/compositor.c (do_effect): Sanity check to avoid dereferencing
        a null pointer.
2006-12-12 18:30:27 +00:00
Christof Krüger
ceb54162b3 Fix flickering about when dragging maximised windows between xineramas.
2006-12-05  Christof Krüger  <mail@pop2wap.net>

        * src/window.c (update_move): Fix flickering about when dragging
        maximised windows between xineramas. Closes #358715.
2006-12-06 01:26:30 +00:00
Federico Mena Quintero
caf43a123f Fix http://bugzilla.gnome.org/show_bug.cgi?id=381127:
2006-12-03  Federico Mena Quintero  <federico@novell.com>

	Fix http://bugzilla.gnome.org/show_bug.cgi?id=381127:

	* src/window.c (idle_calc_showing): Grab the server while the
	windows are being shuffled.  First show the windows to be shown,
	and then hide the windows to be hidden, in order to minimize
	the number of expose events.
2006-12-03 20:05:23 +00:00
Bruno Boaventura
a3e309bab8 2006-11-15 Björn Lindqvist <bjourne@gmail.com>
2006-11-15  Bruno Boaventura  <brunoboaventura@gmail.com>
2006-11-15  Björn Lindqvist   <bjourne@gmail.com>

        * src/menu.c: added MetaMenuItemType enum; added it
        to MenuItem; added values of this type to menuitems
        array.
        * src/menu.c (menu_item_new): rewrite to take a MenuItem
        instead of a set of parameters describing the menu item.
        * src/menu.c (meta_window_menu_new): use proper checkboxes
        or radio buttons on the window menu.
        * src/window.c (meta_window_show_menu): unstick and stick
        are always shown.
2006-11-15 13:16:32 +00:00
Priit Laes
81256ebe48 remove deprecated gtk stuff.
2006-11-05  Priit Laes  <amd@store20.com>

        * src/main.c, src/ui.c: remove deprecated gtk stuff.

2006-11-05  Bruno Boaventura  <brunoboaventura@gmail.com>

        * src/theme.c, src/testgradient.c: remove deprecated gtk stuff.
2006-11-05 23:03:36 +00:00
Thomas James Alexander Thurman
8722c60a28 add missing spaces to string. Fixes #363355.
* src/metacity-dialog.c: add missing spaces to string. Fixes
        #363355.
2006-11-05 22:34:37 +00:00
Thomas James Alexander Thurman
8f09a12069 use g_strdup to allocate a string, not strdup. Fixes #363354.
* src/ui.c: use g_strdup to allocate a string, not strdup. Fixes
        #363354.
2006-11-05 22:32:01 +00:00
Justin Mason
c68c26b7f8 implement handle_move_to_{side|corner}_* to allow the user to flip a
2006-11-05  Justin Mason  <jm@jmason.org>

        * src/keybindings.c: implement handle_move_to_{side|corner}_* to
        allow the user to flip a window to the side or corner of the
        screen. Fixes #317884.
        * src/prefs.h: keybindings for the above.
        * src/metacity.schemas.in: keybindings for the above.
2006-11-05 22:23:44 +00:00
Thomas James Alexander Thurman
d419955ddc improved rounding of rounded corners. Fixes #360542, mostly.
* src/frames.c: improved rounding of rounded corners. Fixes #360542,
        mostly.
2006-11-05 21:20:10 +00:00
Dan Mick
191baa3c76 Fix strict focus mode by picking up on res_class. Fixes #361054, strict
2006-10-30  Dan Mick  <dan.mick@sun.com>

	* src/window.c: (__window_is_terminal): Fix strict focus
        mode by picking up on res_class. Fixes #361054, strict focus
        mode still not working; should look for res_class, not res_name
2006-10-29 20:30:18 +00:00
Carlo Wood
d79a571d0a Fix cases when titlebar is allowed offscreen and shouldn't be (and
2006-10-13  Carlo Wood <carlo@alinoe.com>

	Fix cases when titlebar is allowed offscreen and shouldn't be (and
	vice-versa).  #333995.

	* src/display.[ch] (struct _MetaDisplay): add grab_frame_action
	member

	* src/display.[ch] (meta_display_begin_grab_op):
	* src/window.[ch] (meta_window_begin_grab_op):
	* src/core.[ch] (meta_core_begin_grab_op):
	Add frame_action parameter (core & window versions pass it on to
	display)

	* src/display.c (event_callback):
	* src/window.c (meta_window_begin_grab_op,
	  meta_window_client_message, menu_callback):
	* frames.c (meta_frames_button_press_event):
	* keybindings.c (do_choose_window, handle_begin_move,
	  handle_begin_resize, handle_workspace_switch):
	Pass whether the action should be considered a 'frame_action',
	which will be used to determine whether to force the titlebar to
	remain onscreen, to meta_*_begin_grab_op

	* constraints.c (constrain_titlebar_visible):
	Replace previous ugly hack by using grab_frame_action (and whether
	the action is a user action) to determine whether to enforce the
	titlebar_visible constraint.
2006-10-13 00:28:34 +00:00
Elijah Newren
a34944d341 Patch from Bruno Boaventura to sync metacity workspace previews with
2006-10-10  Elijah Newren  <newren gmail com>

	* src/draw-workspace.c (draw_window, wnck_draw_workspace): Patch
	from Bruno Boaventura to sync metacity workspace previews with
	libwnck.  #341893
2006-10-10 18:19:32 +00:00
Thomas James Alexander Thurman
9da34955f7 removed hide_buttons. Closes #360498.
* src/themes/Crux/metacity-theme-2.xml: removed hide_buttons.
        Closes #360498.
2006-10-07 21:19:40 +00:00
Thomas James Alexander Thurman
ef1c6e9214 described new theme format.
* doc/theme-format.txt: described new theme format.

        * src/themes/Bright, src/themes/Crux: added version 2 themes.
2006-10-07 17:21:05 +00:00
Thomas James Alexander Thurman
90359a5346 Added "above" to the list of flags a frame can have, so that we know when
* common.h: Added "above" to the list of flags a frame can have, so
	that we know when to mark it as always on top.  Added six grab ops,
	one to do and one to undo each of the three new titlebar buttons
	(shade, above, stick).  Added six new button functions, similarly.
	(#96229)

        * frame.c (meta_frame_get_flags): If a frame has the WM_STATE_ABOVE X
         attribute, set META_FRAME_ABOVE in its flags.

        * frames.c (meta_frames_apply_shapes): Allow variable amounts of
         rounding. (#113162)

        * frames.c (show_tip_now, meta_frames_paint_to_drawable, control_rect,
	 get_control): extend handling of existing buttons to the
         3*2 new kinds of button. (#96229)

        * frames.c (meta_frames_button_press_event): translate clicks on the 3*2
         new kinds of button to the new grab ops. (#96229)

        * frames.c (meta_frames_button_release_event): implement the various
        actions for the 3*2 new kinds of button. (#96229)

        * frames.c (meta_frames_update_prelit_control,
         meta_frames_motion_notify_event): extend existing motion
         notifications for buttons to the 3*2 new kinds of button. (#96229)

        * frames.c (meta_frames_set_window_background): handle specified
         background colours and alpha transparency. (#151261)

        * frames.h (MetaFrameControl): New control types for the 3*2 new kinds
	 of button.  (#96229)

        * iconcache.[ch] (meta_read_icons): use theme's fallback icons if a
	 window has no icon; use metacity's fallback icons only if the theme
         does not provide any. (#11363)

        * iconcache.[ch] (meta_invalidate_default_icons (new function)): clear
         icon cache on windows using default icons, and update them. (#11363)

        * main.c (main): added \n to error message.

        * prefs.c (button_function_from_string): extend for 3 new button
	 types. (#96229)

        * prefs.c (button_opposite_function (new function)): return a button
         function's inverse (shade -> unshade, etc) (#96229)

        * prefs.c (update_button_layout): allocate space for a button's
	 inverse, if it has one. (#96229)

        * theme-parser.c (ParseState): add state for fallback icons (#11363)

        * theme-parser.c (ParseInfo): add format_version; remove
         menu_icon_* (#114305)

        * theme-parser.c (parse_positive_integer): add lookup for integer
	 constants (#331356)

        * theme-parser.c (parse_rounding (new function)): parse window
	 rounding amount (#113162)

        * theme-parser.c (parse_alpha): don't set error if the number can't
	 be parsed since it'll already be set; change tolerance in comparison
	 from 1e6 to 1e-6

        * theme-parser.c (parse_color (new function)): parse colour, including
	 possible constant lookup.

        * theme-parser.c (parse_toplevel_element): allow defining of various
	new kinds of constant; allow
	hide_buttons (#121639) and more detailed rounding attributes on
	<frame_geometry> (#113162); allow background and alpha attributes on
	<frame_style>; (#151261) remove support for <menu_icon> except as
	stub; (#114305) add support for loading stock images (#113465); add
        support for <fallback>. (#11363))

        * theme-parser.c (parse_draw_op_element): add from and to attribute
         for arcs. (#121603)

        * theme-parser.c (parse_style_element): add check for theme version
         supporting a button function. (#96229)

        * theme-parser.c (parse_style_set_element): add ability for shaded
	 windows to be resizable (#114304)

        * theme-parser.c (meta_theme_load): add theme versioning routine.

        * theme.c ( meta_frame_layout_get_borders): return rectangles for
	 the new 3*2 kinds of button, except where they're
         inapplicable. (#96229)

        * theme.c (meta_frame_layout_calc_geometry): don't format buttons on
	windows with no buttons (#121639); strip the 3*2 new kinds of button
	correctly (#96229); allow variable amounts of rounding (#113162).

        * theme.c (meta_frame_style_new): set alpha to 255 by
        default. (#151261)

        * theme.c (meta_frame_style_unref): free colour spec if
        allocated. (#151261)

        * theme.c (meta_frame_style_validate): it's only an error not to
        include a button if that button is valid in the current
        theme. (#96229)

        * theme.c (button_rect): return rectangles for the new 3*2 kinds
	of button. (#96229)

        * theme.c (meta_frame_style_set_unref): free differently resizable
	shaded styles. (#114304)

        * theme.c (get_style): look up differently resizable styles
        for shaded windows. (#114304)

        * theme.c (free_menu_ops (removed function), get_menu_icon
	 (removed function), meta_theme_draw_menu_icon (removed function),
         meta_menu_icon_type_from_string (removed function),
         meta_menu_icon_type_to_string (removed function),
         meta_theme_free, meta_theme_validate): removed menu icon code. (#114305)

        * theme.c (meta_theme_load_image): add size_of_theme_icons
	parameter. (#113465)

        * theme.c (meta_theme_define_color_constant (new function),
        meta_theme_lookup_color_constant (new function)): allow
        definition of colour constants. (#129747)

        * theme.c (meta_button_type_from_string, meta_button_type_to_string):
        add the 3*2 new kinds of button. (#96229)

        * theme.c (meta_theme_earliest_version_with_button (new function)):
        return the theme version each button was introduced in. (#96229)

        * theme.h ( MetaFrameLayout): add "hide_buttons" flag (#121639) and
	corner radiuses. (#113162)

        * theme.h (MetaFrameGeometry): add rectangles for the 3*2 new
	buttons. (#96229)

        * theme.h (MetaButtonType): the 3*2 new buttons. (#96229)

        * theme.h (MetaFrameStyle): add window_background_color and
        window_background_alpha so that we can specify background on a
        <frame_style>. (#151261)

        * theme.h (MetaFrameStyleSet): shaded_styles gets resize
	dimension. (#114304)

        * theme.h (MetaTheme): added format_version, color_constants
        hash, (#129747) fallback_icon and fallback_mini_icon, (#11363)
        and removed menu_icons. (#114305)

        * theme.h (META_THEME_ALLOWS (new macro)): return whether a theme
        supports a given feature. Also, several macros representing
        new features in v2.

        * ui.c (meta_ui_set_current_theme)): also invalidate default
        icons. (#11363)

        * window.[ch] (meta_window_update_icon_now)): became
	non-static. (#11363)
2006-10-07 16:56:47 +00:00
Elijah Newren
9e341dd4d8 Be nice to translators; remove unnecessary markup from strings marked for
2006-10-06  Elijah Newren  <newren gmail com>

	* src/metacity-dialog.c (kill_window_question): Be nice to
	translators; remove unnecessary markup from strings marked for
	translation (oops, I missed this in my review before previous
	commit)
2006-10-07 00:10:35 +00:00
Elijah Newren
2168cd3eb7 Patch from Bruno Boaventura to improve the "Force Quit" dialog. #121936
2006-10-06  Elijah Newren  <newren gmail com>

	* src/metacity-dialog.c (kill_window_question): Patch from Bruno
	Boaventura to improve the "Force Quit" dialog.  #121936
2006-10-06 22:02:48 +00:00
Elijah Newren
25910508ae Ignore edge resistance for size-increment windows when resizing with the
2006-10-02  Elijah Newren  <newren gmail com>

	Ignore edge resistance for size-increment windows when resizing
	with the keyboard.  #346782.

	* src/edge-resistance.c (apply_edge_resistance_to_each_side):
	ignore edge resistance for size-increment windows when resizing
	with the keyboard, (apply_edge_resistance_to_each_side,
	meta_window_edge_resistance_for_move,
	meta_window_edge_resistance_for_resize): pass a is_resize
	parameter as well
2006-10-02 22:48:40 +00:00
Elijah Newren
c4fa0d118c Don't require a push/pop trap around
2006-10-01  Elijah Newren  <newren gmail com>

	* src/display.c (meta_display_set_input_focus_window):
	* src/window.c (meta_window_focus):
	Don't require a push/pop trap around
	meta_display_set_input_focus_window(), but rather move the
	push/pop into that function surrounding the XSetInputFocus() call
	directly.  Follow up to #358514.
2006-10-02 04:08:33 +00:00
Elijah Newren
0201fcfc6c Stick an emacs comment directive at the beginning of all the code files so
2006-10-01  Elijah Newren  <newren gmail com>

	* src/*.[ch]: Stick an emacs comment directive at the beginning of
	all the code files so that people using emacs will be more likely
	to get coding style correct in their patches.  We still need a
	similar vi directive.  #358866
2006-10-01 22:30:10 +00:00
Elijah Newren
07e4cacf14 Patch from Carlo Wood to ensure that maximized and minimized properties
2006-10-01  Elijah Newren  <newren gmail com>

	Patch from Carlo Wood to ensure that maximized and minimized
	properties are maintained across restarts.  #358042.

	* src/constraints.c (place_window_if_needed): fix up partial
	maximization handling and add minimize_after_placement handling.

	* src/display.[ch] (struct MetaDisplay, meta_display_open): add a
	new display->display_opening flag to allow handling startup
	differently where needed.

	* src/window-props.c (reload_net_wm_state): handle
	_net_wm_state_hidden as well, setting
	window->minimize_after_placement appropriately

	* src/window.[ch] (struct MetaWindow, meta_window_new_with_attrs):
	add a window->minimize_after_placement field

	* src/window.c (meta_window_new_with_attrs): only unminimize the
	window and its transients if the display isn't being opened,
	(unmaximize_window_before_freeing): don't reset the state unless
	the window is becoming withdrawn, if the screen is being closed be
	sure to save the unmaximized state of the window so the next
	window manager can restore it
2006-10-01 21:59:09 +00:00
Elijah Newren
79eb53bd53 surround the XDeleteProperty() call with a
2006-10-01  Elijah Newren  <newren gmail com>

	* src/window-props.c (set_title_text): surround the
	XDeleteProperty() call with a
	meta_error_trap_push/meta_error_trap_pop pair to prevent a crash
	when closing a remote instance of gedit (and perhaps other apps).
	#358514.
2006-10-01 21:36:10 +00:00
Elijah Newren
b694312f1c Fix longstanding focus bug with mouse (not sloppy) focus mode with popup
2006-10-01  Elijah Newren  <newren gmail com>

	Fix longstanding focus bug with mouse (not sloppy) focus mode with
	popup override-redirect windows, particularly mozilla and
	firefox's location bar autocompletion.  #357695.

	* src/display.c (event_callback -- EnterNotify & LeaveNotify events):
	for mouse focus, defocus the focused window when the mouse enters
	the desktop window rather than when the mouse leaves the focused
	window.

	* doc/how-to-get-focus-right.txt:
	update for the slightly nuanced definition of mouse focus (people
	without a DESKTOP window like nautilus get sloppy focus behavior
	now)
2006-10-01 18:10:24 +00:00
Elijah Newren
b01408f358 Patch from Bruno Boaventura to add notes to remind translators to keep
2006-09-27  Elijah Newren  <newren gmail com>

	* src/menu.c (var menuitems): Patch from Bruno Boaventura to add
	notes to remind translators to keep translations in sync with
	libwnck.  #355620.
2006-09-28 00:32:23 +00:00
Elijah Newren
569ff8a34c Patch from Jens Granseuer to fix c89 cleanness, again. #356631.
2006-09-18  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_show): Patch from Jens Granseuer to
	fix c89 cleanness, again.  #356631.
2006-09-18 22:00:57 +00:00
Elijah Newren
2d73af1530 Ignore maximum size hints when maximizing. Should fix #327543 (see comment
2006-09-18  Elijah Newren  <newren gmail com>

	* src/constraints.c (constrain_maximization): Ignore maximum size
	hints when maximizing.  Should fix #327543 (see comment 4 and comment
	5).
2006-09-18 21:08:46 +00:00
Elijah Newren
470dc30174 avoid a compilation warning by making sure to return something. #348067
2006-09-18  Elijah Newren  <newren gmail com>

	* src/ui.c (filter_func): avoid a compilation warning by making
	sure to return something.  #348067
2006-09-18 20:27:26 +00:00
Elijah Newren
5c587726ae Partial audit to fix timestamp usage. One step towards fixing #355180; see
2006-09-18  Elijah Newren  <newren gmail com>

	Partial audit to fix timestamp usage.  One step towards fixing
	#355180; see important comments in that bug.

	* src/core.[ch] (meta_core_unshade, meta_core_shade):
	* src/delete.c (meta_window_present_delete_dialog,
	  delete_ping_timeout_func):
	* src/display.[ch] (meta_display_open, meta_display_close,
	  event_callback, meta_display_begin_grab_op,
	  process_selection_clear, meta_display_unmanage_screen,
	  meta_display_unmanage_windows_for_screen):
	* src/frames.c (meta_frames_button_press_event):
	* src/keybindings.c (handle_toggle_shade):
	* src/main.c (main):
	* src/screen.[ch] (update_num_workspaces, meta_screen_new,
	  meta_screen_free, prefs_changed_callback):
	* src/window.[ch] (meta_window_free, finish_minimize,
	  implement_showing, meta_window_show, meta_window_maximize,
	  meta_window_make_fullscreen_internal,
	  meta_window_unmake_fullscreen, meta_window_shade,
	  meta_window_unshade, window_activate, send_sync_request,
	  meta_window_client_message, menu_callback,
	  meta_window_update_keyboard_resize):
	Remove usage of CurrentTime, meta_display_get_current_time() and
	meta_display_get_current_time_roundtrip() where possible, or
	document why it isn't possible, or at very least add a FIXME with
	some explanation of my laziness and what needs to be done.
2006-09-18 17:27:24 +00:00
Elijah Newren
87100b64d9 Patch from Maik Beckmann to remove compilation warnings. Fixes #355876.
2006-09-18  Elijah Newren  <newren gmail com>

	* src/spring-model.c (on_end_move, model_is_calm): Patch from Maik
	Beckmann to remove compilation warnings.  Fixes #355876.
2006-09-18 16:31:25 +00:00
Elijah Newren
8144a962e7 Patch from Thomas Andersen to make windows be stacked correctly before
2006-09-13  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_show): Patch from Thomas Andersen to
	make windows be stacked correctly before showing them, to prevent
	flicker with focus stealing prevention.  #332385.
2006-09-13 22:21:19 +00:00
Elijah Newren
3b0478776d Fix issues on 64-bit machines with timestamps by using guint32 (like gtk+
2006-09-13  Elijah Newren  <newren gmail com>

	* src/common.h (MetaWindowMenuFunc):
	* src/core.[ch] (meta_core_user_lower_and_unfocus,
	  meta_core_user_focus, meta_core_show_window_menu,
	  meta_core_begin_grab_op, meta_core_end_grab_op):
	* src/delete.c (delete_ping_reply_func, delete_ping_timeout_func,
	  meta_window_delete):
	* src/display.[ch] (struct MetaDisplay, struct MetaPingData,
	  sanity_check_timestamps, meta_display_open, event_callback,
	  meta_spew_event, meta_display_set_grab_op_cursor,
	  meta_display_begin_grab_op, meta_display_end_grab_op,
	  meta_display_ping_timeout, meta_display_ping_window,
	  process_pong_message, timestamp_too_old,
	  meta_display_set_input_focus_window):
	* src/keybindings.[ch] (grab_keyboard, ungrab_keyboard,
	  meta_screen_grab_all_keys, meta_window_grab_all_keys,
	  meta_window_ungrab_all_keys, error_on_generic_command,
	  error_on_command, error_on_terminal_command):
	* src/metacity-dialog.c (on_realize, warn_about_no_sm_support,
	  error_about_command, main):
	* src/screen.[ch] (struct _MetaScreen, meta_screen_new,
	  meta_screen_show_desktop, meta_screen_apply_startup_properties):
	* src/session.c (warn_about_lame_clients_and_finish_interact):
	* src/window.[ch] (struct _MetaWindow,
	  intervening_user_event_occurred, window_activate,
	  meta_window_delete, meta_window_focus,
	  meta_window_send_icccm_message, meta_window_client_message,
	  menu_callback, meta_window_show_menu, struct EventScannerData,
	  check_use_this_motion_notify, meta_window_begin_grab_op,
	  meta_window_set_user_time):
	* src/workspace.[ch] (focus_ancestor_or_mru_window,
	  meta_workspace_activate_with_focus, meta_workspace_activate,
	  meta_workspace_focus_default_window,
	  focus_ancestor_or_mru_window):
	Fix issues on 64-bit machines with timestamps by using guint32
	(like gtk+ does) instead of Time.  #348305
2006-09-13 16:32:33 +00:00
Elijah Newren
3fac671fc8 patch from Bruno Boaventura de Oliveira to fix a compiler warning about
2006-09-12  Elijah Newren  <newren gmail com>

	* src/theme.c (meta_gtk_arrow_from_string,
	meta_gtk_arrow_to_string): patch from Bruno Boaventura de Oliveira
	to fix a compiler warning about not handling GTK_ARRROW_NONE.
	#355490.
2006-09-13 03:14:16 +00:00
Elijah Newren
199e2b6988 Patch from Bruno Boaventura de Oliveira Lacerda to fix warnings about
2006-09-11  Elijah Newren  <newren gmail com>

	* src/compositor.c: Patch from Bruno Boaventura de Oliveira
	Lacerda to fix warnings about unused function and global var.
	#355489.
2006-09-13 01:14:03 +00:00
Elijah Newren
189c8b9b11 Fix build when XKB not found. #354211
2006-09-09  Elijah Newren  <newren gmail com>

	* src/display.c (meta_display_open): Fix build when XKB not found.
	#354211
2006-09-10 04:29:14 +00:00
Elijah Newren
555d7dc90c Avoid a stuck grab, preventing focus from being transferred between
2006-09-09  Elijah Newren  <newren gmail com>

	Avoid a stuck grab, preventing focus from being transferred
	between windows.  Thanks to Fryderyk Dziarmagowski for steps to
	reproduce.  Fixes at least part of #354422.

	* src/display.c (meta_display_begin_grab_op,
	meta_display_end_grab_op): pass timestamp to
	meta_screen_ungrab_all_keys, meta_screen_ungrab_all_keys, and
	meta_window_ungrab_all_keys

	* src/keybindings.[ch] (grab_keyboard, ungrab_keyboard): add a
	timestamp parameter and remove call to
	meta_display_get_current_time(), (meta_screen_grab_all_keys,
	meta_screen_ungrab_all_keys, meta_window_ungrab_all_keys): add a
	timestamp parameter and pass it on to grab_keyboard and
	ungrab_keyboard
2006-09-09 20:19:56 +00:00
Elijah Newren
b62aba4401 make sure windows returning from fullscreen mode are constrained to be
2006-09-07  Elijah Newren  <newren gmail com>

	* src/constraints.c (update_onscreen_requirements): make sure
	windows returning from fullscreen mode are constrained to be
	"onscreen"; fixes #353699.
2006-09-07 23:05:00 +00:00
Colin Watson
3800dac492 Clear window->xtransient_for after emitting the invalid window warning.
2006-08-30  Colin Watson  <cjwatson@ubuntu.com>

	* src/window-props.c (reload_transient_for): Clear
	window->xtransient_for after emitting the invalid window warning.
	#353540
2006-09-07 23:00:27 +00:00
Elijah Newren
bba4df7187 Patch from Bruno Boaventura de Oliveira Lacerda to replace
2006-09-07  Elijah Newren  <newren gmail com>

	* src/metacity-dialog.c: Patch from Bruno Boaventura de Oliveira
	Lacerda to replace copy_of_gdk_x11_window_set_user_time() with
	gdk_x11_window_set_user_time().  We've long since adopted gtk+ >=
	2.6 as a dependency.  #352293
2006-09-07 22:57:36 +00:00
Elijah Newren
7a68a53322 Patch from Jens Granseuer to fix the build with c89/gcc 2.95.
2006-08-22  Elijah Newren  <newren gmail com>

        * src/metacity-dialog.c (main): Patch from Jens Granseuer to fix
        the build with c89/gcc 2.95.
2006-08-22 17:29:36 +00:00
Elijah Newren
18107f5f36 Patch from Thomas Andersen to fix metacity-dialog handling of arguments.
2006-08-21  Elijah Newren  <newren gmail com>

	Patch from Thomas Andersen to fix metacity-dialog handling of
	arguments.  #340690

	* src/metacity-dialog.c (main): replace hackish argument parsing
	with GOption parsing.  Much nicer.  :)
2006-08-21 19:16:08 +00:00
Elijah Newren
88b9efd0b7 Patch from Ed Catmur to fix keybindings with hex-values (coming from
2006-08-21  Elijah Newren  <newren gmail com>

	Patch from Ed Catmur to fix keybindings with hex-values (coming
	from special extended keyboard keys).  #140448.

	* src/keybindings.c (struct _MetaKeyBinding): change keycode from
	KeyCode to unsigned int (comment from Elijah: why???),
	(reload_keycodes): only grab keysyms for keybindings that have
	them, (count_bindings, rebuild_binding_table): bindings can be
	valid either due to a valid keysym or a valid keycode,
	(display_get_keybinding_action, meta_change_keygrab,
	process_tab_grab, process_workspace_switch_grab): handle keycode
	as well as keysym

	* src/prefs.[ch] (struct MetaKeyCombo, update_binding,
	update_list_binding): handle keycode as well as keysym

	* src/ui.[ch] (meta_ui_accelerator_parse): new function special
	cases strings of the form "0x[0-9a-fA-F]+" and otherwise calling
	gtk_accelerator_parse(), (meta_ui_parse_accelerator,
	meta_ui_parse_modifier): call meta_ui_accelerator_parse instead of
	gtk_accelerator_parse.
2006-08-21 19:06:26 +00:00
Elijah Newren
7489dbc34e Allow drags & resizes to be reverted by hitting escape. Based on patch
2006-08-21  Elijah Newren  <newren gmail com>

	Allow drags & resizes to be reverted by hitting escape.  Based on
	patch from Thomas Andersen.  #126497.

	* src/display.c (grab_op_is_mouse_only): new function,
	(meta_display_begin_grab_op): grab the keyboard when moving or
	resizing too so that we can get escape keypresses

	* src/display.h (struct _MetaDisplay): add a comment to remind
	that grab_was_cancelled is only used in wireframe mode

	* src/keybindings.[ch] (process_mouse_move_resize_grab): add new
	function for handling keypresses during mouse-only moving and
	resizing, (meta_window_grab_all_keys): add a timestamp parameter
	and pass it to meta_window_focus(),
	(meta_display_process_key_event): make sure
	process_mouse_move_resize_grab() gets called when needed,
	(process_keyboard_move_grab, process_keyboard_resize_grab):
	rearrange some code slightly and improve the comments to make it
	more readable
2006-08-21 18:38:21 +00:00
Elijah Newren
4c96afba71 Fix several bugs with handling of fullscreen windows, causing them to not
2006-08-21  Elijah Newren  <newren gmail com>

	Fix several bugs with handling of fullscreen windows, causing them
	to not actually be fullscreen.  #343115 (and also #346927,
	#350547, #351643, the recent additional WINE-related issue
	mentioned on the mailing list, and probably others...)

	* src/constraints.c (setup_constraint_info): if a window tries to
	resize to fullscreen-size and it has a fullscreen function but
	isn't actually marked as fullscreen then assist it by marking it
	as such, (constrain_fully_onscreen, constrain_titlebar_visible):
	ignore this constraint for fullscreen windows since such windows
	have a separate specialized constraint

	* src/stack.c (window_is_fullscreen_size, get_standalone_layer):
	remove the old window_is_fullscreen_size() hack for detecting
	windows to treat as fullscreen since it doesn't work well with the
	new constraints framework (i.e. we needed a slightly different
	hack)

	* src/window.[ch] (meta_window_new_with_addrs): shuffle the order
	of adding the window to the stack and moveresizing the window
	since moveresizing can cause stack changes if the window's initial
	size is fullscreen size, (meta_window_make_fullscreen,
	meta_window_make_fullscreen_internal): split
	meta_window_make_fullscreen() similar to meta_window_maximize() so
	that constraints can make use of it
2006-08-21 18:08:05 +00:00
Baptiste Mille-Mathias
7ea55a1e54 Update the pixmap to a new one which fit better with the other pixmaps of
2006-08-19 Baptiste Mille-Mathias <baptiste.millemathias@gmail.com>

        * src/stock_delete.png: Update the pixmap to a new one which
        fit better with the other pixmaps of the menu. First patch in
        metacity, woot! #345498
2006-08-20 19:44:52 +00:00
Elijah Newren
1f5130dc93 Patch from Willie Walker to restore the part of the patch that I should
2006-08-18  Elijah Newren  <newren gmail com>

	* src/tabpopup.c (meta_ui_tab_popup_new): Patch from Willie Walker
	to restore the part of the patch that I should not have reverted
	in #123372, in order to fix accessibility.  #350624
2006-08-18 17:32:58 +00:00
Elijah Newren
9051b70d40 Vytautus Liuolia totally rocks; he tested and debugged and tracked down
2006-08-07  Elijah Newren  <newren gmail com>

	* src/window.c (intervening_user_event_occurred): Vytautus Liuolia
	totally rocks; he tested and debugged and tracked down where we
	were using the focus window's net_wm_user_time even when it was
	uninitialized.  This may fix bug 311868 and others I've heard
	about (with Valknut, IIRC).  It definitely fixes the issues Vytas
	was seeing with his single instance library.  :-)
2006-08-09 18:32:30 +00:00
Elijah Newren
9fe845581b patch from Stéphane Rosi to allow moving maximized windows between
2006-08-07  Elijah Newren  <newren gmail com>

	* src/constraints.c (setup_constraint_info): patch from Stéphane
	Rosi to allow moving maximized windows between xineramas again.
	#323820
2006-08-08 00:36:04 +00:00
Elijah Newren
57bedc42a4 Add a constrain_titlebar_visible constraint; should fix both bug 333328
2006-08-07  Elijah Newren  <newren gmail com>

	Add a constrain_titlebar_visible constraint; should fix both bug
	333328 and bug 345522.  Not perfect (minor annoying snap pulling
	windows back onscreen, plus an ugly hack almost as bad as the old
	one), but tarballs are due in less than half an hour.  ;-)

	* src/boxes.[ch] (meta_rectangle_overlaps_with_region):
	new function

	* src/constraints.c (constrain_titlebar_visible): new function,
	  (enum ConstraintPriority, array all_constraints,
	  update_onscreen_requirements): various small changes to
	  accomodate the new function

	* src/edge-resistance.c: remove the infinite edge resistance,
	which was a big hack of a way to workaround the lack of a
	titlebar_visible constraint

	* src/window.[ch] (MetaWindow): new require_titlebar_visible
	bitfield, (meta_window_new_with_attrs): initialized here
2006-08-07 23:34:55 +00:00
Elijah Newren
acc6c97997 Patch from Chris Ball to not minimize in response to double clicks on the
2006-08-07  Elijah Newren  <newren gmail com>

	* src/frames.c (meta_frames_button_press_event): Patch from Chris
	Ball to not minimize in response to double clicks on the titlebar
	when minimiziation should not be allowed.  #347377
2006-08-07 22:06:25 +00:00
Elijah Newren
dcef402d68 Patch from Björn Lindqvist to fix button lighting with dragged clicks.
2006-08-07  Elijah Newren  <newren gmail com>

	Patch from Björn Lindqvist to fix button lighting with dragged
	clicks.  #321474.

	* src/frames.c (meta_frames_button_press_event): update the
	prelit_control, (meta_frames_button_release_event): some code
	refactoring to simplify things a bit, and make sure to update the
	prelit_control
2006-08-07 21:04:44 +00:00
Elijah Newren
d4973e8d1b Patch from Thomas Andersen to return the window to maximized state if the
2006-08-07  Elijah Newren  <newren gmail com>

	* src/keybindings.c (process_keyboard_move_grab): Patch from
	Thomas Andersen to return the window to maximized state if the
	window was "shaken loose" from maximized state during a resize but
	the resize is later aborted.  #346719.
2006-08-07 19:24:41 +00:00
Elijah Newren
1dd78e38ff Just a couple more details to explain why MetaButtonSpace is used 2006-08-07 18:20:37 +00:00
Elijah Newren
adc46fc970 Patch from Vytautas Liuolia to react to _NET_STARTUP_ID changes, as
2006-08-07  Elijah Newren  <newren gmail com>

	Patch from Vytautas Liuolia to react to _NET_STARTUP_ID changes,
	as proposed for the new startup-notification/EWMH spec.  #347515

	* src/window-props.c (reload_net_startup_id): be sure to act on
	the new id instead of just recording it

	* src/window.[ch] (window_activate, meta_window_activate,
	  meta_window_activate_with_workspace, meta_window_client_message):
	change window_activate() to take a workspace parameter instead of
	hardcoding to the current workspace, add
	meta_window_activate_with_workspace() function needed by
	reload_net_startup_id().
2006-08-07 18:08:27 +00:00
Thomas Thurman
cc5def1021 add new MetaButtonSpace struct; use it for close_rect, max_rect, min_rect
2006-08-07  Thomas Thurman  <thomas@thurman.org.uk>

        * src/frames.h: add new MetaButtonSpace struct; use it for
        close_rect, max_rect, min_rect and menu_rect.

        * src/frames.c (control_rect, get_control): modify to support
        the new fields in MetaButtonSpace.

        * src/theme.c (meta_frame_layout_get_borders, rect_for_function,
        meta_frame_layout_calc_geometry, button_rect): add support for
        the new fields in MetaButtonSpace.
2006-08-07 18:01:21 +00:00
Elijah Newren
77a331a1e3 patch from Dmitry Timoshkov to make sure window features get recalculated
2006-08-07  Elijah Newren  <newren gmail com>

	* src/screen.c (meta_screen_resize_func): patch from Dmitry
	Timoshkov to make sure window features get recalculated when the
	screen is resized via XRandR.  Part of #346927.
2006-08-07 17:18:33 +00:00
Elijah Newren
ae86fcd5b2 Fix ugly spacing 2006-08-04 22:33:42 +00:00
Elijah Newren
74d4768b8e Patch from Dmitry Timoshkov to fix the heuristic for determining if
2006-08-04  Elijah Newren  <newren gmail com>

	Patch from Dmitry Timoshkov to fix the heuristic for determining
	if windows can be made fullscreen (needed for WINE and possible
	also some legacy applications).  Part of #346927.

	* src/window.c (recalc_window_features): ignore window decoration
	when checking size for determing whether an unresizable window
	should be allowed ot be considered for fullscreening
2006-08-04 22:33:20 +00:00
Thomas James Alexander Thurman
e8fb842aad oops, forgot to add missing apostrophe. Punctuation is good. #336850. 2006-07-31 19:58:06 +00:00
Thomas James Alexander Thurman
76e4fd8a07 Make it so maximized windows do not have rounded corners. #336850. 2006-07-31 19:56:56 +00:00
Thomas James Alexander Thurman
7d8087f3e8 Fix another C89 vs. C99 issue. #347621. 2006-07-30 18:32:40 +00:00
Vincent Untz
419e063a24 also kill this
2006-07-26  Vincent Untz  <vuntz@gnome.org>

	* src/update-from-egg.sh: also kill this
2006-07-26 08:31:05 +00:00
Thomas James Alexander Thurman
05323ef21a #348633 2006-07-26 02:11:48 +00:00
Thomas James Alexander Thurman
6e4d6da191 Kill usage of libegg. #348633. 2006-07-26 02:06:17 +00:00
Björn Lindqvist
3d661f9bc7 Grab Alt+Shift+Button1 as well to partially fix operation ordering issues
2006-07-24  Björn Lindqvist  <bjourne@gmail.com>

	* src/display.c (meta_display_grab_window_buttons): Grab
	Alt+Shift+Button1 as well to partially fix operation ordering
	issues when trying to snap-move windows.  Part of #112478.
2006-07-24 17:15:32 +00:00
Thomas James Alexander Thurman
5e85bf7210 Avoid a case where a struct's fields might be updated after it was freed.
* ui.[ch] (filter_func): Avoid a case where a struct's
fields might be updated after it was freed. #348067.
2006-07-22 01:45:21 +00:00
Elijah Newren
bcbdfbe177 Patch from Aidan Delaney to tidy tabpopup.c by factoring out
2006-06-10  Elijah Newren  <newren gmail com>

	Patch from Aidan Delaney to tidy tabpopup.c by factoring out
	tab_entry_new().  #166890.

	* src/tabpopup.c (tab_entry_new): new function,
	(meta_ui_tab_popup_new): use tab_entry_new() to remove a big chunk
	of code, plus a few other small cleanups.
2006-06-11 02:44:55 +00:00
Søren Sandmann
4a06163710 Run an unminimize effect
Fri May 26 16:48:29 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/effects.c (meta_effect_run_unminimize): Run an unminimize effect

        * src/window.c (meta_window_unminimize): Store a "was_minimized"
        boolean in the window.

        * src/window.c (meta_window_show): If the window was minimized,
        run an unminimize animation.

        * src/c-window.c (meta_comp_window_run_unminimize): Add an
        unminimize animation, running the minimize one in reverse.
2006-05-26 20:50:34 +00:00
Søren Sandmann
83f82e5f28 Rename from _bounce() to _focus().
Fri May 26 14:55:07 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/c-window.c (meta_comp_window_run_focus): Rename from
        _bounce() to _focus().
2006-05-26 18:59:15 +00:00
Elijah Newren
db87abfb19 Fix a crash on exit/logout from assuming a compositor would always exist
2006-05-26  Elijah Newren  <newren gmail com>

	* src/display.c (meta_display_close): Fix a crash on exit/logout
	from assuming a compositor would always exist
2006-05-26 16:51:03 +00:00
Elijah Newren
a8f382019a Remove MetaWindowEdgePosition enum that isn't used anymore
2006-05-25  Elijah Newren  <newren gmail com>

	* src/place.h:
	* src/common.h:
	Remove MetaWindowEdgePosition enum that isn't used anymore
2006-05-26 00:16:52 +00:00
Søren Sandmann
a1324af018 Move duplicated window field outside the union
Thu May 25 15:56:43 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/effects.h (struct MetaEffect): Move duplicated window field
        outside the union

        * src/compositor.c: delete duplicated code to get at the window.
2006-05-25 19:59:20 +00:00
Søren Sandmann
ed37bcc258 Fix compilation in non-compositor case, by moving the stack functions into
Thu May 25 15:17:29 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/c-window.c: Fix compilation in non-compositor case, by
        moving the stack functions into the HAVE_COMPOSITOR defines.
2006-05-25 19:18:34 +00:00
Søren Sandmann
cb84bc3e1d Add a destroy notifier to the window.
Thu May 25 15:11:58 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/c-window.h: Add a destroy notifier to the window.

        * src/c-screen.c (on_window_destroy): New function.

        * src/c-screen.c (meta_comp_screen_add_window): Use the destroy
        notifier here.

        * src/c-window.c (generate_phases): New function. Simplify the
        minimize animation a lot by generating all the rectangle
        information into an array, then processing that.
2006-05-25 19:14:29 +00:00
Adam Jackson
76dff49a3e Bounce on window focus. 2006-05-25 14:40:50 +00:00
Søren Sandmann
6dfb56cc77 Make sure windows are kept on top of the panel during minimize.
Wed May 24 22:15:01 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/compositor.c (do_effect): Make sure windows are kept on top
        of the panel during minimize.
2006-05-25 02:15:49 +00:00
Søren Sandmann
ab1adf6c06 Shrink the window instead of explode it.
Wed May 24 21:17:59 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/compositor.c (do_effect): Shrink the window instead of
        explode it.

        * src/compositor.c (do_effect): don't read the frame if it is
        NULL.

        * src/c-window.c (meta_comp_window_run_minimize): Resurrect the
        shrinking minimize animation.

        * src/c-window.c (meta_comp_window_fade_in): Make dialogs 90%
        translucent.

        * src/c-window.c (update_fade): End at end_fade, not 1.0.
2006-05-25 01:19:03 +00:00
Søren Sandmann
3ae4e25162 Add a fade-in animation when windows are mapped.
Wed May 24 19:15:45 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/c-window.c (cancel_fade): Add a fade-in animation when
        windows are mapped.
2006-05-24 23:16:31 +00:00
Søren Sandmann
7535f0f58a New function
Wed May 24 16:37:11 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/c-window.c (private_metacity_window): New function

        * src/c-window.c (meta_comp_window_refresh_attrs): Map metacity's
        own windows directly.
2006-05-24 20:38:56 +00:00
Søren Sandmann
ca3236f76c Add a stack-freeze feature to CWindow.
Wed May 24 14:36:42 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/c-window.c (meta_comp_window_{freeze,thaw}_stack: Add a
        stack-freeze feature to CWindow.

        * src/c-screen.c (meta_comp_screen_restack): Don't restack if the
        window is frozen.
2006-05-24 18:38:54 +00:00
Søren Sandmann
7d2f0bf1fe Fix compilation in the non-composited case.
Wed May 24 13:09:49 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/c-window.c: Fix compilation in the non-composited case.
2006-05-24 17:10:31 +00:00
Søren Sandmann
3f4e194c8f return TRUE when the window is actually freed.
Wed May 24 12:57:32 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/c-window.c (meta_comp_window_free): return TRUE when the
        window is actually freed.

        * src/compositor.c (do_effect): Disable updating before exploding
        the window.

        * src/c-window.c: Make MetaCompWindow refcounted.

        * src/c-window.[ch]: New functions meta_comp_window_{show,hide}

        * src/c-screen.c (meta_comp_screen_unmap): Call
        meta_comp_window_hide() instead of directly setting the viewable
        status of the node.

        * src/c-screen.c (meta_comp_screen_remove_window): Only remove the
        window when it is actually freed.
2006-05-24 16:58:20 +00:00
Adam Jackson
22bc36eb3b Move shrink effect code from compositor.c to c-window.c. Stubs for
restore effect.  Notes in various places for where to hook in
other effects.
2006-05-23 21:42:34 +00:00
Søren Sandmann
7592470dab Also use explode when windows close.
Tue May 23 16:36:04 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/compositor.c (do_effect): Also use explode when windows close.

        * src/c-window.c (meta_comp_window_explode): Add refcounting to
        comp window, and use it in the explosion effect

        * src/effects.h (struct MetaEffect): Add new MetaCloseEffect.

        * src/display.c (event_callback): Run it from the UnmapNotify
        event handler.
2006-05-23 20:38:18 +00:00
Søren Sandmann
179987132c New function to send a sync request to newly mapped windows.
Tue May 23 15:23:58 2006  Søren Sandmann  <sandmann@redhat.com>

        * src/c-window.c (send_sync_request): New function to send a sync
        request to newly mapped windows.
        (on_request_alarm): Show the window here.
2006-05-23 19:25:29 +00:00
Adam Jackson
1e64cf4a8b Add more effect tokens. 2006-05-23 18:22:09 +00:00
Søren Sandmann
3e5b9776c6 Beginning of new layer that abstracts transition effects.
Mon May 22 17:35:52 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/effects.[ch]: Beginning of new layer that abstracts
	transition effects.

	New functions:
	(meta_push_effect_handler): Install an effect handler
	(meta_pop_effect_handler): Remove last effect handler
	(meta_effect_run_minimize): Create a minimize effect and pass it
	to the handler.
	(meta_effect_end): Called by handler when the effect is finished.

	* src/compositor.c: Move explosion code form there to src/c-window.c.

	* src/c-screen.c: Delete explosion related code.
2006-05-22 21:46:14 +00:00
Björn Lindqvist
cdb94d7e57 Make mouse cursor when moving windows become a hand. Fixes #337376.
2006-05-22  Björn Lindqvist  <bjourne@gmail.com>

	* common.h (enum MetaCursor):
	* display.c (meta_display_create_x_cursor): Make mouse cursor when
	moving windows become a hand. Fixes #337376.
2006-05-22 16:12:28 +00:00
Björn Lindqvist
3e394580da Fix a logic bug so that the whole titlebar becomes sensitive to mouse
2006-05-19  Björn Lindqvist  <bjourne@gmail.com>

	* frames.c: Fix a logic bug so that the whole titlebar becomes
	sensitive to mouse clicks. Fixes #336320.
2006-05-19 13:15:29 +00:00
Björn Lindqvist
23a5f5bb58 Remove the unused attributes resize_gravity, width_inc, height_inc,
2006-05-18  Björn Lindqvist  <bjourne@gmail.com>

	* resizepopup.c: Remove the unused attributes resize_gravity,
	width_inc, height_inc, min_width, min_height, frame_left,
	frame_right, frame_top, frame_bottom, tick_origin_x, tick_origin_y
	from the MetaResizePopup struct. Delete all code that references
	those attributes.
2006-05-18 08:32:16 +00:00
Elijah Newren
1a16108310 Revert the accessibility module loading workaround from Gnome 2.6, since
2006-05-15  Elijah Newren  <newren gmail com>

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

	* src/Makefile.am: remove METACITY_LIBDIR define

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

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

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

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

	* src/prefs.c (update_binding): plug a small leak.
2006-05-15 06:59:30 +00:00
Søren Sandmann
5750974d5d Some experimental code to handle sync counter notifications on a window.
Fri May  5 12:50:58 2006  Søren Sandmann  <sandmann@redhat.com>

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

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

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

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

	* src/window-props.c (set_title_text, set_window_title, set_icon_title):
	if the _NET_WM_VISIBLE_(ICON_)NAME property was previously set but
	doesn't need to be this time, make sure to clear it
2006-05-05 01:10:20 +00:00
Søren Sandmann
addc04f463 Delete unused META_PRIORITY_COMPOSITE
Thu May  4 13:30:04 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/ui.h: Delete unused META_PRIORITY_COMPOSITE

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

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

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

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

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

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

	* src/c-screen.c: Move WindowInfo struct to new c-window.[ch]
	files. Delete various bits of obsolete, commented-out code.
2006-05-02 21:15:32 +00:00
Søren Sandmann
975130ff70 New function. Use get_window() instead of cutted-and-pasted code all over
Fri Apr 28 12:53:23 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/core.c (get_window): New function.
	* src/core.c: Use get_window() instead of cutted-and-pasted code
	all over the place.
2006-04-28 16:54:52 +00:00
Elijah Newren
12d5978268 2.15.1 release belated post-release version bump to 2.15.1 Include boxes.h
2006-04-25  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.1 release
	* configure.in: belated post-release version bump to 2.15.1
	* src/Makefile.am: Include boxes.h so that control-center won't
	fail to build  #339708.
2006-04-25 17:53:49 +00:00
Thomas Andersen
14f120f131 warn and ignore if transient_for is set to a non-top-level window. Fixes
2006-04-19  Thomas Andersen  <phomes@gmail.com>

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

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

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

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

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

	* src/theme.c, src/theme.h (struct _MetaPositionExprEnv,
	meta_draw_op_draw, meta_draw_op_list_draw,
	meta_theme_draw_menu_icon): Use MetaRectangles in function
	prototypes instead of x, y, with, height ints where applicable.
2006-04-18 17:18:53 +00:00
Thomas Thurman
fee1fb094a Allow any keybinding pref to be specified either with <foo>, a string, or
2004-04-17  Thomas Thurman <thomas@thurman.org.uk>

        * keybindings.c (count_bindings, rebuild_binding_table):
        * prefs.c (change_notify, screen_bindings,
        window_bindings, init_bindings, update_binding,
        find_and_update_list_binding, update_list_binding,
        meta_prefs_get_window_binding): Allow any keybinding pref
        to be specified either with <foo>, a string, or <foo>_list,
        a list of strings, or both. Fixes #164831.
2006-04-17 17:23:09 +00:00
Elijah Newren
e2ea1cf722 Patch from Dan Sanders to fix #334899.
2006-04-16  Elijah Newren  <newren gmail com>

	Patch from Dan Sanders to fix #334899.

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

	Patch from Dan Sanders to fix #335076.

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

	* src/display.h: Patch from Andy Morum to fix the build with
	--disable-xsync.  #336605
2006-04-15 22:58:07 +00:00
Thomas Thurman
2214fd75d9 Add a tabbing function, bound to alt-f6 by default, to cycle through the
2006-04-14  Thomas Thurman   <thomas@thurman.org.uk>

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

        * src/common.h: two new MetaGrabOpts values for group switching
        * src/display.c (ping_data_free, meta_display_in_grab_op,
        IN_TAB_CHAIN): adapt to new MetaGrabOpts
        * src/display.h: new enum value for MetaTabList for group switching
        * src/keybindings.c (meta_display_process_key_event):
        adapt to new MetaGrabOpts
        (process_tab_grab): adapt to new MetaGrabOpts, and use switch
        statement for cancelling instead of if statement
        * src/metacity.schemas.in: new keybindings
        * src/prefs.c, src/prefs.h: handle new keybindings
        * src/window.h: define META_WINDOW_IN_GROUP_TAB_CHAIN macro
2006-04-15 02:05:44 +00:00
Søren Sandmann
c7c9f0ee52 Check for both POPUP and DROPDOWN.
Thu Apr 13 12:23:28 2006  Søren Sandmann  <sandmann@redhat.com>

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

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

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

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

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

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

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

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

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

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

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

	* src/screen.c (meta_screen_composite_all_windows): Remove debug spew
2006-04-10 20:47:02 +00:00
Björn Lindqvist
4730cb57bd *** empty log message *** 2006-04-10 08:30:02 +00:00
Gora Mohanty
793c1d7a43 Changes strings to make them more readable, and more translatable. Fixes
2006-03-27  Gora Mohanty  <gmohanty@cvs.gnome.org>

        * src/metacity.schemas.in:
	* src/theme.c:
	Changes strings to make them more readable, and more translatable.
	Fixes #335720.
2006-04-07 19:06:25 +00:00
Elijah Newren
8674051c58 Fix constraints bug causing negative width windows and crashes. #336651
2006-04-02  Elijah Newren  <newren gmail com>

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

	* src/constraints.c (constrain_partially_onscreen): Don't
	accidentally shove & resize the window by requiring more pixels to
	be onscreen than the size of the window.
2006-04-02 23:11:25 +00:00
Søren Sandmann
6445d16fd5 Release the GL window here. Disconect from the magnifier, not the stacker.
Fri Mar 31 16:44:56 2006  Søren Sandmann  <sandmann@redhat.com>

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

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

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

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

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

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

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

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

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

	* src/window.[ch] (meta_window_find_root_ancestor,
	meta_window_raise): split meta_window_find_root_ancestor()
	functionality of meta_window_raise() and make it available
	elsewhere
2006-03-30 19:22:38 +00:00
Thomas Thurman
cf3deef6ea mark a window as needing or not needing the user's attention use the new
2006-03-29  Thomas Thurman   <thomas@thurman.org.uk>
        * src/window.c, src/window.h (meta_window_set_demands_attention,
        meta_window_unset_demands_attention): mark a window as needing
        or not needing the user's attention
        * src/window.c (meta_window_show, window_activate,
        meta_window_focus, meta_window_configure_request,
        meta_window_client_message): use the new set/unset
        demands attention functions. Fixes #305822.
2006-03-29 18:43:22 +00:00
Björn Lindqvist
28aeacb247 *** empty log message *** 2006-03-29 16:05:23 +00:00
Søren Sandmann
ea1568c720 Also check for overlay_window.
Tue Mar 28 09:57:26 2006  Søren Sandmann  <sandmann@redhat.com>

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

        * src/c-screen.c (meta_screen_info_redirect): Trap errors out of
        unredirect().
2006-03-28 14:58:14 +00:00
Thomas Thurman
25923105e4 deleted and moved into window-props.c (meta_window_new_with_attrs): added
2006-03-25  Thomas Thurman  <thomas@thurman.org.uk>

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

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

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

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

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

	* src/metacity.schemas.in: Change type from "boolean" to "bool"
	and default value from "FALSE" to "false"
2006-03-25 07:21:27 +00:00
Søren Sandmann
b11ac45352 Actually remove the window.
Wed Mar 22 13:16:48 2006  Søren Sandmann  <sandmann@redhat.com>

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

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

	* src/c-screen.c (meta_screen_info_redirect): Put a square below
	the desktop stack.
2006-03-22 15:33:55 +00:00
Søren Sandmann
fc7a246074 Put the desktop into a magnifier.
Mon Mar 20 11:50:44 2006  Søren Sandmann  <sandmann@redhat.com>

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

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

	* src/c-screen.c (meta_screen_info_redirect): Move some of the gl
	window related stuff here.
2006-03-20 16:52:25 +00:00
Søren Sandmann Pedersen
543f85a1db 2006-03-16 Soren Sandmann (sandmann@daimi.au.dk)
* src/c-screen.c (meta_screen_info_set_target_rect): Put inside
	COMPOSIT_EXTENSIONS
2006-03-17 04:15:40 +00:00
Thomas Thurman
ab176cf831 Always set _NET_WM_STATE when a window is shown or hidden, even if it
2006-03-03  Thomas Thurman  <thomas@thurman.org.uk>

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

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

	Add debugging information for edge resistance

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

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

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

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

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

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

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

	* src/c-screen.c (meta_screen_info_add_window): Use unset_patch()
	instead of unset_geometry().
2006-03-15 16:35:26 +00:00
Søren Sandmann
16de3b603b Comment out wobbling
Tue Mar 14 11:57:46 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Comment out wobbling

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

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

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

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

	* src/c-screen.c (meta_screen_info_set_size): Set size and output
	shape of the drawable node.
2006-03-14 17:00:56 +00:00
Thomas James Alexander Thurman
4d220adc32 Marking string for translation. Closes #334332 2006-03-12 21:04:56 +00:00
Ryan Lortie
3c6b291641 Only unmaximise window before freeing if the window is actually maximised.
2006-03-06  Ryan Lortie  <desrt@desrt.ca>

        * src/window.c (meta_window_free): Only unmaximise window before
        freeing if the window is actually maximised.  #333563.
2006-03-06 16:33:33 +00:00
Søren Sandmann
eed6f29b30 Update for libcm API change.
Fri Mar  3 15:31:04 2006  Søren Sandmann  <sandmann@redhat.com>

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

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

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

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

        * src/errors.h: Add new meta_errors_register_foreign_display()
2006-03-03 15:53:10 +00:00
Søren Sandmann
0a1a7e523c Put the windows in a stacker rather than do the traversing outselves.
Tue Feb 28 14:49:23 2006  Søren Sandmann  <sandmann@redhat.com>

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

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

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

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

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

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

        * src/window.c (update_transient_for):
        Update group too
2006-02-27 22:19:11 +00:00
Søren Sandmann
f8f6016970 Remove include of flash.h
Sat Feb 25 14:50:17 2006  Søren Sandmann  <sandmann@redhat.com>

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

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

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

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

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

        * src/compositor.c (meta_compositor_unmanage_screen): Synchronize
        the display.
2006-02-23 20:41:53 +00:00
Thomas Thurman
9e17747f3c Removed "move to another workspace" menu when there are exactly two
2006-02-19  Thomas Thurman  <thomas thurman org uk>

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

        * src/menu.c (meta_window_menu_new): clear
        META_MENU_OP_WORKSPACES bit when n_workspaces==2
2006-02-20 02:15:14 +00:00
Søren Sandmann
f3ade45b96 Only uncomposite the screen if there is a compositor.
Fri Feb 17 11:56:35 2006  Søren Sandmann  <sandmann@redhat.com>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* src/prefs.c (meta_prefs_init):
	Remove C99 style variable initiailization
2006-02-14 17:26:40 +00:00
Elijah Newren
8ceb613668 We had that prev_window code in multiple places and it was all identical.
2006-02-13  Elijah Newren  <newren gmail com>

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

	* src/keybindings.c (process_tab_grab):
	Allow alt-escape to cancel alt-tabbing, and vice versa.  Fixes
	#141425.
2006-02-13 19:16:32 +00:00
Thomas Thurman
ce3299e815 Disable alt-f7 if a window can't be moved, and alt-f8 if it can't be
2006-02-11  Thomas Thurman <thomas thurman org uk>

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

        * src/keybindings.c (handle_begin_move, handle_begin_resize):
        check window->has_*_func before beginning operation
2006-02-12 03:17:10 +00:00
Elijah Newren
cb298b9279 actually use META_LAYER_TOP but just manually make it equal to
2006-02-11  Elijah Newren  <newren gmail com>

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

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

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

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

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

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

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

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

2
2006-02-06 22:47:13 +00:00
Thomas Thurman
b5c199c6e6 produce warning when invalid events with no timestamp are received, rather
2006-02-03  Thomas Thurman <thomas thurman org uk>

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

	* compositor.c (process_map): update the pixmap.
	(update) print out framerate.
	(dump_stacking_order) new debug
	function.
	(meta_compositor_add_window) error trap fixes
	(MiniInfo): Make the minimize animation fade out.
2006-02-02 23:02:21 +00:00
Elijah Newren
297e0e466f Track the active_screen, (event_callback): If the mouse enters a window on
2006-01-30  Elijah Newren  <newren gmail com>

	* src/display.[ch] (struct MetaDisplay), meta_display_open,
	meta_display_set_input_focus_window,
	meta_display_focus_the_no_focus_window): Track the active_screen,
	(event_callback): If the mouse enters a window on a different
	screen, activate the default window on the new screen.  May need
	to be modified for click-to-focus; we'll wait for feedback.  Fixes
	#319348.
2006-01-30 17:22:14 +00:00
Elijah Newren
405e21a82a change the order of the ||'ed items in the if to avoid using an
2006-01-23  Elijah Newren  <newren gmail com>

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

	* src/prefs.c (meta_prefs_init): fix a couple uninitialized value
	problems
2006-01-24 01:07:41 +00:00
Elijah Newren
9ce85d7657 Patch from Christian Kirbach to prevent a critical warning crasher when
2006-01-21  Elijah Newren  <newren gmail com>

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

	* src/theme.c (meta_theme_free): since themes are only constructed
	as needed and may be NULL, check for that before freeing theme
	hash tables
2006-01-21 21:26:55 +00:00
Elijah Newren
c0f4b9d2d4 Patch from Dick Marinus to add a minimize double-click-titlebar-action;
2006-01-21  Elijah Newren  <newren gmail com>

	* src/common.h (enum MetaActionDoubleClickTitlebar):
	* src/frames.c (meta_frames_button_press_event):
	* src/prefs.c (action_double_click_titlebar_from_string):
	* src/metacity.schemas.in:
	Patch from Dick Marinus to add a minimize
	double-click-titlebar-action; slightly modified to also include a
	none action.  #300210.
2006-01-21 19:18:51 +00:00
Elijah Newren
8e5425a86f fixed_directions is only meant for explicit user interactions; disable it
2006-01-20  Elijah Newren  <newren gmail com>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Patch from Björn Lindqvist to fix #98340.

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

        * src/compositor.c: Make minimize animation update again.
2006-01-20 21:43:13 +00:00
Søren Sandmann
5f9a097d2c g_object_unref() rather than ws_region_unref().
Thu Jan 19 18:05:47 2006  Søren Sandmann  <sandmann@redhat.com>

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

        * src/compositor.c: Port to changes in libcm
2006-01-19 21:51:54 +00:00
Søren Sandmann
8638300708 Port to changes in libcm.
Tue Jan 17 17:25:29 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Port to changes in libcm.
2006-01-17 22:27:10 +00:00
Elijah Newren
4dd216f5a8 manually define HOST_NAME_MAX if not already defined to fix Solaris
2006-01-16  Elijah Newren  <newren gmail com>

	* src/window-props.c: manually define HOST_NAME_MAX if not already
	defined to fix Solaris compilation issue.  Caught by Damien
	Carbery, patch from Havoc.  #326745
2006-01-16 17:37:53 +00:00
Søren Sandmann
35dae65862 Really turn off draw-in-a-loop.
Mon Jan 16 11:55:20 2006  Søren Sandmann  <sandmann@redhat.com>

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

	* src/workspace.c (focus_ancestor_or_mru_window):
	If no valid window is found in the MRU list, then set focus to the
	desktop window. (#317405)
2006-01-16 06:07:29 +00:00
Elijah Newren
9fdd3d165d Fix accidental overzealous focus holding by the terminal introduced by the
2006-01-15  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

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

	* src/compositor.[ch]: fix compilation when
	HAVE_COMPOSITE_EXTENSIONS is undefined.  #326912
2006-01-14 21:51:46 +00:00
Søren Sandmann
efe25a80ed Only update on damage events.
Fri Jan 13 16:37:26 2006  Søren Sandmann  <sandmann@redhat.com>

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

	Patch from Damien Carbery.  Fixes #326746.

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

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

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

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

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

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

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

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

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

	* src/display.c (meta_display_open): Composite manage all the
	screens.
2006-01-13 19:41:01 +00:00
Elijah Newren
9ec589b3b8 Replace __PRETTY_FUNCTION__ with G_STRFUNC, because lesser compilers don't
2006-01-11  Elijah Newren  <newren gmail com>

	* src/textboxes.c (test_area, test_intersect, test_equal,
	  test_overlap_funcs, test_basic_fitting, test_merge_regions,
	  test_regions_okay, test_region_fitting, test_clamping_to_region,
	  test_clipping_to_region, test_shoving_into_region,
	  test_find_onscreen_edges,
	  test_find_nonintersected_xinerama_edges, test_gravity_resize,
	  test_find_closest_point_to_line):
	Replace __PRETTY_FUNCTION__ with G_STRFUNC, because lesser
	compilers don't support the former.  Caught by Damien Carbery, fix
	suggested by Ray Strode.  #326281.
2006-01-11 16:35:03 +00:00
Elijah Newren
5913b8c5ab Whoops, I forgot to keep my copyright info updated with my previous
2006-01-10  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	(replace_rect_with_list):
	Remove a compiling warning

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

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

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

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

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

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

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

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

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

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

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

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

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

	Plug a few leaks.  Fixes #309178.

	* src/main.c (main): remove an unneeded g_set_prgname() call, free
	some strings allocated by the GOptions parsing
2006-01-10 04:18:09 +00:00
Elijah Newren
339948fcf2 Patch from Björn Lindqvist to fix a logic error. #322149.
2006-01-02  Elijah Newren  <newren@gmail.com>

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

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

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

	* src/boxes.c (meta_rectangle_region_to_string,
	  meta_rectangle_edge_list_to_string, fix_up_edges):
	* src/constraints.c (meta_window_constrain, setup_constraint_info,
	  place_window_if_needed, constrain_maximization,
	  constrain_fullscreen, constrain_size_increments,
	  constrain_size_limits, constrain_aspect_ratio,
	  do_screen_and_xinerama_relative_constrai,
	  constrain_to_single_xinerama, constrain_fully_onscreen,
	  constrain_partially_onscreen):
	* src/edge-resistance.c (find_nearest_position,
	  apply_edge_resistance, apply_edge_resistance_to_each_side):
	* src/testboxes.c (test_clamping_to_region,
	  test_clipping_to_region, test_shoving_into_region):
	* src/window.c (meta_window_new_with_attrs,
	  meta_window_apply_session_info, meta_window_resize,
	  meta_window_resize_with_gravity, meta_window_configure_request):
	Remove C99 style variable initiailization
2006-01-02 18:37:46 +00:00
Elijah Newren
703f58cdf7 Make the workspace switcher work with dual-head (non-xinerama) setups.
2005-12-27  Elijah Newren  <newren@gmail.com>

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

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

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

	* src/tabpopup.c (meta_ui_tab_popup_new): since the title is going
	to be treated as markup, escape it.  Fixes #324846.
2005-12-27 16:40:47 +00:00
Elijah Newren
53cba6ed37 Oops, I only meant to commit the changes to rationales.txt in the last commit 2005-12-22 07:08:38 +00:00
Elijah Newren
7e821f37fd Add xinerama and multi-head tracker bugs 2005-12-22 06:18:38 +00:00
Kang Jeong-Hee
6a9242b192 compile with compositor enabled 2005-12-14 12:47:35 +00:00
Elijah Newren
12193322a8 make the debugging message actually correspond to the code. Patch from
2005-12-12  Elijah Newren  <newren@gmail.com>

	* src/window.c (update_net_frame_extents): make the debugging
	message actually correspond to the code.  Patch from Björn
	Lindqvist.  Fixes #322051.
2005-12-12 18:22:40 +00:00
Kjartan Maraas
b3f465c727 Make the wireframe a bit slimmer 2005-11-29 21:36:12 +00:00
Davyd Madeley
616d778f6b display hostname in titlebar for remote X clients. Closes bug #322202.
2005-11-24  Davyd Madeley  <davyd@fugro-fsi.com.au>

        * src/window-props.c: display hostname in titlebar for remote X
          clients. Closes bug #322202.
2005-11-23 17:08:03 +00:00
Elijah Newren
ca2fe384bc Don't allow removing a window from maximized or fullscreened state to
2005-11-22  Elijah Newren  <newren@gmail.com>

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

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

	* src/window.c (meta_window_unmaximize,
	  meta_window_unmake_fullscreen,
	  meta_window_shove_titlebar_onscreen):
	don't claim that these are manual user move/resize operations
2005-11-22 15:48:30 +00:00
Elijah Newren
b03d82661f Relax the partially onscreen constraint to allow the titlebar to touch the
2005-11-21  Elijah Newren  <newren@gmail.com>

	* src/constraints.c (constrain_partially_onscreen): Relax the
	partially onscreen constraint to allow the titlebar to touch the
	bottom panel in order to make the new constraints code function
	the same as the old version.  Fixes #322071.
2005-11-22 00:22:41 +00:00
Elijah Newren
3426844ad5 When updating the xinerama due to placement, update which maximal/spanning
2005-11-21  Elijah Newren  <newren@gmail.com>

	* src/constraints.c (place_window_if_needed): When updating the
	xinerama due to placement, update which maximal/spanning rect set
	to use as well
2005-11-21 21:35:31 +00:00
Elijah Newren
9641bc5ee7 compute the frame geometry due to maximization only after actually
2005-11-20  Elijah Newren  <newren@gmail.com>

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

        * src/edge-resistance.c (meta_display_compute_resistance_and_snap):
          Use GPOINTER_TO_INT() macro instead of cast to allow compilation on
          64-bit architectures without warning.
2005-11-21 02:58:36 +00:00
Elijah Newren
075d6d34db differentiate between movement towards an edge and movement away from one.
2005-11-19  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): differentiate
	between movement towards an edge and movement away from one.  Pick
	smaller constants for movement away from an edge.
2005-11-20 04:02:46 +00:00
Elijah Newren
a7201d27d1 Merge of all the changes on the constraints_experiments branch. This is
2005-11-18  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

       * src/tabpopup.h: (struct _MetaTabEntry):
       * src/tabpopup.c: (meta_ui_tab_popup_new):
       * src/screen.c: (meta_screen_ensure_tab_popup):
       Changed the 'minimized' field of the MetaTabEntry struct to
       'hidden'.  Fixes reopened bug #168455.
2005-11-12 00:34:32 +00:00
Kjartan Maraas
4752ef55c7 Merge fix for bug #320050 from stable.
2005-10-29  Kjartan Maraas  <kmaraas@gnome.org>

	* src/eventqueue.c: (meta_event_queue_new): Merge fix
	for bug #320050 from stable.
2005-10-29 07:37:45 +00:00
Philip O'Brien
064303e98e add handling for META_PREF_CURSOR_THEME and META_PREF_CURSOR_SIZE for more
2005-10-25  Philip O'Brien  <philip.obrien@dal.ca>

	* src/prefs.c (meta_preference_to_string): add handling for
	META_PREF_CURSOR_THEME and META_PREF_CURSOR_SIZE for more complete
	debug info
2005-10-25 16:43:01 +00:00
Elijah Newren
f2acdda740 Fix edge snapping for multi-screen (non-xinerama) setups. #319425
2005-10-23  Elijah Newren  <newren@gmail.com>

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

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

	* src/place.c (get_windows_showing_on_same_screen): exclude windows
	in the list that are on a different screen
2005-10-23 21:19:22 +00:00
Muktha
62fb5e6eb4 Make the unfocussed Simple window border visible with high contrast
2005-10-13  Muktha  <muktha.narayan@wipro.com>

        * src/themes/Simple/metacity-theme-1.xml: Make the unfocussed
        Simple window border visible with high contrast inverse theme.
        Fixes #121361.
2005-10-13 05:51:24 +00:00
Elijah Newren
7ef871f73a Fix a crash that occurs when removing some virtual desktops and windows
2005-10-08  Elijah Newren  <newren@gmail.com>

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

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

	Add my copyright notice to a number of files on which it should
	already exist.
2005-10-08 19:38:54 +00:00
Elijah Newren
0a13bf3270 clarify the meaning of the auto_raise preference. Fixes one of the issues
2005-10-03  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

	* src/window.c (meta_window_new_with_attrs): initialize
	tab_unminimized to false
2005-10-03 20:02:31 +00:00
Elijah Newren
26dbf9856b A combination of a couple memory leaks fixes, from Kjartan, Soeren, and I.
2005-10-03  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

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

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

	* src/window.c (meta_window_change_workspace): have all ancestors
	change workspaces too
2005-10-03 19:00:01 +00:00
Elijah Newren
ef5299ee92 Truncate ridiculously long titles to avoid crashing or letting the pager
2005-10-03  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

	* src/tabpopup.c (display_entry): gtk+ 2.8.4 needs to know the
	mapped state of its windows (see bug 316180), and since we
	manually map with gdk_window_show_unraised() we need to manually
	set the mapped state too
2005-10-03 17:11:49 +00:00
Brent Smith
6bb6566b86 Moved the call to meta_screen_get_natural_xinerama_list to earlier in
2005-09-02  Brent Smith  <gnome@nextreality.net>

        * src/place.c: (meta_window_place): Moved the call to
        meta_screen_get_natural_xinerama_list to earlier in
        function so that xineramas_list is allocated before
        find_first_fit is called.  Fixes #315000
2005-09-02 15:54:34 +00:00
Elijah Newren
87f613fbbe Avoid obscuring centered-on-desktop windows which are denied focus. Fixes
2005-08-12  Elijah Newren  <newren@gmail.com>

        * src/place.c (meta_window_place): Avoid obscuring
        centered-on-desktop windows which are denied focus.  Fixes
        #313234.
2005-08-13 03:58:24 +00:00
Elijah Newren
f335b0c381 Patch from Brent Smith to fix a duplicate string. Fixes #309774.
2005-08-08  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

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

	* src/window.c (update_move): all the user to specify
	an edge to resize with mouse in keyboard resize mode.
	window
2005-08-03 02:22:00 +00:00
Elijah Newren
c50c8e6f7d Change default theme from "Simple" to "Clearlooks".
2005-08-01  Elijah Newren  <newren@gmail.com>

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

	* src/stack.c (is_focused_foreach, get_standalone_layer): use only
	the expected_focus_window instead of both the focused_window and
	the expected_focus_window.  Removes an infinite flicker loop in
	sloppy and mouse focus, and an ugly one time flicker in click to
	focus.  Fixes #311400.
2005-08-01 04:58:58 +00:00
Elijah Newren
d5705ef576 Patch from Jaap Haitsma to make sure that Metacity dialogs have icons.
2005-07-30  Elijah Newren  <newren@gmail.com>

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

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

	* src/place.c (avoid_being_obscured_as_second_modal_dialog):
	remove some unneeded debug spew that was causing crashes.  Fixes
	#311819.
2005-07-28 19:05:28 +00:00
Elijah Newren
266f78d9a8 try to place windows denied focus near the focus window and fix a xinerama
2005-07-24  Elijah Newren  <newren@gmail.com>

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

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

	* src/window.c (meta_window_free): restore original window size if
	the window was maximized, as the FIXME says.  ;-) Fixes #137185.
2005-07-25 01:39:24 +00:00
Elijah Newren
225407f3b3 revert the patch from #128380--change _NET_ACTIVE_WINDOW behavior to what
2005-07-23  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_activate): revert the patch from
	#128380--change _NET_ACTIVE_WINDOW behavior to what it originally
	was.
2005-07-24 01:13:41 +00:00
Elijah Newren
6c023bfef7 Patch from Ken Harris to provide a more lenient threshold for drawing
2005-07-14  Elijah Newren  <newren@gmail.com>

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

	* src/theme.c (meta_frame_layout_calc_geometry): use height +
	width > 5 instead of height > 3 && width > 3 as criterion
2005-07-14 21:00:26 +00:00
Elijah Newren
c635ac51cb Fix a slight bug (causing possible miscoloring of parts of the titlebar)
2005-07-13  Elijah Newren  <newren@gmail.com>

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

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

	bitshifting operators do not take precedence over typecasting, so
	make sure to use parentheses to get the right operation order.
2005-07-13 18:24:56 +00:00
Elijah Newren
7bda73a415 Patch from Andrew Johnson to speed up vertical gradients. Fixes #169982.
2005-07-12  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

        * src/screen.c (meta_screen_free): free ->xinerama_infos
        Closes bug#307884
2005-07-12 19:01:38 +00:00
Matthias Clasen
8ce054b21b React to cursor theme changes: (#308106)
2005-07-11  Matthias Clasen  <mclasen@redhat.com>

	React to cursor theme changes: (#308106)

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

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

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

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

	* src/main.c (prefs_changed_callback): Update the cursor
	theme when the cursor preferences change.
2005-07-11 13:25:08 +00:00
Soeren Sandmann
947e45d27d Add a cache of pixmaps for recently exposed frame areas. Makes metacity a
Sun Jun 26 11:19:18 2005  Soeren Sandmann  <sandmann@redhat.com>

	* src/frames.c: Add a cache of pixmaps for recently exposed frame
	areas. Makes metacity a bit faster when dragging windows around.
	See bug 141813.
2005-06-26 21:58:37 +00:00
Ryan Lortie
e003ba87d1 Prevent using the address of a local variable as a hash key. (Bug #307209)
2005-06-10  Ryan Lortie  <desrt@desrt.ca>

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

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

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

	* src/effects.c (draw_xor_rect): free font info structure.
	* src/screen.c (meta_screen_new): pass a 1 not a 0 to
	XFreeFontInfo to free font info structure.
	(meta_screen_free): call XUnloadFont on GC font before freeing
	the GC.
2005-06-07 15:52:56 +00:00
Elijah Newren
3fdf721286 If a window requests to be raised and is denied, set the demands attention
2005-06-02  Elijah Newren  <newren@gmail.com>

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

	* src/window.c (meta_window_focus): if the window has a modal
	transient which is being unmanaged, don't focus it.  Fixes the
	Metacity issue reported in #305362.
2005-06-02 15:24:40 +00:00
Ray Strode
14b8de3727 Bug 305564 again.
2005-05-30  Ray Strode  <rstrode@redhat.com>

	Bug 305564 again.

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

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

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

	* src/screen.c (meta_screen_new): use fixed alias instead
	of a xfld.  Don't pass GCFont to XCreateGC if font couldn't
	be loaded.  Print a warning if font couldn't be loaded.
2005-05-30 20:15:26 +00:00
Elijah Newren
be49961944 Patch from Greg Hudson to make sure window position is calculated
2005-05-26  Elijah Newren  <newren@gmail.com>

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

	Actually commit the stuff mentioned in the last
	ChangeLog entry.
2005-05-26 19:58:17 +00:00
Elijah Newren
e1891161d0 don't accidentally treat maximize vertically as maximize in both
2005-05-26  Elijah Newren  <newren@gmail.com>

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

	* src/window.c: (meta_window_new_with_attrs): put all transients
	of the new window, if any exist, in the calc_showing queue.  Fixes
	#303284.
2005-05-26 17:15:56 +00:00
Dan Winship
82c8ca4588 Make sure the "Close" button has the focus, not the table. (#172703)
* src/metacity-dialog.c (warn_about_no_sm_support): Make sure the
        "Close" button has the focus, not the table. (#172703)
2005-04-08 14:49:01 +00:00
Elijah Newren
c7ebe972e6 Patch from Aidan Delaney to make sure that icons in the alt-tab popup are
2005-02-28  Elijah Newren  <newren@gmail.com>

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

	* src/screen.c: (meta_screen_ensure_tab_popup): make use
	meta_window_showing_on_its_workspace() instead of just checking if
	the window is minimized.
2005-02-28 21:34:48 +00:00
Elijah Newren
bea407e309 Prevent the visual bell from changing the focus window. Fixes #123366.
2005-02-25  Elijah Newren  <newren@gmail.com>

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

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

	* src.display.c: (event_callback): make sure to also ignore
	LeaveNotify events when the focus sentinel isn't clear
2005-02-25 20:14:08 +00:00
Elijah Newren
ebae340a1e Fix crash that occurs when stupid apps claim that a window is its own
2005-02-23  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_new_with_attrs): Fix crash that
	occurs when stupid apps claim that a window is its own parent.
	#168207
2005-02-23 17:42:51 +00:00
Elijah Newren
612507260a Handle keynav vs. mousenav in mouse and sloppy focus modes. Fixes #167545.
2005-02-21  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

	* src/workspace.c (meta_workspace_activate_with_focus): add a
	FIXME in a potentially duplicate section of code,
	(meta_workspace_focus_default_window): use the same focus choice
	as click-to-focus if in keynav mode.
2005-02-22 02:11:25 +00:00
Elijah Newren
992f237090 Handle _NET_CURRENT_DESKTOP messages that come with timestamps. Fixes the
2005-02-20  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

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

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

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

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

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

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

	* src/window-props.c (reload_net_wm_user_time): use the new
	meta_window_ste_user_time() function in order to correct problems
2005-02-20 17:14:16 +00:00
Elijah Newren
754a75546d trivial fix to a log message: change %d to %lu (see debugging log from bug
2005-02-16  Elijah Newren  <newren@gmail.com>

	* src/display.c: (event_callback): trivial fix to a log message:
	change %d to %lu (see debugging log from bug 167358).
2005-02-16 09:36:24 +00:00
Elijah Newren
0488efc8c1 Raise the ancestor of a window instead of the window itself. Fixes
2005-02-12  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

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

	* src/window.c: (meta_window_new_with_attrs): initialize
	denied_focus_and_not_transient, (meta_window_show): set and unset
	the denied_focus_and_not_transient field appropriately
2005-02-11 19:20:44 +00:00
Aidan Delaney
f7aad0d647 Removed useless function call. #166730
2005-02-08  Aidan Delaney  <adelaney@cs.may.ie>

	Removed useless function call.  #166730

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

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

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

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

	* src/window.c: (meta_window_activate): If we're not passed a
	timestamp, make sure to manually get one.  Fixes #166728.
2005-02-09 03:15:11 +00:00
Elijah Newren
0aa903f0d4 Set a _METACITY_VERSION property (a utf8 string) on the WM check window.
2005-02-06  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

	* src/window.c: (meta_window_activate): if the request came before
	the last focus time, set the demands attention hint instead
2005-02-06 16:52:26 +00:00
Dave Ahlswede
959a997eba Add period to the end of reduced_resources' description. Fixes #165780.
2005-02-04  Dave Ahlswede  <mightyquinn@letterboxes.org>

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

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

	* src/window.c: (update_mwm_hints): Be sure to call
	recalc_window_features even if no MWM hints are set
2005-02-05 03:02:42 +00:00
Elijah Newren
de5588c10e Focus parents of dismissed transient windows in preference to the window
2005-02-02  Elijah Newren  <newren@gmail.com>

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

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

	* src/workspace.c: (focus_ancestor_or_mru_window): rename from
	meta_workspace_focus_mru_window, and first check whether we need
	to focus an ancestor window before looking for the mru window,
	(record_ancestor): helper function for
	focus_ancestor_or_mru_window,
	(meta_workspace_focus_default_window): update due to the function
	rename from meta_workspace_focus_mru_window to
	focus_ancestor_or_mru_window
2005-02-02 18:46:09 +00:00
Elijah Newren
e2eb979ecd Try 2 to correct misleading and inaccurate wording. Hopefully, really
2005-01-31  Elijah Newren  <newren@gmail.com>

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

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

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

	* src/window.c: (meta_window_unmake_fullscreen): Update the layer
	after resizing the window
2005-01-31 16:49:23 +00:00
Muktha
a7c2bacd64 src/themes/Atlanta/metacity-theme-1.xml:
2005-01-31  Muktha  <muktha.narayan@wipro.com>

        src/themes/Atlanta/metacity-theme-1.xml:
        src/themes/Simple/metacity-theme-1.xml:
        src/themes/Bright/metacity-theme-1.xml:
        Make the unfocussed title bar distinguishable. Fixes #125291.
2005-01-31 09:54:34 +00:00
Elijah Newren
aa2da7d82e Patch from RHEL-3 (Havoc doesn't remember how it got there) that Havoc
2005-01-28  Elijah Newren  <newren@gmail.com>

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

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

	* src/metacity-dialog.c: (warn_about_no_sm_support): make this
	dialog be sticky.  Fixes #164745.
2005-01-28 16:49:36 +00:00
Elijah Newren
7d0ef20a9c Change wording of menu to "Always on Current Workspace" from "Put on All
2005-01-28  Elijah Newren  <newren@gmail.com>

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

	* src/window.c: Remove a comment that is no longer necessary
	(since bug 87531 has been fixed)
2005-01-28 16:36:14 +00:00
Elijah Newren
5389f135ce Take into account the appropriate list of windows when placing a new one.
2005-01-28  Elijah Newren  <newren@gmail.com>

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

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

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

	Plug a pair of leaks.  Fixes #165378

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

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

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

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

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

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

	* src/window.c: (window_stick_impl, window_unstick_impl): rename
	from meta_window_stick and meta_window_unstick respectively,
	(stick_foreach_func): a function to assist calling
	window_(un)stick_impl on each transient, (meta_window_stick,
	meta_window_unstick): new functions that call window_stick_impl or
	window_unstick_impl for the window and each of its transients.
2005-01-26 23:25:05 +00:00
Elijah Newren
893309b372 Patch from John Paul Wallington to keep tooltip on screen horizontally for
2005-01-26  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

	* src/window.c: (meta_window_new_with_attrs): set the window state
	hints _after_ applying session information.  Fixes #164677.
2005-01-26 02:47:49 +00:00
Benjamin Kahn
f388d1111f New 48x48 default icon as specified in bug #160660 2005-01-25 18:47:57 +00:00
Elijah Newren
f5984f4365 Patch from Stephane LOEUILLET in bug #151850.
2005-01-25  Elijah Newren  <newren@math.utah.edu>

	Patch from Stephane LOEUILLET in bug #151850.

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

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

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

	* src/window.c: (get_modal_transient): new function,
	(meta_window_focus): if the window has a modal transient, make
	sure it is on the current workspace and then focus it instead.
2005-01-25 17:26:06 +00:00
Elijah Newren
2dcaa941b4 don't forget to initialize display->grab_old_window_stacking. Thanks to
2005-01-24  Elijah Newren  <newren@gmail.com>

	* src/display.c: (meta_display_begin_grab_op): don't forget to
	initialize display->grab_old_window_stacking.  Thanks to Sebastien
	Bacher and the bleeding edge Ubuntu users for catching the
	occasional crash this could cause so quickly, and for verifying
	that the patch worked (I couldn't duplicate).  Fixes #165093.
2005-01-24 17:39:26 +00:00
Elijah Newren
2d0d5e8cac Restore original stacking when aborting an alt-esc window switch
2005-01-23  Elijah Newren  <newren@gmail.com>

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

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

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

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

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

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

	Patch from John Paul Wallington to fix #163420.

	* src/window.c: (check_maximize_to_work_area): fix vertical
	maximization for second screen
2005-01-24 04:21:14 +00:00
Elijah Newren
a1cdbf6d03 use pixbuf, not dimmed_pixbuf (which isn't defined yet). Fixes crash from
2005-01-20  Elijah Newren  <newren@gmail.com>

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

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

	* src/screen.c: (meta_screen_ensure_tab_popup),
	(meta_screen_ensure_workspace_popup):
	* src/tabpopup.c: (dimm_icon), (meta_ui_tab_popup_new),
	(free_entry):
	* src/tabpopup.h: In the tab task switcher popup, dim the window
	icon and put its name between brackets when the window is
	minimized. Fixes #136666.
2005-01-18 16:48:53 +00:00
Elijah Newren
2e465de233 Correct highlighting of windows in workspace switcher popup. Fixes
2005-01-11  Elijah Newren  <newren@gmail.com>

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

	* src/tabpopup.c (meta_select_workspace_expose_event): Remove race
	between FocusIn/FocusOut events and the expose event by replacing
	window->has_focus with
	window==window->display->expected_focus_window.
2005-01-11 19:54:14 +00:00
Elijah Newren
7d747092a6 Remove the hack from bug 128200; it isn't needed anymore with the fix from
2005-01-09  Elijah Newren  <newren@gmail.com>

	* src/display.c (meta_display_open):
	* src/display.h (struct _MetaDisplay):
	* src/window.c (meta_window_free, meta_window_client_message,
	meta_window_notify_focus):

	Remove the hack from bug 128200; it isn't needed anymore with the
	fix from bug #160470.
2005-01-10 00:27:00 +00:00
Elijah Newren
be29c69653 Don't focus the panel on click. Fixes #160470 (and 100470 and removes the
2005-01-09  Elijah Newren  <newren@gmail.com>

	Don't focus the panel on click.  Fixes #160470 (and 100470 and
	removes the need for the hack from 128200)

	* doc/how-to-get-focus-right.txt: Update section on focusing
	non-decorated windows (specifically, DOCKS and DESKTOPS)

	* src/display.c (event_callback): don't focus dock windows on
	click
2005-01-09 19:27:22 +00:00
Elijah Newren
c0924402d4 Make sure the save session dialog appears focused. Fixes #162983.
2005-01-06  Elijah Newren  <newren@gmail.com>

	Make sure the save session dialog appears focused.  Fixes #162983.

	* src/session.c (warn_about_lame_clients_and_finish_inter): Get a
	timestamp by explicit request from Xserver, since none is
	available otherwise.
2005-01-07 05:19:26 +00:00
Leena Gunda
7549d1511a Restore the wireframe rectangle co-ordinates to saved window co-ordinates.
2005-01-06  Leena Gunda  <leena.gunda@wipro.com>

        * src/window.c (meta_window_unmaximize): Restore the wireframe
        rectangle co-ordinates to saved window co-ordinates. Fixes
        bug #161236.
2005-01-06 05:24:59 +00:00
Thomas Fitzsimmons
7c8faf3eda Install schema data from builddir not srcdir.
2005-01-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* src/Makefile.am (install-data-local): Install schema data from
	builddir not srcdir.
2005-01-03 23:50:10 +00:00
Elijah Newren
78e54ee7ee Allow users to move the window around immediately after double-clicking to
2004-12-28  Elijah Newren  <newren@gmail.com>

	Allow users to move the window around immediately after
	double-clicking to shade (#90290)

	* src/display.c (event_callback): only end the grab op if either
	there is no frame or else the frame is not mapped
2004-12-28 22:31:10 +00:00
Elijah Newren
c74ab35c6c Focus windows that manually position themselves too (fixes #107347).
2004-12-27  Elijah Newren  <newren@gmail.com>

	Focus windows that manually position themselves too (fixes
	#107347).

	* src/window.h (struct _MetaWindow): add a new
	showing_for_first_time flag

	* src/window.c (meta_window_new_with_attrs): initialize
	showing_for_first_time flag to !mapped, (meta_window_show):
	replace did_placement with showing_for_first_time in the section
	to decided whether to focus since did_placement isn't quite what
	we want
2004-12-28 06:01:42 +00:00
Elijah Newren
0bf6bffb16 Spew warning if CurrentTime is passed to the function, but don't exit
2004-12-27  Elijah Newren  <newren@gmail.com>

	* src/display.c (meta_display_set_input_focus_window,
	meta_display_focus_the_no_focus_window): Spew warning if
	CurrentTime is passed to the function, but don't exit prematurely.
	(fixes #162353)
2004-12-28 05:55:58 +00:00
Elijah Newren
aab8f21475 Don't show menu if all options are invalid (fixes #148915)
2004-12-24  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_show_menu): Don't show menu if all
	options are invalid (fixes #148915)
2004-12-24 19:40:09 +00:00
Elijah Newren
ce8c2d9463 Fix error in distinguishing < vs. <= introduced by the patch in #154598,
2004-12-24  Elijah Newren  <newren@gmail.com>

	* src/window.c (window_takes_focus_on_map): Fix error in
	distinguishing < vs. <= introduced by the patch in #154598,
	restructure code so that verbose log matches code better in order
	ensure such mistakes are harder to make in the future (fixes
	#162172)
2004-12-24 17:27:29 +00:00
Elijah Newren
d5a484479f Thanks to mild7@users.sourceforge.net for this fix.
2004-12-24  Elijah Newren  <newren@gmail.com>

	Thanks to mild7@users.sourceforge.net for this fix.

	* src/window.h: (META_WINDOW_IN_NORMAL_TAB_CHAIN): Excludes
	windows with skip_taskbar hint set from the alt-tab list; they'll
	appear in the ctrl-alt-tab list instead. (fixes #106249)
2004-12-24 15:43:46 +00:00
Elijah Newren
892cb8a8dd Wrap XSetInputFocus, making display->expected_focus_window a little more
2004-12-22  Elijah Newren  <newren@gmail.com>

	Wrap XSetInputFocus, making display->expected_focus_window a
	little more reliable (see #154598)

	* src/display.h: (struct _MetaDisplay): add a large comment about
	the expected_focus_window, add a last_focus_time field,
	(XSERVER_TIME_IS_BEFORE): new macro moved from window.c but fixed
	for 64-bit systems, (meta_display_set_input_focus_window): new
	function

	* src/display.c (meta_display_open): initialize last_focus_time,
	add a comment about brokenness of trying to set intial focus
	window, (meta_display_set_input_focus_window): new function that
	wraps XSetInputFocus,
	(meta_display_focus_the_no_focus_window): make this function
	closer to a wrapping of XSetInputFocus for the no_focus_window.

	* src/window.c (XSERVER_TIME_IS_LATER): remove this macro in favor
	of the improved one added to display.h

	* src/display.c (meta_display_open):
	* src/window.c (meta_window_focus):
	use meta_display_focus_the_no_focus_window and
	meta_display_set_input_focus instead of XSetInputFocus
2004-12-23 06:44:56 +00:00
Elijah Newren
e46fc46701 Rename meta_window_visible_on_workspace to
2004-12-22  Elijah Newren  <newren@gmail.com>

	* src/core.c (meta_core_user_lower_and_unfocus):
	* src/display.c (meta_display_get_current_tab):
	* src/stack.c (get_default_focus_window, meta_stack_list_windows):
	* src/window.c (set_net_wm_state, meta_window_should_be_showing,
	implement_showing, meta_window_activate,
	meta_window_notify_focus):
	* src/window.h:
	* src/workspace.c (meta_workspace_list_windows):

	Rename meta_window_visible_on_workspace to
	meta_window_located_on_workspace (whether or not the window was
	showing wasn't taken into account, which made "visible"
	confusing).  Fixes #136314.
2004-12-23 00:20:33 +00:00
Elijah Newren
f4f8699d84 Partially resolve the conflicting requirements of windows on multiple
2004-12-22  Elijah Newren  <newren@gmail.com>

	Partially resolve the conflicting requirements of windows on
	multiple workspaces and hidden being a global quantity for windows
	(fixes bug 156182; the remainder of the work is bug 87531 and is a
	libwnck issue)

	* src/display.c (event_callback):
	* src/window.c (meta_window_visible_on_workspace, meta_window_unstick):
	* src/workspace.c (meta_workspace_add_window,
	meta_workspace_contains_window,
	meta_workspace_queue_calc_showing):
	* src/workspace.h:

	Remove meta_workspace_contains_window, replace with simple
	comparison utilizing window->workspace

	* src/place.c (meta_window_place):
	* src/window.c (meta_window_shares_some_workspace):
	* src/window.h:

	Remove meta_window_shares_some_workspace, replace with a simple
	comparison utilizing window->workspace

	* src/session.c (save_state),
	* src/window.c (meta_window_new_with_attrs,
	meta_window_apply_session_info, meta_window_free,
	window_showing_on_its_workspace,
	meta_window_change_workspace_without_transients,
	meta_window_unstick, meta_window_set_current_workspace_hint,
	meta_window_get_workspaces):
	* src/window.h:
	* src/workspace.c (meta_workspace_free, meta_workspace_add_window,
	meta_workspace_remove_window):

	Only one workspace now
2004-12-22 23:52:52 +00:00
Elijah Newren
e7deeb609d Thanks to Baptiste Mille-Mathias for this fix.
2004-12-19  Elijah Newren  <newren@gmail.com>

	Thanks to Baptiste Mille-Mathias for this fix.

	* src/metacity.schemas.in: Add a missing period at the end of a
	sentence.
2004-12-20 05:25:47 +00:00
Elijah Newren
d178f5e330 When snap-moving, don't snap to transients of minimized windows since they
2004-12-19  Elijah Newren  <newren@gmail.com>

	When snap-moving, don't snap to transients of minimized windows
	since they are hidden.  Fixes #157180

	* src/place.c (get_windows_on_same_workspace): make the logic to
	determine hidden windows more thorough by calling
	meta_window_should_be_showing()

	* src/window.c (meta_window_should_be_showing): rename this
	function from window_should_be_showing and also export it,
	(implement_showing):
	s/window_should_be_showing/meta_window_should_be_showing/,
	(idle_calc_showing):
	s/window_should_be_showing/meta_window_should_be_showing/

	* src/window.h (meta_window_should_be_showing): Add this function
	to the list so that it can be used in src/place.c
2004-12-20 02:53:08 +00:00
Elijah Newren
d8d77bd65b Focus the desktop when showing it. Fixes #159257.
2004-12-19  Elijah Newren  <newren@gmail.com>

	Focus the desktop when showing it.  Fixes #159257.

	* src/display.c (event_callback): obtain a timestamp to pass to
	meta_screen_show_desktop

	* src/keybindings.c (handle_toggle_desktop): obtain a timestamp to
	pass to meta_screen_show_desktop

	* src/screen.c (meta_screen_show_desktop): add a timestamp
	parameter, get the most recently used window of type DESKTOP (if
	there is one) and focus it

	* src/screen.h (meta_screen_show_desktop): add a timestamp
	parameter
2004-12-20 02:46:42 +00:00
Alex Duggan
8235fa831f Remove deprecated capplet from GNOME 2.0
2004-12-07  Alex Duggan  <aldug@astrolinux.com>

	* configure.in:
	* src/tools/Makefile.am:

	Remove deprecated capplet from GNOME 2.0

	* src/tools/metacity-properties.c:
	* src/tools/metacity-properties.desktop.in:
	* src/tools/metacity-properties.glade:
	* src/tools/metacity-properties.png:

	Removed from cvs
2004-12-13 19:00:14 +00:00
Benjamin Kahn
86ba6115d4 Use a better default application icon. Fixes bug #160373
* src/default_icon.png: Use a better default application
icon.  Fixes bug #160373
2004-12-06 18:55:43 +00:00
James Henstridge
bc9e517842 remove intltool stuff on distclean.
2004-11-10  James Henstridge  <james@jamesh.id.au>

	* Makefile.am (DISTCLEANFILES): remove intltool stuff on distclean.

	* src/themes/Makefile.am (uninstall-local): add uninstall rule.

	* src/Makefile.am (libmetacity_private_la_CFLAGS): set this
	variable so that the files shared with metacity get compiled with
	different names.

	* configure.in: use more modern macros in some places, and make
	sure that $ACLOCAL_AMFLAGS is set so that rebuilds work better.

	* autogen.sh (conf_flags): use newer automake.
2004-11-10 07:59:38 +00:00
Vincent Untz
f3743bc494 gnome-panel-screenshot was renamed to gnome-screenshot
2004-11-06  Vincent Untz  <vincent@vuntz.net>

	* src/metacity.schemas.in: gnome-panel-screenshot was renamed to
	gnome-screenshot
2004-11-06 19:43:04 +00:00
Elijah Newren
2a5689911f Don't lower newly mapped windows when they're denied focus, if they are
2004-10-25  Elijah Newren  <newren@math.utah.edu>

	Don't lower newly mapped windows when they're denied focus, if
	they are transients of the focused window.  Instead, defocus the
	currently focused window.  (fixes #151996).

	(Also, reenable focus stealing prevention and do a small spacing
	cleanup)

	* src/window-props.c (init_net_startup_id): fix spacing

	* src/window.c (window_takes_focus_on_map): re-enable focus
	stealing prevention, (meta_window_show): if the new window is
	denied focus and is a transient of the currently focused window,
	defocus the currently focused window but keep the transient on
	top; remove some old code about transients and focus; make sure
	that EnterNotify events won't accidentally focus the new window.
2004-10-25 16:28:57 +00:00
Elijah Newren
8b26849517 Fix the alt-tab order--if the most recently used window is not focused,
2004-10-25  Elijah Newren  <newren@math.utah.edu>

	Fix the alt-tab order--if the most recently used window is not
	focused, start alt tabbing with that window instead of the one
	after it (fixes #156251)

	* src/display.c (find_tab_forward): add a skip_first parameter,
	(find_tab_backward): add a skip_last parameter,
	(meta_display_get_tab_next): if a beginning window wasn't given
	and the focused window isn't the tab chain, don't skip the MRU
	window
2004-10-25 16:17:19 +00:00
Elijah Newren
6d77251c71 Update _NET_WM_STATE_HIDDEN so the pager on the panel will know whether to
2004-10-22  Elijah Newren  <newren@math.utah.edu>

	Update _NET_WM_STATE_HIDDEN so the pager on the panel will know
	whether to display windows as visible or hidden (#105665)

	* src/screen.c (queue_windows_showing): Revert the
	queue_windows_showing portion of the patch committed on 2004-10-16
	for #142198--it was an ill-advised optimization.

	* src/window.c (window_showing_on_its_workspace,
	window_should_be_showing): split the old window_should_be_showing
	into these two functions, (set_net_wm_state): hidden state is more
	complex; use window_showing_on_its_workspace to determine the
	correct value
2004-10-22 20:28:36 +00:00
Elijah Newren
ccd4414a0f Patch from Soeren to fix the modifier key breakage introduced by an Xorg
2004-10-20  Elijah Newren  <newren@math.utah.edu>

	Patch from Soeren to fix the modifier key breakage introduced by
	an Xorg change. (fixes #151554)

	* src/keybindings.c: include X11/XKBlib.h if available,
	(handle_spew_mark): remove this unused function declaration,
	(end_keyboard_grab): new function, uses XKB if available,
	(process_tab_grab): use end_keyboard_grab to determine whether to
	end the grab, (error_on_command): make key a const char *,
	(process_workspace_switch_grab): use end_keyboard_grab to
	determine whether to end the grab
2004-10-20 23:16:08 +00:00
Anders Carlsson
c397af4896 Don't try to use an ARGB visual at all if the depth isn't 32-bit. This
2004-10-19  Anders Carlsson  <andersca@gnome.org>

	* src/frame.c: (meta_window_ensure_frame):
	Don't try to use an ARGB visual at all if the depth isn't
	32-bit. This caused major slowdowns with Composite enabled.
2004-10-19 05:18:11 +00:00
Elijah Newren
e84778d1eb Make the "showing desktop" mode be per-workspace instead of per-screen.
2004-10-16  Elijah Newren  <newren@math.utah.edu>

	Make the "showing desktop" mode be per-workspace instead of
	per-screen. (fixes #142198)

	* src/keybindings.c (handle_toggle_desktop): access
	showing_desktop through the active workspace

	* src/screen.c (meta_screen_new): remove initialization of
	screen->showing_desktop,
	(meta_screen_update_showing_desktop_hint): rename and make not
	static and access showing_desktop through the active workspace,
	(queue_windows_showing): replace meta_display_list_windows() with
	screen->active_workspace->windows,
	(meta_screen_minimize_all_on_active_workspace_except): renamed
	from meta_screen_minimize_all_except since it now only works on
	the active workspace, (meta_screen_show_desktop,
	meta_screen_unshow_desktop): access showing_desktop through the
	active workspace

	* src/screen.h (struct _MetaScreen): remove showing_desktop field,
	(meta_screen_minimize_all_on_active_workspace_except): rename from
	meta_screen_minimize_all_except,
	(meta_screen_update)_showing_desktop_hint): export this function too

	* src/window.c (maybe_leave_show_desktop_mode): access
	showing_desktop through the active workspace and use new name for
	meta_screen_minimize_all_on_active_workspace_except,
	(window_should_be_showing): access showing_desktop through the
	active workspace

	* src/workspace.c (meta_workspace_new): initialize
	workspace->showing_desktop, (meta_workspace_activate_with_focus):
	add note that old can be NULL, update showing_desktop_hint if
	different on this workspace than the previous one

	* src/workspace.h (struct _MetaWorkspace): add showing_desktop
	field
2004-10-17 04:28:29 +00:00
Elijah Newren
3c974b87b4 Fix from Rob to correct requested number of keycodes (#155247)
2004-10-15  Elijah Newren  <newren@math.utah.edu>

	* src/keybindings.c (reload_keymap): Fix from Rob to correct
	requested number of keycodes (#155247)
2004-10-15 22:43:52 +00:00
Elijah Newren
05388194fc Code cleanup
2004-10-13  Elijah Newren  <newren@math.utah.edu>

	Code cleanup

	* src/window.c (is_in_dock_group, docks_at_end_cmp,
	shuffle_docks_to_end): removed functions,
	(meta_window_notify_focus): no need to call is_in_dock_group or
	shuffle_docks_to_end because of the patch from #120100 that was
	committed.
2004-10-13 18:54:46 +00:00
Vincent Untz
b03558dc4d Add a keybinding to launch a terminal
2004-10-13  Vincent Untz  <vincent@vuntz.net>

	Add a keybinding to launch a terminal

	* src/keybindings.c: (handle_run_terminal): new function,
	(error_on_generic_command): new function, (error_on_command): wrapper
	around error_on_generic_command(), (error_on_terminal_command): new
	function

	* src/metacity.schemas.in: add run_command_terminal key

	* src/prefs.[ch]: (meta_prefs_init): cache the terminal command and
	register a gconf callback to update it, (change_notify): handle the
	notification of terminal command changes, (meta_preference_to_string):
	add the terminal command case, (update_terminal_command): new function,
	(meta_prefs_get_terminal_command): new function,
	(meta_prefs_get_gconf_key_for_terminal_command): new function
2004-10-13 08:32:10 +00:00
Elijah Newren
81fe64991c Fix middle-frame-click-to-lower focus inconsistency (#154601)
2004-10-08  Elijah Newren  <newren@math.utah.edu>

	Fix middle-frame-click-to-lower focus inconsistency (#154601)

	* src/core.c (meta_core_user_lower_and_unfocus): focus the default
	window in all focus modes, not just click-to-focus (EnterNotify
	events will not handle this case for sloppy and mouse focus)

	* src/display.c (event_callback): replace window->has_focus with
	window == display->expected_focus_window to avoid a race issue
2004-10-08 22:34:34 +00:00
Elijah Newren
79b4de04fc Alter the meaning of expected_focus_window; doesn't affect current
2004-10-08  Elijah Newren  <newren@math.utah.edu>

         Alter the meaning of expected_focus_window; doesn't affect
	 current operation but assists in fixing some other bugs
	 (#154598)

	* src/display.c (meta_display_focus_the_no_focus_window): set the
	expected_focus_window to NULL.

	* src/window.c (meta_window_notify_focus): don't NULL the
	expected_focus_window when that window receives a FocusIn event
2004-10-08 21:57:01 +00:00
Elijah Newren
714fb3d539 if the root window gets focused, set the focus to the default window; this
2004-10-04  Elijah Newren  <newren@math.utah.edu>

	* src/display.c (event_callback): if the root window gets focused,
	set the focus to the default window; this fixes the
	"focus-follows-mouse" behavior seen for click-to-focus mode after
	cancelling log out (fixes #153220)
2004-10-04 21:21:38 +00:00
Elijah Newren
70e40c235c Fix a variety of issues with autoraise (#134206)
2004-10-04  Elijah Newren  <newren@math.utah.edu>

	Fix a variety of issues with autoraise (#134206)

	* src/display.h: (struct _MetaDisplay): add an autoraise_window
	parameter

	* src/display.[hc] (meta_display_focus_the_no_focus_window): new
	function, (meta_display_queue_autoraise_callback): new function,
	(meta_display_remove_autoraise_callback): new function

	* src/display.c (meta_display_open): intialize
	display->autoraise_window too, (meta_display_close): remove any
	pending autoraise callback, (window_raise_with_delay_callback):
	clear out auto_raise->display->autoraise_window too,
	(event_callback): call meta_display_queue_autoraise_callback
	instead of having the code inline, call
	meta_display_focus_the_no_focus_window to handle focusing that
	window

	* src/window.c (meta_window_focus): If there's a window with an
	autoraise timeout that isn't the window being focused, remove the
	autoraise timeout

	* src/workspace.c (meta_workspace_focus_default_window): If no
	autoraise timeout is queued for the given window then queue one
	now, call meta_display_focus_the_no_focus_window to handle
	focusing that window, (meta_workspace_focus_mru_window): call
	meta_display_focus_the_no_focus_window to handle focusing that
	window
2004-10-04 21:09:08 +00:00
Elijah Newren
e8877141b7 Ooops, forgot to update the patch to account for change in bug 152000 2004-10-04 20:43:55 +00:00
Elijah Newren
546fe7b5b3 When no window becomes focused, focus the default window instead of
2004-10-04  Elijah Newren  <newren@math.utah.edu>

	* src/display.c (event_callback): When no window becomes focused,
	focus the default window instead of punting to the
	no_focus_window.  Also, change the warning to a verbose
	message--this will happen frequently due to brain-damage in the X
	protocol.  (see #125492)
2004-10-04 20:39:21 +00:00
Elijah Newren
16b9aff47c Fix a variety of focus race conditions in all focus modes, or at least
2004-10-04  Elijah Newren  <newren@math.utah.edu>

	Fix a variety of focus race conditions in all focus modes, or at
	least make them harder to trigger (fixes #152000)

	* src/core.[ch] (meta_core_user_lower_and_unfocus): add a
	timestamp parameter; pass it along to
	meta_workspace_focus_default_window

	* src/display.[ch] (meta_display_get_current_time_roundtrip): new
	function

	* src/display.c (event_callback): pass a timestamp to the
	meta_workspace_activate and meta_workspace_focus_default_window
	function calls

	* src/frames.c (meta_frames_button_press_event): pass a timestamp
	to meta_core_user_lower_and_unfocus

	* src/keybindings.c (handle_activate_workspace): pass a timestamp
	to meta_workspace_activate, (process_workspace_switch_grab): pass
	a timestamp to meta_workspace_focus_default_window and
	meta_workspace_activate, (handle_toggle_desktop): pass a timestamp
	to meta_workspace_focus_default_window,
	(do_handle_move_to_workspace): pass a timestamp to
	meta_workspace_activate_with_focus, (handle_workspace_switch):
	meta_workspace_activate

	* src/screen.c (meta_screen_new): pass a timestamp to
	meta_workspace_activate

	* src/window.c (meta_window_free): pass a timestamp to
	meta_workspace_focus_default_window, (idle_calc_showing): don't
	increment the focus sentinel here, (meta_window_minimize): pass a
	timestamp to meta_workspace_focus_default_window,
	(meta_window_client_message), pass a timestamp to
	meta_workspace_focus_default_window

	* src/workspace.h (meta_workspace_activate): add timestamp
	parameter, (meta_workspace_activate_with_focus): add timestamp
	parameter, (meta_workspace_focus_default_window): add timestamp
	parameter

	* src/workspace.c (meta_workspace_focus_mru_window): make this
	function take a timestamp and use it for meta_window_focus or
	XSetInputFocus, (meta_workspace_activate_with_focus): make this
	function take a timestamp and pass it along to meta_window_focus
	and meta_workspace_focus_default_window,
	(meta_workspace_activate): make this function take a timestamp and
	pass it to meta_workspace_activate_with_focus),
	(meta_workspace_focus_default_window): make this function take a
	timestamp, warn if its 0 but try to handle that case sanely, and
	pass the timestamp on to meta_window_focus or
	meta_workspace_focus_mru_window or XSetInputFocus
2004-10-04 20:32:59 +00:00
Elijah Newren
7b1e571919 Focus the default window after the user dismisses the workspace switcher
2004-09-22  Elijah Newren  <newren@math.utah.edu>

	* src/keybindings.c (process_workspace_switch_grab): Focus the
	default window after the user dismisses the workspace switcher
	popup (fixes #123803; note that an alternate fix was made
	independently by David Baron for sloppy and mouse focus users)
2004-09-22 19:15:26 +00:00
Elijah Newren
3b9ec3ce50 Fix some uninitialized variable errors reported by valgrind (see #153338)
2004-09-22  Elijah Newren  <newren@math.utah.edu>

	Fix some uninitialized variable errors reported by valgrind (see
	#153338)

	* src/display.c (meta_display_open): initialize
	display->grab_resize_timeout_id, and display->grab_have_keyboard

	* src/ui.c (meta_ui_create_frame_window): initialize attrs.width
	and attrs.height
2004-09-22 18:57:36 +00:00
Elijah Newren
7ee43e5a36 Don't focus a window that is minimized (fixes #147947)
2004-09-17  Elijah Newren  <newren@math.utah.edu>

	* src/workspace.c (meta_workspace_focus_mru_window): Don't focus a
	window that is minimized (fixes #147947)
2004-09-17 19:49:32 +00:00
Kjartan Maraas
43cc3b8606 A load of fixes of issues reported by sparse. Closes bug #152849
2004-09-17  Kjartan Maraas  <kmaraas@gnome.org>

	* src/bell.c: (meta_bell_flash_screen):
	* src/compositor.c:
	* src/effects.c: (meta_effects_draw_box_animation):
	* src/fixedtip.c: (meta_fixed_tip_show):
	* src/frame.c: (find_argb_visual):
	* src/frames.c: (unsigned_long_hash), (meta_frames_manage_window),
	(meta_frames_apply_shapes):
	* src/iconcache.c: (find_largest_sizes), (find_best_size):
	* src/keybindings.c: (meta_spawn_command_line_async_on_screen):
	* src/main.c: (main):
	* src/menu.c: (meta_window_menu_new):
	* src/prefs.c: (meta_prefs_get_visual_bell),
	(meta_prefs_bell_is_audible), (meta_prefs_get_visual_bell_type),
	(meta_prefs_get_action_double_click_titlebar),
	(meta_prefs_get_auto_raise), (meta_prefs_get_auto_raise_delay),
	(meta_prefs_get_reduced_resources):
	* src/screen.c: (meta_create_offscreen_window):
	* src/tabpopup.c: (meta_ui_tab_popup_get_selected):
	* src/theme-parser.c: (meta_theme_load):
	* src/theme.c: (meta_gtk_widget_get_font_desc):
	* src/tools/metacity-mag.c: (mouse_press), (begin_area_grab):
	* src/util.c: (meta_unsigned_long_hash): A load of fixes of issues
	reported by sparse. Closes bug #152849
2004-09-16 23:18:22 +00:00
Elijah Newren
9d9c744490 Remove some redundant code regarding focusing the default window (#152117)
2004-09-15  Elijah Newren  <newren@math.utah.edu>

	* src/display.c (event_callback): Remove some redundant code
	regarding focusing the default window (#152117)
2004-09-16 03:10:11 +00:00
Elijah Newren
63e1624bd7 Patch from Ken Harris in #135786 to focus a new default window when
2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Patch from Ken Harris in #135786 to focus a new default window
	when lowering via middle-click on the frame.

	* src/core.[hc], src/frames.c: rename meta_core_user_lower to
	meta_core_user_lower_and_unfocus

	* src/core.c (meta_core_user_lower_and_unfocus): if in
	click-to-focus mode then also move the window to the back of the
	mru list and focus the new default window for the active workspace
2004-09-16 00:06:38 +00:00
Elijah Newren
cffe7e9566 Focus the no_focus_window if no suitable window is in the mru list (should
2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Focus the no_focus_window if no suitable window is in the mru list
	(should fix the almost contrived extra issue found in #147475)

	* doc/how-to-get-focus-right.txt: We no longer need to lie about
	only focusing panels upon explicit request.

	* src/workspace.c: (meta_workspace_focus_top_window): removed this
	function--it was more code than needed and was unreliable anyway,
	(meta_workspace_focus_mru_window): if a suitable window isn't in
	the mru list, focus the no_focus_window instead of calling
	focus_top_window.
2004-09-15 16:53:20 +00:00
Elijah Newren
101a097f02 Prevent focus inconsistencies by only providing one focus method (fixes
2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Prevent focus inconsistencies by only providing one focus method
	(fixes #151990)

	* src/screen.c (meta_screen_show_desktop): remove call to
	meta_workspace_focus_top_window (it was merely focusing a window
	that was going to be hidden anyway, and likely the one that
	already had focus)

	* src/workspace.[hc]: remove meta_workspace_focus_mru_window and
	meta_workspace_focus_top_window from workspace.h, make them static
	functions in workspace.c
2004-09-15 16:42:52 +00:00
Elijah Newren
5ac6fcad73 Remove race condition for focus window choice on window close followed by
2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Remove race condition for focus window choice on window close
	followed by rapid mouse movement in sloppy and mouse focus modes
	(fixes #152000)

	* src/window.c (meta_window_free): Don't increment the focus
	sentinel for windows being freed, (idle_calc_showing): don't
	increment the focus sentinel for windows being minimized
2004-09-15 15:54:51 +00:00
Elijah Newren
a880f5d401 Fix unwanted loss of focus to the mouse window when using keynav (fixes
2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Fix unwanted loss of focus to the mouse window when using keynav
	(fixes #101190)

	* src/display.c (event_callback): Ignore EnterNotify events with
	xcrossing.mode of either NotifyGrab or NotifyUngrab
2004-09-15 15:46:25 +00:00
Elijah Newren
4b9fe2cae7 Focus correct window after minimizing via the tasklist (fixes #128200; see
2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Focus correct window after minimizing via the tasklist (fixes
	#128200; see also #107681)

	* src/display.h (struct _MetaDisplay): track the
	previously_focused_window

	* src/display.c (meta_display_open): initialize
	previously_focused_window

	* src/window.c (meta_window_free): clear the
	previously_focused_window if it's being freed,
	(meta_window_client_message): if we get a request to minimize the
	previously_focused_window and the focus_window is a dock or the
	desktop, focus the default window, (meta_window_notify_focus):
	update the previously_focused_window
2004-09-15 15:38:09 +00:00
Elijah Newren
8c7f81eac9 Disable focus-stealing-prevention for now; there are still some issues and
2004-08-29  Elijah Newren  <newren@math.utah.edu>

	* src/window.c (window_takes_focus_on_map): Disable
	focus-stealing-prevention for now; there are still some issues and
	hard code freeze is tomorrow...so this will have to wait until
	Gnome 2.10.
2004-08-30 04:56:07 +00:00
Havoc Pennington
19b808c4f5 add comment about broken assertion 2004-08-27 22:19:43 +00:00
Havoc Pennington
744efc95a1 disable NameWindowPixmap stuff always for now, it seemed kind of busted
2004-08-27  Havoc Pennington  <hp@redhat.com>

	* src/compositor.c (meta_compositor_new): disable NameWindowPixmap
	stuff always for now, it seemed kind of busted
	(paint_screen): don't grab the server during repaint, adds to the
	speed, though only slightly.

	* src/frames.c (meta_frames_set_window_background): factor out all
	the set_background stuff to one function; disable setting
	background to transparent, because it breaks existing themes. We
	need to add a flag in the theme XML file to say "start me with a
	transparent background"
2004-08-27 22:09:13 +00:00
Elijah Newren
522e9916b6 Prevent an assertion failure that can occur after increasing the number of
2004-08-27  Elijah Newren  <newren@math.utah.edu>

	Prevent an assertion failure that can occur after increasing the
	number of workspaces; also fix a warning and stacking order when a
	window is denied focus (fixes #150615)

	* src/window.c (meta_window_stack_just_below): the position of the
	window should be set equal to that of the one we want to be below,
	not 1 lower than that number

	* src/workspace.c (maybe_add_to_list): new function to add
	on_all_workspace windows to an mru_list, (meta_workspace_new):
	call maybe_add_to_list for all windows on the screen in order to
	initialize the mru_list
2004-08-27 17:22:54 +00:00
Havoc Pennington
b682a9f945 delete extra copy of find_argb_visual so things compile
2004-08-26  Havoc Pennington  <hp@redhat.com>

	* src/frame.c: delete extra copy of find_argb_visual so things
	compile

	* src/compositor.c (HAS_NAME_WINDOW_PIXMAP): copy the
	XCompositeNameWindowPixmap() stuff from xcompmgr, though I can't
	say I really know what it's supposed to help with (painting the
	window border?)
2004-08-27 03:27:43 +00:00
Havoc Pennington
a8fd516aa0 couple of cosmetic tweaks from resolving my local patch with the bugzilla
2004-08-26  Havoc Pennington  <hp@redhat.com>

	* src/frame.c, src/theme.c: couple of cosmetic tweaks from
	resolving my local patch with the bugzilla patch from the 8-19
	entry below
2004-08-27 02:24:48 +00:00
Havoc Pennington
1f7f29e059 move the have_xrender variable initialization up in the file since it can
2004-08-26  Havoc Pennington  <hp@redhat.com>

	* configure.in: move the have_xrender variable initialization up
	in the file since it can be set as part of composite check

2004-08-19  Havoc Pennington  <hp@redhat.com>

	Fixes from Rich Wareham

	* src/display.h (struct _MetaDisplay): add render extension check
	to the display

	* src/display.c: check for render

	* configure.in: don't build compositing manager by default, don't
	want any nasty surprises; check for render separately from
	compositing manager

	* src/frame.c: use an ARGB visual when available for the window
	frame, so we can be all cool-ass
2004-08-27 02:17:49 +00:00
Elijah Newren
044d8999a3 Make dialogs that Metacity shows follow focus-stealing-prevention
2004-08-25  Elijah Newren  <newren@math.utah.edu>

	Make dialogs that Metacity shows follow focus-stealing-prevention
	conventions. (fixes one issue in #149028; see comments 47-54)

	* src/delete.c (delete_ping_reply_func,
	delete_ping_timeout_func): Make callback functions take a
	timestamp arg, (delete_ping_timeout_func): pass the timestamp to
	metacity-dialog

	* src/display.c (meta_display_ping_timeout): add a timestamp to
	the call to the ping_timeout_func, (meta_display_ping_window,
	process_pong_message): add a timestamp to the call to the
	ping_reply_func

	* src/display.h (MetaWindowPingFunc typedef): add a timestamp to
	this function typedef

	* src/keybindings.c (error_on_command): require a timestamp and
	pass the timestamp on to metacity-dialog, (handle_run_command):
	pass a timestamp to error_on_command

	* src/metacity-dialog.c (copy_of_gdk_x11_window_set_user_time):
	new function (temporary; only for use while using gtk+-2.4),
	(kill_window_question, warn_about_no_sm_support,
	error_about_command): make these functions take a timestamp and
	call copy_of_gdk_x11_window_set_user_time, (main): require the
	first two args to the program to be "--timestamp <timestamp>"

	* src/session.c (warn_about_lame_clients_and_finish_inter): pass a
	timestamp of 0 to metacity-dialog to prevent focus (it's a popup
	not generated by and kind of user request).
2004-08-26 00:59:12 +00:00
Soeren Sandmann
9cee95f210 Move wireframe code before grab is released to prevent endless loops with
Fri Aug 20 12:54:12 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/display.c (meta_display_end_grab_op): Move wireframe code
	before grab is released to prevent endless loops with fullscreen
	windows.
2004-08-20 10:56:41 +00:00
Havoc Pennington
06a58f43c0 track the last_xor_rect separately from the current window size, and then
2004-08-18  Havoc Pennington  <hp@redhat.com>

	* src/display.h (struct _MetaDisplay): track the last_xor_rect
	separately from the current window size, and then use that to
	paint the wireframe including the frame, and taking into
	account shaded windows.

	* src/window.c (meta_window_get_xor_rect): new function to compute
	the xor rect; it is not really 100% right, because it uses the
	frame dimensions from the window at the start of the move/resize.
	But probably won't break in practice.
2004-08-19 02:05:24 +00:00
Rob Adams
afee4a4251 use height and top/bottom struts to compute gap (copy/paste bug).
2004-08-15  Rob Adams  <readams@readams.net>

	* src/windows.c (meta_window_update_struts): use height and
	top/bottom struts to compute gap (copy/paste bug).
2004-08-15 17:32:45 +00:00
Rob Adams
caaad4449c Allow struts larger than 1/2 the screen width/height, as long as there's a
2004-08-15  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_update_struts): Allow struts larger
	than 1/2 the screen width/height, as long as there's a minimum
	sized gap between them.  Patch from Bill Haneman <billh@gnome.org>
	for bug #144126.
2004-08-15 15:26:30 +00:00
Soeren Sandmann
766d46b70d New function. Use it here to synchronize with the hardware between each
Mon Aug  9 05:38:33 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/effects.c (graphics_sync): New function.
	* src/effects.c (effects_draw_box_animation_timeout): Use it here
	to synchronize with the hardware between each frame.
2004-08-09 03:40:37 +00:00
Rob Adams
5f1de4bf7a Add #ifdef around XSYNC code; fixes compile problem if XSYNC is disabled.
2004-08-08  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_move_resize_internal): Add #ifdef
	around XSYNC code; fixes compile problem if XSYNC is disabled.
	Path for #149314 from Peter O'Shea and independently Mike Castle.
2004-08-08 16:18:52 +00:00
Soeren Sandmann
2e0bb772ea Flush after setting cursor. (Rest of #149413).
Sun Aug  8 14:20:00 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/frame.c (meta_frame_set_screen_cursor): Flush after setting
	cursor. (Rest of #149413).
2004-08-08 12:23:34 +00:00
Elijah Newren
118a1fb76a activating the current workspace should be a no-op. This prevents a race
2004-08-07  Elijah Newren  <newren@math.utah.edu>

	* src/display.c (event_callback): activating the current workspace
	should be a no-op.  This prevents a race condition in focus window
	choice when activating a window via the taskbar.  Fix for #149589.
2004-08-08 04:11:33 +00:00
Elijah Newren
bd73853f72 Revert Rob's 2004-07-31 patch that ignored net_wm_user_time when
2004-08-07  Elijah Newren  <newren@math.utah.edu>

	* window.c, window.h: Revert Rob's 2004-07-31 patch that ignored
	net_wm_user_time when unminimizing a window

	* window.c (meta_window_activate): If a nonzero timestamp is
	passed, update the window's net_wm_user_time accordingly.  (see
	comments 102-108 of bug 118372)
2004-08-08 00:02:02 +00:00
Rob Adams
de4c7a0610 Remove some extraneous items that could sometimes appear in the window
2004-08-07  Rob Adams  <readams@readams.net>

	Remove some extraneous items that could sometimes appear in the
	window menu.  Fix for #144493.

	* src/menu.c (menuitems): Change the second separator to key on
	whether there are any workspaces.
	(meta_window_menu_new): use NULL label instead of 0 op to identify
	separator

	* src/window.c (meta_window_show_menu): Change the conditions on
	the directions to take into account "holes" in the workspace
	layout and also only set META_MENU_OP_WORKSPACES when there's more
	than one workspace.
2004-08-07 17:50:40 +00:00
Havoc Pennington
7bcc485701 add XFlush() after setting cursor, #149413
2004-08-07  Havoc Pennington  <hp@redhat.com>

	* src/screen.c (meta_screen_set_cursor): add XFlush() after
	setting cursor, #149413
2004-08-07 16:33:11 +00:00
Elijah Newren
e81659d2ff Focusing a window upon unshowing the desktop in various ways (panel applet
2004-08-06  Elijah Newren  <newren@math.utah.edu>

	* src/display.c (event_callback): Focusing a window upon unshowing
	the desktop in various ways (panel applet or keybinding) was
	inconsistent for sloppy and click focus modes.  Fix this by
	calling meta_workspace_focus_default_window after unshowing the
	desktop via a _NET_SHOWING_DESKTOP message.  (resolves #149543)
2004-08-07 03:13:56 +00:00
Elijah Newren
385248044d prevent keyboard from "getting locked" upon workspace switch, by making
2004-08-06  Elijah Newren  <newren@math.utah.edu>

	* src/workspace.c (meta_workspace_focus_default_window): prevent
	keyboard from "getting locked" upon workspace switch, by making
	sure that the no_focus_window has focus if no other window does.
	(fixes #147475)
2004-08-06 18:13:55 +00:00
Elijah Newren
abe183c14c Have newly mapped windows that are denied focus appear after the focused
2004-08-05  Elijah Newren  <newren@math.utah.edu>

	Have newly mapped windows that are denied focus appear after the
	focused window in the alt-tab list.  This allows one to switch to
	such a window with a single alt-tab press.

	* src/window.c (ensure_mru_position_after): new function,
	(meta_window_show): If newly mapped window is denied focus, call
	ensure_mru_position_after to make the window appear after the
	focus window in the mru list.
2004-08-05 17:48:39 +00:00
Elijah Newren
b834001fe7 prepend window to mru list instead of appending, since making the window
2004-08-05  Elijah Newren  <newren@math.utah.edu>

	* src/window.c (meta_window_stick): prepend window to mru list
	instead of appending, since making the window sticky should imply
	that it is the most recently used, not the least recently.  (fixes
	#149369)
2004-08-05 16:23:37 +00:00
Elijah Newren
cd09a27aa6 Fix some bugs (reported in #120100) regarding the focus window when using
2004-08-02  Elijah Newren  <newren@math.utah.edu>

	Fix some bugs (reported in #120100) regarding the focus window
	when using the workspace switcher.

	* src/display.c (event_callback): When switching workspaces due to
	a _NET_CURRENT_DESKTOP message, make sure to focus the default
	window as well.

	* src/workspace.c (meta_workspace_focus_default_window,
	meta_workspace_focus_mru_window): Make DOCK or DESKTOP windows
	have lower priority than others when choosing a window to focus.
	(For the former function, this means don't focus them at all; for
	the latter, this means only focus them (via the
	meta_workspace_focus_top_window call) if no other mru window can
	be found.)
2004-08-02 19:23:03 +00:00
Rob Adams
12f4f7c6b0 Fix bug that caused windows to not be focused on unminimizing because of
2004-07-31  Rob Adams  <readams@readams.net>

	Fix bug that caused windows to not be focused on unminimizing
	because of user time support.

	* src/window.c (meta_window_new_with_attrs): initialize
	focus_despite_user_time bit
	(window_takes_focus_on_map): focus if focus_despite_user_time
	despite user time, interestingly enough
	(meta_window_show): reset focus_despite_user_time after showing

	* src/window.h (_MetaWindow): add focus_despite_user_time bit
2004-07-31 21:26:05 +00:00
Rob Adams
e60da6c006 Fix some support for EWMH hints, and fix USER_TIME support to include the
2004-07-31  Rob Adams  <readams@readams.net>

	Fix some support for EWMH hints, and fix USER_TIME support to
	include the DEMANDS_ATTENTION hint.  Also includes some code for
	implementing _NET_RESTACK_WINDOW and _NET_MOVERESIZE_WINDOW, but
	this is disabled pending feature thaw.

	* COMPLIANCE: update with new information

	* src/display.c (meta_display_open): add new hints to list

	* src/display.h (_MetaDisplay): Add new atoms to struct

	* src/screen.c (set_supported_hint): update the list of support
	hints.
	(set_desktop_viewport_hint): new function sets the viewport hint
	to (0,0) as required by the spec for WMs with no viewport support.
	(set_desktop_geometry_hint): new function to set the desktop size
	hint to the size of the display, since we don't implement large
	desktop support, as required by the spec.
	(meta_screen_resize): update the geometry hint on screen resize

	* src/window.c (meta_window_new_with_attrs): Initialize
	demands_attention state
	(set_net_wm_state): Set demands_attention hint in the window state
	(meta_window_show): If we don't pop up a window because of
	USER_TIME, set DEMANDS_ATTENTION on the window.
	(meta_window_focus): When a window receives focus, remove
	DEMANDS_ATTENTION hint
	(meta_window_client_message): Allow other apps to set
	DEMANDS_ATTENTION on a window.  Also, if the _NET_ACTIVE_WINDOW
	hint includes a timestamp, use it.
	(update_net_wm_state): Read DEMANDS_ATTENTION state also

	* src/window.h (_MetaWindow): add wm_state_demands_attention bit.
2004-07-31 19:56:10 +00:00
Rob Adams
6f9b2cf11e Add trailing quotes to keybinding explanation text. Patch from Emil
2004-07-22  Rob Adams  <readams@readams.net>

	* src/metacity.schemas.in: Add trailing quotes to keybinding
	explanation text.  Patch from Emil Soleyman-Zomalan.
2004-07-22 23:27:51 +00:00
Elijah Newren
d0d0925e29 Choose correct window to focus when "un-showing" the desktop. Fixes
2004-06-24  Elijah Newren  <newren@math.utah.edu>

	* src/keybindings.c: (handle_toggle_desktop): Choose correct
	window to focus when "un-showing" the desktop.  Fixes #144900.
2004-06-24 20:47:31 +00:00
Elijah Newren
9d1d8fa062 Make choice of focus window be consistent for each focus mode. Fixes
2004-06-24  Elijah Newren  <newren@math.utah.edu>

	Make choice of focus window be consistent for each focus mode.
	Fixes #135810.

	* src/delete.c: (meta_window_delete): In some #if 0'ed code,
	replace meta_workspace_focus_mru_window with
	meta_workspace_focus_default_window (just in case the code becomes
	un-#if 0'ed out).

	* src/screen.c, src/screen.h: Change
	meta_screen_focus_mouse_window to meta_screen_get_mouse_window,
	and don't focus the window when found but rather return it.

	* src/window.c: (meta_window_free, meta_window_minimize): replace
	meta_workspace_focus_mru_window with
	meta_workspace_focus_default_window.

	* src/workspace.c: (meta_workspace_focus_default_window): Focus
	appropriately for the given focus method:
	   click-to-focus: focus MRU window (== toplevel window)
	   sloppy focus:   focus the window under the pointer if there is
	                   such a window, otherwise focus the mru window
	   mouse focus:    focus the window under the pointer if there is
	                   such a window, otherwise don't focus anything
2004-06-24 20:02:46 +00:00
Elijah Newren
702a4c0da7 Avoid a race condition on the choice of window to focus after the
2004-06-24  Elijah Newren  <newren@math.utah.edu>

	* src/window.c: Avoid a race condition on the choice of window to
	focus after the previously focused window gets closed or
	minimized.  Fixes #131582.
2004-06-24 19:41:02 +00:00
Elijah Newren
fe341bb927 make naming for "move a window"/"move the window"/"move window" more
2004-06-24  Elijah Newren  <newren@math.utah.edu>

	* src/metacity.schemas.in: make naming for "move a window"/"move
	the window"/"move window" more consistent.  Patch from Michael
	Terry for #142235.
2004-06-24 17:09:43 +00:00
Elijah Newren
8131988b5e Change meta_warning to meta_topic on failure to connect to a session
2004-06-24  Elijah Newren  <newren@math.utah.edu>

	* src/session.c: Change meta_warning to meta_topic on failure to
	connect to a session manager.  Fixes #136218.
2004-06-24 17:02:54 +00:00
Elijah Newren
28a54c6bb4 Add support for _NET_WM_USER_TIME
2004-06-17  Elijah Newren  <newren@math.utah.edu>

	Add support for _NET_WM_USER_TIME

	* src/display.c:
	(meta_display_open): Add _NET_WM_USER_TIME to atom_names[],
	(event_callback): Manually set _NET_WM_USER_TIME upon KeyPress
	(doesn't work since keyboard isn't grabbed) and ButtonPress (does
	work), this is just a fallback for applications that don't update
	this themselves.

	* src/display.h: (struct _MetaDisplay): Add atom_net_wm_user_time field

	* src/screen.c: (meta_screen_apply_startup_properties): Check for
	TIMESTAMP provided from startup sequence as well.

	* src/stack.c:
	s/meta_window_set_stack_position/meta_window_set_stack_position_no_sync/,
	(meta_window_set_stack_position): New function which calls the
	meta_window_set_stack_position_no_sync function followed immediately
	by calling meta_stack_sync_to_server.

	* src/window-props.c:
	(init_net_wm_user_time), (reload_net_wm_user_time): new functions,
	(reload_wm_hints): also load atom_net_wm_user_time

	* src/window.c:
	new XSERVER_TIME_IS_LATER macro (accounts for timestamp wraparound),
	(meta_window_new_with_attrs): add timestamp attributes,
	(window_takes_focus_on_map): use TIMESTAMP from startup
	notification and _NET_WM_USER_TIME to decide whether to focus new
	windows,
	(meta_window_show): if app doesn't take focus on map, place it
	just below the focused window in the stack
	(process_property_notify): check for changes to _NET_WM_USRE_TIME,
	(meta_window_stack_just_below): new function

	* src/window.h:
	(_MetaWindow struct): new fields for initial_timestamp,
	initial_timestamp_set, net_wm_user_time_set, and net_wm_user_time,
	(meta_window_stack_just_below): new function
2004-06-24 15:47:05 +00:00
Anders Carlsson
ef1ecc8128 Add a timestamp argument to menu functions and use it in
2004-06-21  Anders Carlsson  <andersca@gnome.org>

	* src/common.h:
	* src/menu.c: (menu_closed), (activate_cb):
	* src/window.c: (menu_callback):
	Add a timestamp argument to menu functions and
	use it in meta_window_delete.
2004-06-21 16:47:27 +00:00
Anders Carlsson
adb26d0543 Get the timestamp from the client message.
2004-06-21  Anders Carlsson  <andersca@gnome.org>

	* src/window.c: (meta_window_client_message):
	Get the timestamp from the client message.
2004-06-21 09:53:23 +00:00
Soeren Sandmann
4cfb5152f7 Fix bug 143333, support for update counter spec, and 109362, schedule
Sat Jun 19 02:21:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	Fix bug 143333, support for update counter spec, and 109362,
	schedule compensation events when events are ignored.

	* src/display.c (meta_display_open): Add _NET_WM_SYNC_REQUEST and
	_NET_WM_SYNC_REQUEST_COUNTER atoms. Remove the old
	METACITY_SYNC_COUNTER stuff.
	(meta_display_begin_op): Setup the sync counter

	* src/xprops.c, src/xprops.h, src/window-props.c, src/display.h:
	Add new atoms.

	* src/window.c (send_sync_request): new function.
	(meta_window_move_resize_internal): send a sync request before
	resizing.
	(check_move_resize_frequence): Rework logic to also check the SYNC
	case. If an event is ignored return the remaining time.
	(update_resize_timeout): Timeout that gets called when a
	compensation event is scheduled.
	(uddate_resize): schedule compensation events when an event is
	ignored.
	(meta_window_handle_mouse_grap_op_event): When an alarm is
	received and sync was turned off, turn it back on.

	* src/window.h (struct MetaWindow)  Add some variables
2004-06-19 00:45:24 +00:00
Jeff Waugh
9170f58f3b Set titlebar_uses_system_font = false. The previous default was almost
2004-06-04  Jeff Waugh  <jdub@perkypants.org>

	* src/metacity.schemas.in: Set titlebar_uses_system_font = false. The
	previous default was almost violent in its lack of appreciation for
	human beings. In fact, this entire setting should probably be removed, but
	for now, let's just fix the default. Permission granted by Havoc.
2004-06-04 13:55:10 +00:00
Rob Adams
77a1e8ec8b make the no sm support warning dialog resizable, since the default GTK
2004-05-02  Rob Adams  <readams@readams.net>

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

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

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

        * src/iconcache.c: (find_largest_sizes), (find_best_size):
        Don't down-size nitems from a gulong to an int. Fixes a
        crash with enlightenment, apparently.
2004-04-19 14:53:14 +00:00
Elijah Newren
4b9a23e8eb Fix unwanted mouse grab op on rapid click-and-release 2004-04-16 03:38:19 +00:00
Rob Adams
f3cc59c78a don't promote due to transiency; we handle that elsewhere now.
2004-03-01  Rob Adams  <readams@readams.net>

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

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

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

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

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

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

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

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

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

	* src/window.c (meta_window_notify_focus): modify code to move to
	front of MRU list so that we can have an assert that it was there
	in the first place.  This code may be causing some crashes.  See
	#131196.
2004-02-28 01:48:27 +00:00
Rob Adams
db108c1fc3 Add my copyright notice to a number of files on which it should already
2004-02-23  Rob Adams  <readams@readams.net>

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

	* src/window.c (meta_window_notify_focus): modify code to move to
	front of MRU list so that we can have an assert that it was there
	in the first place.  This code may be causing some crashes.  See
	#131196.
2004-02-23 01:48:29 +00:00
Rob Adams
f1701a751f remove trailing comma in MetaKeyBindingAction enum. Fix for #134868 thanks
2004-02-19  Rob Adams  <readams@readams.net>

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

	* src/window.c (update_move): reset drag state after shaking loose
	or reattaching.  Fix for #132625.
2004-02-16 19:01:25 +00:00
Anders Carlsson
27eb5a60f3 Actually translate a message, don't just mark it for translation.
2004-02-15  Anders Carlsson  <andersca@gnome.org>

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

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

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

	* src/workspace.c (meta_workspace_activate_with_focus): if we're
	in a move grab op, bring along the drag window.
2004-02-15 05:29:49 +00:00
James M. Cape
74a8b5b78b Use the 'utility' frame for dialogs too.
2004-01-27  James M. Cape  <jcape@ignore-your.tv>

        * src/themes/Esco/metacity-theme-1.xml: Use the 'utility' frame
        for dialogs too.
2004-01-28 04:20:22 +00:00
James M. Cape
4b3b706369 Updated this theme.
2004-01-24  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Updated this theme.
2004-01-24 16:20:41 +00:00
Elijah Newren
595cbe2ac0 Remove duplicate entries. 2004-01-21 17:33:56 +00:00
Rob Adams
007a1f0d0d Default binding removed for toggle_shaded, since we don't have anything in
2004-01-17  Rob Adams  <readams@readams.net>

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

	* src/window.c (meta_window_show_menu): Don't show
	left/right/up/down if a window is sticky.  Make "On Top"
	insensitive for docks, splash screens, and desktops since it has
	no effect anyway.
2004-01-17 18:57:26 +00:00
Rob Adams
3d996ff73d update default action_double_click_titlebar to be toggle_maximize instead
2004-01-10  Rob Adams  <readams@readams.net>

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

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

	Add _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS.

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

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

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

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

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

	* src/screen.c (set_supported_hint): add atom_net_frame_extents
	and atom_net_request_frame_extents
2004-01-10 17:16:07 +00:00
Calum Benson
c820769bce Ensure window buttons get larger when using large print themes.
Fixes #123469.
2004-01-09 11:17:28 +00:00
Rob Adams
2fdb75ad45 Maintain the button grab for sloppy and mouse focus all the time. This
2003-01-04  Rob Adams  <readams@readams.net>

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

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

	* src/window.c (meta_window_notify_focus): drop focus button grab
	on FocusIn and acquire it on FocusOut only when in click-to-focus
	mode.
2004-01-05 07:24:32 +00:00
Havoc Pennington
a27089a110 handle ReparentNotify, and add a lot of debug output.
2003-12-25  Havoc Pennington  <hp@redhat.com>

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

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

	* src/display.c (event_callback): don't do any of the compositor
	event handling inline, do it all in compositor.c
2003-12-26 00:05:26 +00:00
Rob Adams
c2ba0a7d67 2003-12-21 Rob Adams <readams@readams.net
* src/main.c (main): fix minor punctuation error in a string.  Fix
	for #129805.
2003-12-22 00:43:53 +00:00
Rob Adams
690100f1ad Reorganize the window menu according to discussion on #110904. The
2003-12-20  Rob Adams  <readams@readams.net>

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

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

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

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

	* src/window.c (menu_callback): implement support for the new menu
	ops.
	(meta_window_show_menu): don't use the OP_*SHAPE operations, and
	compute which of the OP_MOVE_TO_* ops should be used for the
	current workspace and workspace layout.  Add the OP_*ABOVE
	operations.
2003-12-21 06:31:40 +00:00
Rob Adams
4be245a26a add test-size-hints to cvsignore 2003-12-19 23:37:23 +00:00
Rob Adams
104786735a initialize grab_wireframe_active to FALSE. Fix for #128090.
2003-12-17  Rob Adams  <readams@readams.net>

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

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

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

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

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

	* src/workspace.c (meta_workspace_add_window): handle sticky
	windows so that we add to add mru lists if needed
	(meta_workspace_remove_window): handle sticky windows so that they
	are removed from all mru lists if needed.
2003-12-14 19:19:40 +00:00
Rob Adams
9bde925d3d Revert prior change 2003-12-13 23:00:06 +00:00
Rob Adams
7630d22b8d Add increased robustness for dealing with all workspaces windows and MRU
2003-12-13  Rob Adams  <readams@readams.net>

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

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

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

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

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

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

	* src/window.c (meta_window_free): unstick window to get it out of
	mru_list it should not be in; assert that window has been removed
	from all mru_list. Perhaps fixes #122016 crash.
2003-12-13 03:58:55 +00:00
Havoc Pennington
4ebdb0b9c0 fix up compositing manager to somewhat work
2003-11-29  Havoc Pennington  <hp@redhat.com>

	* fix up compositing manager to somewhat work
2003-11-30 03:30:27 +00:00
Havoc Pennington
8d892f76da Oops, did not mean to do that. 2003-11-24 23:05:04 +00:00
Havoc Pennington
03bbe3de17 fix the extension checks
2003-11-24  Havoc Pennington  <hp@redhat.com>

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

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

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

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

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

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

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

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

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

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

	* COMPLIANCE: new file

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

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

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

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

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

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

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

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

	* src/window.c (update_net_wm_type): don't set window->type_atom
	here so that the type-inference code will actually be called.  Fix
	for #126873 from Keith Packard.
2003-11-16 03:56:04 +00:00
Rob Adams
3c384d37c6 configure frame first if we grow more than we shrink combined in both
2003-11-08  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_move_resize_internal): configure frame
	first if we grow more than we shrink combined in both dimensions.
	Patch from Soren Sandmann for #108925.
2003-11-08 17:25:49 +00:00
Rob Adams
66b2e8bc3f use maximize_after_placement to automaximize in meta_window_place; avoids
2003-11-07  Rob Adams  <readams@readams.net>

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

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

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

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

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

	* src/window.c (meta_window_notify_focus): if a window is focused
	which is not either a dock or a transient in the same group as a
	dock, shuffle all dock/desktop windows to the end of the MRU list
	so they won't annoyingly get focus all the time. #123816
2003-10-26 16:22:51 +00:00
Yukihiro Nakai
4770da34b3 Gettextize metacity-theme-viewer. #121747 2003-10-15 16:04:12 +00:00
Havoc Pennington
6aff3466c6 In the "prefs cause code complexity" department, here's a "sloppy focus
2003-10-13  Havoc Pennington  <hp@redhat.com>

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

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

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

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

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

	* src/prefs.c: add REDUCED_RESOURCES pref

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

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

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

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

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

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

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

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

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

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

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

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

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

	* src/display.c (meta_display_begin_grab_op): initialize
	display->grab_have_pointer to FALSE, previously I think you could
	get a case where we didn't have the grab and thought we did.
	Bugs were reported with this happening. Of course we still have
	the "why did the grab fail" problem, but it should be less
	noticeable with this fixed.
2003-10-11 04:27:06 +00:00
Rob Adams
6d7d586f3c disable onscreen resize constraints for right, left, and bottom, since
2003-10-06  Rob Adams  <readams@readams.net>

	* src/constraints.c (constraint_onscreen_*_func): disable onscreen
	resize constraints for right, left, and bottom, since there is no
	way to violate onscreen constraints by resizing in these
	directions and the code to implement the constraints made some
	incorrect assumptions.  Fix for #120701, #120756, #123165,
	#123631, #123838.
2003-10-07 02:08:45 +00:00
Havoc Pennington
199d20197e add the moveresize idle at META_PRIORITY_RESIZE so it runs before GTK does
2003-09-30  Havoc Pennington  <hp@redhat.com>

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

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

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

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

	* src/tools/metacity-message.c (main): call
	bind_textdomain_codeset(), fix from Yukihiro Nakai bug #121743
2003-09-30 19:59:15 +00:00
Rached Ben Mustapha
37640a925e Fix bug #118428
2003-07-28  Rached Ben Mustapha <rached@benmur.net>

        Fix bug #118428

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

	* src/tabpopup.c (meta_ui_tab_popup_new): put a random cap on
	number of characters in the title of each window, bug #109301
2003-09-29 23:42:45 +00:00
Havoc Pennington
89ca4aab3d a little program to test size hints, for now just a 0x0 min size to verify
2003-09-29  Havoc Pennington  <hp@redhat.com>

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

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

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

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

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

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

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

        Fix #103575, spawn child processes on proper screen.

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

	* src/delete.c (delete_ping_timeout_func): pass --screen to
	metacity-dialog
2003-09-29 16:55:26 +00:00
Havoc Pennington
26c2ae81ea when focus on root window becomes None, set it to something other than
2003-09-26  Havoc Pennington  <hp@redhat.com>

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

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

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

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

	* src/session.c (io_from_warning_dialog): fix hang when we get
	EOF, #121376 from Laurent Vivier
2003-09-25 01:50:30 +00:00
Rob Adams
dc40522ea7 Fix bug where multiple entries could appear in MRU lists, or no entry when
2003-09-20  Rob Adams <readams@readams.net>

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

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

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

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

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

	* src/workspace.c (ensure_work_areas_validated): For right and
	bottom struts, compute strut relative to root window and not to
	xinerama edge in compliance with EWMH recommendations.
2003-09-20 04:58:25 +00:00
Rob Adams
9ddacb019e harden against null return from gdk_pixmap_foreign_new. Fix for #116923.
2003-08-29  Rob Adams  <robadams@ucla.edu>

	* src/ui.c (meta_gdk_pixbuf_get_from_pixmap): harden against null
	return from gdk_pixmap_foreign_new.  Fix for #116923.
2003-08-30 01:48:31 +00:00
Rob Adams
dbcf03535d Complete the transition to using the MRU window as the default focus
2003-08-20  Rob Adams  <robadams@ucla.edu>

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

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

	* src/constraints.c (meta_window_constrain): do northwest resize
	when maximizing and fullscreening to avoid potential "off-by-one"
	problems.
2003-08-21 04:27:11 +00:00
Rob Adams
a2b6ff6d42 put windows with wm_state_below at the bottom. Make this higher priority
2003-08-19  Rob Adams  <robadams@uclu.edu>

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

	* src/constraints.c (meta_window_constrain): recalculate frame
	geometry if the window gets maximized after placement, since it's
	likely to change.  Fix for #120117.
2003-08-19 01:10:01 +00:00
Ray Strode
81da59a8a4 Use MRU list to find focusing window after a window is deleted instead of
2003-08-17  Ray Strode  <halfline@hawaii.rr.com>

	* src/delete.c (meta_window_delete): Use MRU list to find focusing
	window after a window is deleted instead of using top window. Fix
	for #108643.
2003-08-17 21:43:50 +00:00
Havoc Pennington
71cd8948d2 Patch from Soeren Sandmann #108926 to improve opaque resize
2003-08-16  Havoc Pennington  <hp@pobox.com>

	Patch from Soeren Sandmann #108926 to improve opaque resize

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

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

	* src/display.c (xcursor_for_op): fix cursor for
	META_GRAB_OP_MOVING, #111943
2003-08-16 14:36:56 +00:00
Rob Adams
7dc793c3be fix but with maximizing/fullscreening windows 2003-08-16 01:05:37 +00:00
Ray Strode
2fc880db19 Changed MRU list to be per workspace instead of per display, so sticky
2003-08-15  Ray Strode  <halfline@hawaii.rr.com>

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

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

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

	* src/display.h: Remove mru_list from MetaDisplay

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

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

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

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

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

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

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

	* src/constraints.c (get_outermost_onscreen_positions)
	Compute the "effective" height of the work area and the minimum
	size for the window to compute a value by which a window is
	allowed to violate the top constraint.
	(meta_window_constrain): convert to a resize then a move instead
	of a move then resize.
2003-08-15 01:07:58 +00:00
Havoc Pennington
5200e59ba3 don't select for button press/release events, as that keeps other clients
2003-08-10  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): don't select for button
	press/release events, as that keeps other clients from doing so,
	and it doesn't seem that metacity has any reason to do it.
	Patch from Andreas Volz.
2003-08-10 20:14:45 +00:00
Bastien Nocera
a252050cb8 fix markup being ignored when a window title has a forbidden character in
2003-08-08  Bastien Nocera  <hadess@hadess.net>

	* src/metacity-dialog.c: (kill_window_question),
	(warn_about_no_sm_support): fix markup being ignored when a window
	title has a forbidden character in it (eg. "Send & Receive")
	* src/tools/metacity-window-demo.c: fix warning
2003-08-08 16:25:34 +00:00
Arvind Samptur
fb5f3f6bb0 Number of strings we are processing is one more than required.
2003-07-29  Arvind Samptur  <arvind.samptur@wipro.com>

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

        Also get the string count right even without a null byte at the end.
        Pointed out by Havoc.
2003-07-31 09:35:56 +00:00
Rob Adams
5727235572 Update window shaking loose so that the window is moved to the pointer and
2003-07-27  Rob Adams  <robadams@ucla.edu>

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

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

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

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

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

	* src/theme-viewer.c (run_theme_benchmark): also measure wall
	clock time, and run over a number of window sizes.
2003-07-27 23:35:40 +00:00
Jordi Mallach
63a6f2121e Add X-GNOME-Bugzilla entries.
2003-07-02  Jordi Mallach  <jordi@sindominio.net>

	* src/metacity.desktop.in: Add X-GNOME-Bugzilla entries.
2003-07-02 17:15:56 +00:00
Padraig O'Briain
42182cbe77 Activate window before ending grab. This fixes bug #114037.
2003-07-01  Padraig O'Briain  <padraig.obriain@sun.com>

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

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

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

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

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

	* src/constraints.c (constraint_hints_applies_func): don't apply
	hints to maximized or fullscreen, rather than only fullscreen
	(constrain_move): add paranoia max number of iterations to the
	heuristic loop
2003-06-28 16:12:32 +00:00
Rob Adams
34ec58af0a Add keybinding to allow the user to toggle _NET_WM_STATE_ABOVE on windows.
2003-06-26  Rob Adams  <robadams@ucla.edu>

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

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

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

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

	* src/window.[ch] (meta_window_make_above): new function to put a
	window into the above state
	(meta_window_unmake_above): new function takes a window out of the
	above state
2003-06-27 14:49:56 +00:00
Rob Adams
971f3f1207 Update constraints code to support the new _NET_WM_STRUT_PARTIAL EWMH
2003-06-10  Rob Adams  <robadams@ucla.edu>

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

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

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

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

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

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

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

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

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

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

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

	* src/tools/metacity-window-demo.c: Support partial-width struts
	on the dock window tests for metacity testing purposes.
2003-06-26 03:09:38 +00:00
Rob Adams
4d8414acfd Focus on mouse click in sloppy/mouse to fix keynav. Fix for #115072.
2003-06-12  Rob Adams  <robadams@ucla.edu>

	* src/display.c (event_callback): Focus on mouse click in
	sloppy/mouse to fix keynav.  Fix for #115072.
2003-06-13 05:47:51 +00:00
Rob Adams
793a630e2f honor --disable-schemas-install. Fix for #106123 from Julio Merino
2003-06-12  Rob Adams  <robadams@ucla.edu>

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

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

	* display.c (meta_display_open): remove hints

	* display.h: remove atoms for hints

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

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

	* window.h: remove do_not_cover flag

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

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

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

	* src/display.c: delete event_queue_callback

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* src/groups.c (meta_window_get_group): simply return
	window->group rather than computing it and returning
	window->cached_group
	(meta_window_compute_group): new function computes window->group.
	Designed to be called once from meta_window_new
	(remove_window_from_group): change cached_group to group
2003-06-04 16:45:47 +00:00
Rob Adams
3edad8599c CVS2003-05-29 Rob Adams <robadams@ucla.edu>
CVS2003-05-29  Rob Adams  <robadams@ucla.edu>

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

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

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

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

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

: ----------------------------------------------------------------------
2003-05-30 20:24:00 +00:00
Havoc Pennington
051e404d09 s/int/gsize/ for g_file_get_contents() (found independently by
2003-05-29  Havoc Pennington  <hp@redhat.com>

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

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

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

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

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

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

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

	* src/stack.c (is_focused_foreach): foreach used by
	get_standalone_layer to find focused transient descendants.
2003-05-29 17:16:22 +00:00
Havoc Pennington
1620fd5408 the mask display->ignored_modifier_mask wasn't being bound, due to "<"
2003-05-20  Havoc Pennington  <hp@pobox.com>

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

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

	* src/metacity-dialog.c: (kill_window_question):
	Split up the strings to make life easier for translators.
2003-05-20 15:54:42 +00:00
Anders Carlsson
c9df553d02 Fix the wording and HIGify the dialog.
2003-05-20  Anders Carlsson  <andersca@codefactory.se>

	* src/metacity-dialog.c: (kill_window_question):
	Fix the wording and HIGify the dialog.
2003-05-20 15:06:01 +00:00
Havoc Pennington
c370a3e503 revert broken change that assumed foreach_ancestor iterated over the
2003-05-18  Havoc Pennington  <hp@pobox.com>

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

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

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

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

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

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

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

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

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

	* src/screen.c (meta_screen_minimize_all_except): new function
2003-05-16 21:59:08 +00:00
Havoc Pennington
a7c344bbc5 when moving window to another workspace, don't switch to that workspace.
2003-05-03  Havoc Pennington  <hp@pobox.com>

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

	* src/window.c (menu_callback): when moving window to another
	workspace, don't switch to that workspace.
2003-05-03 18:14:17 +00:00
Rob Adams
a8f9e2e919 Don't apply onscreen constraints to full screen windows. Fix for #110048
2003-05-01  Rob Adams  <robadams@ucla.edu>

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

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

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

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

* src/Makefile.am: add -no-undefined to libmetacity_private_la_LDFLAGS
and write dependency libraries in libmetacity_private_la_LIBADD.
2003-04-19 07:19:04 +00:00
Rob Adams
7c5e40e0ea cascade on xinerama with pointer instead of on first xinerama.
2003-04-06  Rob Adams  <robadams@ucla.edu>

	* src/place.c (find_next_cascade): cascade on xinerama with
	pointer instead of on first xinerama.
2003-04-07 03:33:45 +00:00
Rob Adams
9bd17f4fae Update placement policy for screen with multiple xineramas. Windows will
2003-04-05  Rob Adams  <robadams@ucla.edu>

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

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

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

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

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

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

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

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

	* src/window.c (update_move): Don't cap refresh rate during
	moves. Remove bogus update-if-we-moved-more-than-a-delta.
2003-03-28 13:11:24 +00:00
Soeren Sandmann
3c8b051e31 just return if we are not verbose.
Sun Mar 23 23:04:06 2003  Soeren Sandmann  <sandmann@daimi.au.dk>

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

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

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

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

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

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

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

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

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

	* screen.c (meta_screen_ensure_tab_popup): update function to deal
	with GList returned by meta_display_get_tab_list instead of GSList.
2003-03-15 02:16:21 +00:00
Rob Adams
5eb4eea57e include left frame geometry when maximizing or fullscreening windows. Fix
2003-03-11  Rob Adams <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): include left frame
	geometry when maximizing or fullscreening windows.  Fix for
	#108127.
2003-03-12 03:56:01 +00:00
Havoc Pennington
5f75334d57 Switch over to new constraints code, unquestionably introduces some bugs,
2003-02-27  Havoc Pennington  <hp@redhat.com>

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

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

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

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

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

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

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

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

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

        Give me back my keys.

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

        * src/window.c: (recalc_window_type): re-grab the
        keys.
2003-02-27 22:44:36 +00:00
Mark McLoughlin
6af9a11361 release the keyboard grab before sending the action message to the panel.
2003-02-26  Mark McLoughlin  <mark@skynet.ie>

        * src/keybindings.c: (handle_panel_keybinding): release
        the keyboard grab before sending the action message to
        the panel.
2003-02-26 01:55:25 +00:00
Mark McLoughlin
73cce3b174 Take control of the panel's global keybindings. The screenshot utility is
2003-02-24  Mark McLoughlin  <mark@skynet.ie>

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

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

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

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

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

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

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

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

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

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

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

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

	* src/place.c (find_first_fit): change to use
	"center tiling" (center a screen full of tiled windows,
	rather than aligning them top left). Adapt to new
	xinerama functions.
2003-02-23 17:09:46 +00:00
Rob Adams
546679cbd1 modify comment to explain why the icon window element is set to None. Fix
2003-02-22  Rob Adams <robadams@ucla.edu>

	* window.c (set_wm_state): modify comment to explain why the icon
	window element is set to None.  Fix for #97357 thanks to Gregory
	Merchan.
2003-02-23 04:56:11 +00:00
Havoc Pennington
61d5423b5d change max workspaces to 36 #81855
2003-02-22  Havoc Pennington  <hp@pobox.com>

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

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

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

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

	Patch for #84999 based on patch from Mark McLoughlin

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

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

	* src/stack.c (create_constraints): don't create constraints
	between windows on different screens, #106086 tracked down
	by Arvind
2003-02-21 17:51:48 +00:00
Arvind Samptur
00d6f549f9 : Update the workspace names from gconf and set the NET_DESKTOP_NAMES
2003-02-14  Arvind Samptur <arvind.samptur@wipro.com>
        * src/screen.c: (meta_screen_new) : Update the workspace
        names from gconf and set the NET_DESKTOP_NAMES atom.
        Renamed update_workspace_names() to set_workspace_names().
        Fixes #105498
2003-02-14 07:03:46 +00:00
Havoc Pennington
02a491c1bc require GTK+ 2.2.0
2003-02-13  Havoc Pennington  <hp@redhat.com>

	* configure.in: require GTK+ 2.2.0

	* src/ui.c (meta_ui_init): remove hackaround for Pango X core
	fonts backend
2003-02-13 23:16:49 +00:00
Akira TAGOH
cdb4e2541c fix a typo and missing option. (#105186)
2003-02-05  Akira TAGOH  <tagoh@gnome.gr.jp>

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

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

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

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

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

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

	* metacity-theme-1.xml:

	Change name in theme file to "Simple".
2003-01-31 03:44:05 +00:00
Havoc Pennington
18990530b0 don't create workspaces menu items if only 1 workspace. Fix for #101952
2003-01-29  Havoc Pennington  <hp@pobox.com>

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

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

	* src/window.c (constrain_position): restore the ability for
	undecorated windows to position themselves overlapping the top
	panel, but don't let decorated windows do so. Oh the hacks...
2003-01-25 16:58:43 +00:00
Havoc Pennington
5169a06dd0 small code snippet to fix startup sequences that set legacy class/name
2003-01-08  Havoc Pennington  <hp@pobox.com>

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

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

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

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

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

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

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

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

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

	* src/window.c (meta_window_handle_mouse_grab_op_event): fix event
	compression code to use GDK algorithm suggested by Owen, should be
	more efficient.
2003-01-22 04:54:04 +00:00
Havoc Pennington
d02dbd62e9 only hop window to the current workspace if the window was previously
2003-01-21  Havoc Pennington  <hp@redhat.com>

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

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

        Attempt to fix #85916

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

	* src/keybindings.c (grab_keyboard): properly return failure
	if the GrabKeyboard doesn't work
2003-01-21 22:40:25 +00:00
Seth Nickell
e45eda148b Initial revision 2003-01-17 00:19:24 +00:00
Havoc Pennington
25615f929e recalc_window_features() after making these changes, should fix #103317
2003-01-14  Havoc Pennington  <hp@pobox.com>

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

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

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

	* src/keybindings.c: Increase the number of run_command handlers
	from 12 to 32.
2003-01-15 02:39:07 +00:00
Havoc Pennington
8f7eda43a8 implement compression of motion events (drop all but the most recently
2003-01-11  Havoc Pennington  <hp@pobox.com>

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

	* configure.in: add ability to --disable-shape
2003-01-11 18:09:12 +00:00
Havoc Pennington
9073724c2b revert that change, I got the wrong .desktop file. doh.
2003-01-10  Havoc Pennington  <hp@redhat.com>

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

	* src/Makefile.am (desktopfiles_DATA): don't install .desktop file
	for properties dialog if we aren't building/installing the
	properties dialog.
2003-01-10 20:43:47 +00:00
James M. Cape
198398ba88 Use a line for the titlebar text bg.
2003-01-09  James M. Cape  <jcape@ignore-your.tv>

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

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

	* src/metacity.schemas.in: change Windows+click back to Alt+click,
	Windows+click just surprised everybody and didn't work half the
	time. Maya users can configure it, and GTK DND can change its
	default.
2003-01-09 22:48:07 +00:00
Havoc Pennington
8e14da1759 assign Alt+F12 to shade window, per #102658
2003-01-08  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: assign Alt+F12 to shade window,
	per #102658
2003-01-09 04:50:13 +00:00
Havoc Pennington
b619f9baa8 fix off-by-one, patch from readams@hmc.edu, #102806
2003-01-07  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (update_num_workspaces): fix off-by-one, patch from
	readams@hmc.edu, #102806
2003-01-08 04:23:18 +00:00
Arvind Samptur
e2155c8fee don't apply offscreen height difference. This would get the window under
2003-01-06  Arvind Samptur <arvind.samptur@wipro.com>
        * src/window.c: (constrain_position) don't apply
        offscreen height difference. This would get the
        window under the panel on a resize or a move.
        Fixes #102418
2003-01-06 04:40:11 +00:00
Havoc Pennington
036747fba5 invert vertical_workspaces cases (we want to go down each column if it's
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_calc_workspace_layout): invert
	vertical_workspaces cases (we want to go down each column if
	it's vertical, and across each row if horizontal). Patch
	from readams@hmc.edu
2003-01-06 02:59:19 +00:00
Havoc Pennington
aad72e575d put in the HAVE_GTK_MULTIHEAD conditionals so we build with GTK 2.0
2003-01-05  Havoc Pennington  <hp@pobox.com>

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

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

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

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

	* src/screen.c (meta_screen_calc_workspace_layout): enhance this
	to handle all the funky layouts and calculate more information
	than before
2003-01-05 18:36:01 +00:00
Havoc Pennington
6cfcc01334 handle the client having a shape mask, fixes #101806
2003-01-05  Havoc Pennington  <hp@pobox.com>

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

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

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

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

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

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

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

	* src/window.c (meta_window_fill_horizontal)
	(meta_window_fill_vertical): maximize to work area, not entire
	screen. doh.
2003-01-03 19:06:53 +00:00
Havoc Pennington
1ece207400 Reverted visual bell patch, #99886
2002-12-19  Havoc Pennington  <hp@pobox.com>

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

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

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

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

	* src/window.c (update_sm_hints): ditto

	* src/keybindings.c (reload_modmap): ditto
	(meta_display_process_key_event): ditto
2002-12-19 20:18:54 +00:00
Havoc Pennington
89c31c43ca select ColormapChangeMask on toplevel windows, maybe a partial fix for
2002-12-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): select ColormapChangeMask
	on toplevel windows, maybe a partial fix for #101478
2002-12-18 22:16:58 +00:00
Hidetoshi Tajima
f6b4f11ebe added support for border only windows. #100984.
* src/themes/AgingGorilla/metacity-theme-1.xml: added support for
	border only windows. #100984.
2002-12-18 01:51:35 +00:00
Havoc Pennington
908198c25d s/focussed/focused/
2002-12-17  Havoc Pennington  <hp@pobox.com>

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

	* src/xprops.c (validate_or_free_results): add a comma to message #101401
2002-12-17 18:26:08 +00:00
Bill Haneman
e7e47a8b85 Added visual bell feature, fix for 99886. 2002-12-17 01:08:29 +00:00
Havoc Pennington
ea45e43082 argh, screwed that up. get WM_NAME as VALUE_TEXT_PROPERTY #101383
2002-12-16  Havoc Pennington  <hp@pobox.com>

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

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

	* src/xprops.h (enum): add META_PROP_VALUE_STRING_AS_UTF8 to get a
	latin1 string then convert.
2002-12-16 22:01:15 +00:00
Havoc Pennington
8a9a4aba77 get window name before anything else.
2002-12-15  Havoc Pennington  <hp@pobox.com>

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

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

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

	* src/prefs.c (meta_prefs_change_workspace_name): don't pass NULL
	string to gconf_client_set_string #101237
2002-12-15 18:51:29 +00:00
Havoc Pennington
fd8c3514d6 only install .desktop file for metacity-properties if we actually install
2002-12-13  Havoc Pennington  <hp@redhat.com>

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

	* src/display.c (event_callback): not focusing on button 2 click
	was crack, revert that change.
2002-12-13 22:20:31 +00:00
Havoc Pennington
967777b965 add myself here, bug #100789
2002-12-09  Havoc Pennington  <hp@pobox.com>

	* AUTHORS: add myself here, bug #100789

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

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

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

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

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

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

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

	* src/display.c, src/window.c: Handle crossing events during
	resizing. (#93384).
2002-12-09 21:07:27 +00:00
Havoc Pennington
9c337d0a8f updates
2002-12-08  Havoc Pennington  <hp@pobox.com>

	* README: updates

	* src/window.c (MAX_RESIZES_PER_SECOND): change to 20 instead of
	30, just as an experiment.
	(MOVE_THRESHOLD): change 15 to 20
	(RESIZE_THRESHOLD): change 15 to 20

	* src/util.c (ensure_logfile): kill this function when verbose
	mode is disabled.
2002-12-09 02:53:16 +00:00
Havoc Pennington
e0c8b245ef new functions to resize to fill screen
2002-12-08  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_fill_vertical)
	(meta_window_fill_horizontal): new functions to resize to
	fill screen

	* src/keybindings.c: add vert, horiz maximize

	* src/prefs.c: had vert, horiz maximize

	* src/metacity.schemas.in: shorten some overlong short
	descriptions that make the keybindings capplet look ugly.
	Add maximize_vertically, maximize_horizontally keys.
2002-12-08 21:09:05 +00:00
Havoc Pennington
8d314aead8 make this always return FALSE for now, to avoid bug reports.
2002-12-08  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (meta_prefs_get_application_based): make this always
	return FALSE for now, to avoid bug reports.

	* src/util.c (ensure_logfile): put "opened log file" message on
	stderr so it will normally land in ~/.xsession-errors

	* configure.in: remove extra AC_ARG_PROGRAM

	* src/display.c (event_callback): handle the toggle-verbose message

	* src/tools/metacity-message.c: add a toggle-verbose message, been
	meaning to do this for a while.

	* src/util.c (meta_set_verbose): if verbose mode is enabled and we
	don't support it, then exit.

	* src/prefs.c: allow building without gconf (currently means some
	prefs are no-ops)

	* src/util.c, src/util.h: support defining macros to
	kill all verbose output entirely. (Removes the code and strings
	associated with it)

	* configure.in: don't get METACITY_PROPS_LIBS if not building the
	config dialog.
	(HAVE_GCONF): allow building sans gconf, if you are size-sensitive
	and not using gnome.
	(WITH_VERBOSE_MODE): add ability to disable all the verbose debug
	spew strings, to shrink the binary.
	(--disable-sm): allow SM support to be forced on or off
	(--disable-startup-notification): allow forcing this on or off
2002-12-08 19:17:17 +00:00
Havoc Pennington
15d28dfd97 also treat empty string as "unset" in this function.
2002-12-08  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (update_workspace_name): also treat empty string as
	"unset" in this function.
2002-12-08 14:59:14 +00:00
Hidetoshi Tajima
d78fab02eb never use a window with input = FALSE take_focus = FALSE in the normal and
* src/window.h (META_WINDOW_IN_NORMAL_TAB_CHAIN,
	META_WINDOW_IN_DOCK_TAB_CHAIN) : never use a window with input =
	FALSE take_focus = FALSE in the normal and doc tab chains #90409
2002-12-06 05:07:01 +00:00
Hidetoshi Tajima
d275e4bbc2 move a window to the current space on the MapRequest when it's not on the
* src/display.c (event_callback): move a window to the current
	space on the MapRequest when it's not on the space yet. #100390
2002-12-05 21:59:14 +00:00
Havoc Pennington
cef58f676d rearrange this function a bit, so that we return CONTROL_TITLE for
2002-12-01  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (get_control): rearrange this function a bit, so
	that we return CONTROL_TITLE for anything above the bottom of the
	titlebar, in the fallback case where no other control was found.
	Also, don't return RESIZE_N for title rect above the top resize
	size, unless the window is resizable.
	(meta_frames_button_press_event): only start a move when clicking
	control TITLE, not control NONE. This way you don't start moving
	a nonresizable window if you click its edges.
2002-12-02 01:34:27 +00:00
Havoc Pennington
214bcceaea conditionalize building the config dialog
2002-12-01  Havoc Pennington  <hp@pobox.com>

	* src/tools/Makefile.am: conditionalize building the config dialog

	* configure.in (BUILD_CONFIG_DIALOG): add --enable-config-dialog
	option to turn on the "window focus" dialog. This is part of
	deprecating this dialog.
2002-12-01 20:48:10 +00:00
Havoc Pennington
5e1439f89e lengthen to 15 seconds
2002-11-30  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (STARTUP_TIMEOUT): lengthen to 15 seconds

	* src/util.c (utf8_fputs): hmm, return a value

	* src/screen.c (meta_screen_apply_startup_properties): new
	function to apply initial workspace based on startup sequence.

	* src/window.c (meta_window_new): load _NET_STARTUP_ID
	(meta_window_get_startup_id): new function

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	hooks for _NET_STARTUP_ID

	* src/display.c (event_callback): send property events to
	groups.

	* src/xprops.c (meta_prop_get_values): make a type of INVALID
	mean to ignore that property (don't fetch its value).

	* src/group.c (meta_group_property_notify): new function

	* src/screen.c (set_supported_hint): support _NET_STARTUP_ID

	* src/display.c (meta_display_open): add _NET_STARTUP_ID to atoms
	we initialize

	* src/group-private.h: private header shared between
	group-props.c, group.c

	* src/group-props.h, src/group-props.c: new files to contain
	functions for retrieving group properties

	* src/window.c (meta_window_same_application): change this a bit
	to work with new definition of group

	* src/group.c (meta_window_get_group): always create a group for
	every window, using the window's own ID as group leader if
	required.

	* src/window.c (update_wm_hints): handle changes to group leader

	* src/group.c (meta_window_group_leader_changed): new function

	* src/display.h (struct _MetaDisplay): _NET_WM_WINDOW_TYPE_SPLASH,
	not SPLASHSCREEN. Reported by Gregory Merchan and Matthias Clasen.

	* src/screen.c (startup_sequence_timeout): when timing out a
	startup sequence, send a remove message, don't just time it out
	locally.
2002-12-01 03:58:04 +00:00
Calum Benson
eb40c5c2cf Removed alpha layers from the pixmaps that don't need them.
Fixes #98389, results in 10-15% speedup on most machines.
2002-11-26 17:55:34 +00:00
Glynn Foster
ba3cf950ba and especially you. 2002-11-26 12:22:39 +00:00
Havoc Pennington
fd135d0869 patch from Hidetoshi Tajima to move a window's transients when moving the
2002-11-22  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_change_workspace): patch from
	Hidetoshi Tajima to move a window's transients when moving
	the window between workspaces. #98900

2002-11-21  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): init ret_to to
	RevertToPointerRoot out of sheer paranoia; don't want no
	RevertToNone in my code!
2002-11-22 06:00:18 +00:00
Havoc Pennington
5452a0ecac delete (meta_window_new): add getting initial workspace to the batch
2002-11-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_initial_workspace): delete
	(meta_window_new): add getting initial workspace to the batch
	property get call

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	net_wm_desktop and win_workspace support
2002-11-21 05:02:38 +00:00
Havoc Pennington
6557627d8f remove unused variable
2002-11-20  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c (set_icon_title): remove unused variable

	* src/screen.c (meta_screen_new): read an existing
	_NET_CURRENT_DESKTOP and restore it if set. Makes a restart even
	less visible.

	* src/workspace.c (set_active_space_hint): don't set the hint
	during the process of unmanaging a screen
2002-11-21 04:48:53 +00:00
Havoc Pennington
b8788e9c0d Should really fix #98303
2002-11-19  Havoc Pennington  <hp@pobox.com>

	Should really fix #98303

	* src/prefs.c (meta_prefs_change_workspace_name): add
	bad hack to treat empty string the same as null

	* src/menu.c (get_workspace_name_with_accel): allocate one more
	than the length of "name" so we have room for a nul byte (and
	don't malloc(0) on empty strings). Also some formatting cleanups.
2002-11-20 04:54:01 +00:00
Havoc Pennington
60293ee189 do a recalc_window_features after setting new wm_state in order to update
2002-11-19  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_client_message): do a
	recalc_window_features after setting new wm_state in order
	to update skip_pager in addition to wm_state_skip_pager
	(set_net_wm_state): base _NET_WM_STATE on skip_pager not
	wm_state_skip_pager, ditto for skip_taskbar
2002-11-20 04:37:55 +00:00
Havoc Pennington
2541da1d83 Fix #98303 and assorted cleanup
2002-11-19  Havoc Pennington  <hp@pobox.com>

        Fix #98303 and assorted cleanup

	* src/prefs.c (meta_preference_to_string): handle
	META_PREF_WORKSPACE_NAMES

	* src/menu.c (get_workspace_name_with_accel): assert that the
	workspace has a name

	* src/screen.c (meta_screen_ensure_workspace_popup): assert that
	we got a workspace name
	(meta_screen_ensure_workspace_popup): assert that we got a
	workspace name

	* src/prefs.c (update_workspace_name): fix screwiness (strcmp with
	a freed string, assorted bad logic)
	(init_workspace_names): assert that we filled in a default
	workspace name
	(meta_prefs_get_workspace_name): assert non-NULL workspace name
2002-11-20 03:57:20 +00:00
Bill Haneman
b95dd0574c Makes Atlanta work better with inverse themes. Fix for 98745. 2002-11-17 11:54:10 +00:00
Havoc Pennington
02a8fb4a37 fix a multihead safety thing (use proper system colormap for the
2002-11-13  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (get_cmap): fix a multihead safety thing (use proper
	system colormap for the drawable's screen)
2002-11-15 04:10:54 +00:00
Jonathan Blandford
0970829146 include common.h.
Thu Nov 14 17:30:10 2002  Jonathan Blandford  <jrb@gnome.org>

        * src/Makefile.am (libmetacityinclude_HEADERS): include common.h.
2002-11-14 22:30:51 +00:00
Havoc Pennington
d1aaf6a9b1 don't read from op->data.image when the op is an icon
2002-11-12  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (draw_op_as_pixbuf): don't read from op->data.image
	when the op is an icon
2002-11-13 04:11:52 +00:00
Havoc Pennington
5590e8878b never use a window with input = FALSE take_focus = FALSE as the default
2002-11-12  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (meta_stack_get_default_focus_window): never use a
	window with input = FALSE take_focus = FALSE as the default focus
	window #95454 fix from Hidetoshi Tajima
2002-11-12 21:53:52 +00:00
James M. Cape
e64d1bf881 Major changes to look of theme. I'd also recommend
2002-11-10  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Major changes
	to look of theme. I'd also recommend "minimize,maximize:close"
	for the button_layout, it looks really slick :-).
2002-11-10 19:08:14 +00:00
Jonathan Blandford
0163c58ee1 include common.h with the installed files 2002-11-08 00:05:36 +00:00
Mark McLoughlin
bc3b64f922 impl for nice debugging. (meta_workspace_get_neighbor): fix broken logic
2002-11-08  Mark McLoughlin  <mark@skynet.ie>

        * src/workspace.c:
        (meta_motion_direction_to_string),
        (meta_screen_corner_to_string): impl for nice debugging.
        (meta_workspace_get_neighbor): fix broken logic and
        cleanup debugging.
2002-11-07 23:13:12 +00:00
Jonathan Blandford
765cb51df3 add a pc file for libmetacity-private
Thu Nov  7 17:07:21 2002  Jonathan Blandford  <jrb@redhat.com>

	* src/libmetacity-private.pc.in: add a pc file for
	libmetacity-private

	* src/Makefile.am: Install a few files as a shared library so that
	others can draw metacity themes.
2002-11-07 22:09:59 +00:00
Havoc Pennington
c613fed9ef push an error trap around the whole window-key-grab loop
2002-11-06  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (grab_keys): push an error trap around the
	whole window-key-grab loop
	(ungrab_all_keys): avoid requiring return value from the error
	trap, unless in debugging mode
	(regrab_window_bindings, regrab_screen_bindings): push traps
	around the loops, for efficiency

	* src/display.c (event_callback): fix from Padraig O'Briain to
	compress extra MappingNotify events to avoid extra work.
2002-11-06 16:00:56 +00:00
Calum Benson
6c18374142 Crux tweaks: adds a Restore button for maximized windows, and un-hard-codes
titlebar text colors. Fixes #97759.
2002-11-05 19:38:12 +00:00
Havoc Pennington
a64b868dbd apply patch from Nikos Mouat to fix this function
2002-11-05  Havoc Pennington  <hp@redhat.com>

	* src/workspace.c (meta_workspace_get_neighbor): apply patch from
	Nikos Mouat to fix this function
2002-11-05 19:25:06 +00:00
Havoc Pennington
77349f6878 fix bug I introduced in case where scaling was done in both directions.
2002-11-04  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (scale_and_alpha_pixbuf): fix bug I introduced in
	case where scaling was done in both directions.
2002-11-04 20:34:25 +00:00
Havoc Pennington
5efd276a22 Patch from Brian Cameron to implement the vertical/horizontal striped
2002-11-04  Havoc Pennington  <hp@pobox.com>

        Patch from Brian Cameron to implement the vertical/horizontal
	striped image accelerated scaling from the gtk pixbuf engine.

	* src/theme.c (scale_and_alpha_pixbuf): if an image is
	vertical/horizontal stripes, use special extra-fast scaling
	routines.

	* src/theme-parser.c (parse_draw_op_element): when loading an
	image, mark it as vertically/horizontally striped when appropriate
2002-11-04 17:55:56 +00:00
Erwann Chenede -
373f6de13e changed __FUNCTION__ to G_GNUC_FUNCTION as __FUNCTION__ is not portable.
2002-11-04 Erwann Chenede - <erwann.chenede@sun.com>

  * src/xprops.c (meta_prop_get_values): changed __FUNCTION__
  to G_GNUC_FUNCTION as __FUNCTION__ is not portable.
2002-11-04 17:24:47 +00:00
Havoc Pennington
e0a4c2a1df remove XSync calls from here (meta_display_ungrab): remove XSync from
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_grab): remove XSync calls from here
	(meta_display_ungrab): remove XSync from here, but put in
	an XFlush to be sure we get the ungrab sent.

	* src/util.c (meta_topic): track sync count here

	* src/errors.c: move sync count out of here

        Throughout: error spew on all XSync() calls

	* src/run-metacity.sh: don't set METACITY_DEBUG
2002-11-04 00:56:12 +00:00
Havoc Pennington
9feebc05c7 add _NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME support
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	_NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME support

	* src/window.c (meta_window_new): use window-props.h for
	_NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME
2002-11-04 00:19:08 +00:00
Havoc Pennington
d7917c02fe use window-props.h stuff for a couple of properties (implement_showing):
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): use window-props.h stuff for a
	couple of properties
	(implement_showing): fix printf string

	* src/xprops.c (meta_prop_free_values): new function

	* src/window-props.h, src/window-props.c: start moving code that
	handles loading window properties into this file.
2002-11-03 23:42:21 +00:00
Havoc Pennington
1d0b5ef660 split into "see if we should be showing" and "actually show/hide"
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_calc_showing): split into "see if we
	should be showing" and "actually show/hide" functions
	(idle_calc_showing): rework to first unmap all newly-hidden
	windows from bottom to top then map all newly-showing windows from
	top to bottom resulting in fewer exposes, #95220
2002-11-03 20:30:45 +00:00
Havoc Pennington
ee84fbb81f fix from Garrett LeSage for which button backgrounds we draw when
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_frame_layout_calc_geometry): fix from Garrett
	LeSage for which button backgrounds we draw when
2002-11-03 19:55:38 +00:00
Havoc Pennington
6a1abc7482 new function, and remove workspace->name field, instead just get the name
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_name): new function,
	and remove workspace->name field, instead just get the
	name from prefs each time

	* src/screen.c (meta_screen_update_workspace_names): update the
	gconf key to persist workspace names here, instead of changing
	the names we use

	* src/util.c (topic_name): add META_DEBUG_PREFS

	* src/prefs.c: change NUM_COMMANDS to 32 to allow more custom
	commands, implement workspace names

	* src/metacity.schemas.in: add workspace_names/name_NN gconf keys.
2002-11-03 19:06:39 +00:00
Havoc Pennington
b3a1122b2a use meta_prop_get_size_hints
2002-10-28  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_size_hints): use meta_prop_get_size_hints

	* src/xprops.c: add support for getting XSizeHints
2002-10-28 20:22:22 +00:00
Havoc Pennington
effec94613 store the window menu on the display and blow it away when a window
2002-10-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c, src/display.c: store the window menu on the
	display and blow it away when a window closes, so we don't
	get funny stuck menus. Patch from Martin Garton #87514
2002-10-28 05:35:30 +00:00
Havoc Pennington
81089c2d8c move meta_window_shutdown_group() much earlier in the destroy process. May
2002-10-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): move
	meta_window_shutdown_group() much earlier in the destroy process.
	May fix #96928 tracked down by Kjartan Maraas and Martin Garton.

	* src/group.c (meta_window_get_group): never add window to a group
	after we've started unmanaging the window
2002-10-27 14:45:29 +00:00
Havoc Pennington
04c9c3e058 include config.h
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/iconcache.c: include config.h

	* src/group.c: include config.h

	* src/frame.c: include config.h

	* src/core.c: include config.h so it doesn't crash all over the
	place due to #ifdef HAVE_STARTUP_NOTIFICATION

	* src/util.c (meta_print_backtrace): export from this file

	* src/main.c (log_handler): print backtrace here
2002-10-27 03:03:32 +00:00
Havoc Pennington
4d5cc9d0bb make windows randomly transient for each other
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/wm-tester/main.c (evil_timeout): make windows randomly
	transient for each other http://bugzilla.gnome.org/show_bug.cgi?id=96928
2002-10-26 21:56:50 +00:00
Havoc Pennington
0d88e93787 new function (meta_prop_get_wm_hints): new function
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_text_property): new function
	(meta_prop_get_wm_hints): new function
	(meta_prop_get_class_hint): new function
2002-10-26 16:40:50 +00:00
Havoc Pennington
5a8af8c2fb use multi-value-get on a couple of properties for testing
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): use multi-value-get on a couple
	of properties for testing

	* src/xprops.c (meta_prop_get_values): implement multi-value-get

	* src/window.c (update_mwm_hints): XFree motif hints as we changed
	it to use Xmalloc

	* src/xprops.c: massively rework this to set up a
	get-multiple-properties-at-once API.

	* src/async-getprop.c (ag_Xmalloc): new function
2002-10-26 07:37:11 +00:00
Havoc Pennington
e8097a6f8f fix build 2002-10-26 01:49:03 +00:00
Havoc Pennington
cb27f0c4be Add "busy cursor on app startup" support, conditionally - works only if
2002-10-25  Havoc Pennington  <hp@pobox.com>

        Add "busy cursor on app startup" support, conditionally - works
	only if libstartup-notification is found, and in practice requires
	a GTK patch that's not in yet.

	* src/screen.c: monitor startup events and set busy cursor if
	appropriate

	* src/display.c (meta_display_open): create SnDisplay

	* configure.in: check for startup notification,
	and add the cute "configure summary" at the end
2002-10-25 23:35:50 +00:00
Havoc Pennington
c3a5c4c169 if only one right-corner button, use right_right_background not
2002-10-24  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): if only one
	right-corner button, use right_right_background not
	right_left_background
2002-10-24 20:47:19 +00:00
Havoc Pennington
9702903343 make public
2002-10-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_get_icon_geometry): make public

	* src/screen.c (meta_screen_ensure_tab_popup): put the alt+tab
	highlight-window indicator on the icon, not the window itself,
	if the window is minimized.
2002-10-24 05:21:51 +00:00
Havoc Pennington
15a05467bd put minimized windows at the end of Alt+Tab, #89416
2002-10-24  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_get_tab_list): put minimized windows
	at the end of Alt+Tab, #89416
2002-10-24 05:15:28 +00:00
Havoc Pennington
0041f49d3f initialize the left button background rectangles.
2002-10-23  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): initialize the
	left button background rectangles.
2002-10-23 19:46:44 +00:00
Havoc Pennington
c6b475b251 Optimizations for managing new windows (do not all take effect if
2002-10-21  Havoc Pennington  <hp@redhat.com>

	Optimizations for managing new windows (do not all take effect if
	METACITY_DEBUG=1). Bug #96404

	* src/keybindings.c (meta_change_keygrab): use error trap nesting
	and conditionalize on meta_is_verbose() to avoid a ton of XSync

	* src/display.c (meta_change_button_grab): ditto

	Throughout: move to new error trap setup to save on XSync calls,
	new setup is:

	* src/errors.c (meta_error_trap_push_with_return): new function,
	an error trap that needs to care about return value and thus
	sync even if an outer trap still exists
	(meta_error_trap_pop_with_return): new function
	(meta_error_trap_pop): add "last_request_was_roundtrip"
	argument allowing us to avoid XSync() if we just did
	a GetProperty or whatever.

	* src/util.c (meta_warning): flush the warning file descriptor

	* src/Makefile.am (INCLUDES): define G_LOG_DOMAIN
2002-10-21 21:44:35 +00:00
Havoc Pennington
0c5cacf7cc put multihead stuff in HAVE_GTK_MULTIHEAD, reported by John Palmieri
2002-10-20  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_image_window_new): put multihead stuff in
	HAVE_GTK_MULTIHEAD, reported by John Palmieri
2002-10-20 17:17:16 +00:00
Havoc Pennington
95e5a13131 check above->mapped before deciding if it overlaps the window being
2002-10-20  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (handle_raise_or_lower): check above->mapped
	before deciding if it overlaps the window being raiselowered,
	fix from Stephane Chauveau
2002-10-20 15:22:40 +00:00
Havoc Pennington
70b6a57003 call meta_image_window_new in multihead-safe way
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/effects.c (meta_effects_draw_box_animation): call
	meta_image_window_new in multihead-safe way

	* src/ui.c (meta_image_window_new): multihead safety
2002-10-18 22:46:37 +00:00
Havoc Pennington
915c2db3b9 only create the resize popup if width_inc or height_inc are > 1
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_refresh_resize_popup): only create the
	resize popup if width_inc or height_inc are > 1

	* src/resizepopup.c: Clear out all the weird tickmark cruft,
	saves us about 2.5K of binary size, whee
	(meta_ui_resize_popup_new): take display/screen arguments and make
	multihead-safe #94349
2002-10-18 22:37:01 +00:00
Havoc Pennington
eb647577c3 don't start the cycle process if the binding for switching windows has no
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/keybindings.c (do_choose_window): don't start the cycle
	process if the binding for switching windows has no modifier bits,
	just focus the window immediately.

	* src/prefs.c, src/keybindings.c: add a keybinding to move between
	windows that goes in the opposite direction.  This is mostly
	useful if you want to bind unmodified keys to the switch windows
	functions, e.g. if you have "Forward" and "Back" keys on your
	keyboard. Patch from Shilad Sen <shilad sourcelight com>
2002-10-18 22:19:05 +00:00
Havoc Pennington
1094410ff8 add "what happens when you double click the titlebar" setting, patch from
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/prefs.c, src/frames.c: add "what happens when you double
	click the titlebar" setting, patch from Sean Middleditch bug
	#95625.  This is basically an "add Windows emulation mode" patch.
2002-10-18 21:22:27 +00:00
Havoc Pennington
6e90c238e8 move window-click to Super+click not Alt+click by default. Super should be
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: move window-click to Super+click not
	Alt+click by default. Super should be the Windows key on keyboards
	that have one and are so configured.  Prepare for the FAQ on this.
2002-10-18 19:07:42 +00:00
Havoc Pennington
44a63a9911 fix min aspect handling, patch from Martin Garton #94943
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_size): fix min aspect handling,
	patch from Martin Garton #94943
2002-10-18 18:58:05 +00:00
Havoc Pennington
370982b812 replace the old apply_constraints with wacky new approach involving
2002-10-18  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (constrain_stacking): replace the old
	apply_constraints with wacky new approach involving graphing all
	the constraints then walking the graph.  Fixes #94876 and probably
	other stacking bugs as well, thanks to Arvind for tracking down
	the issue.

	(compute_layer): add FIXME and reference to bug #96140
2002-10-18 06:05:09 +00:00
Havoc Pennington
5ba2fa893f don't place transient-for-whole-group windows above _each other_, only
2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (apply_constraints): don't place
	transient-for-whole-group windows above _each other_, only
	above other windows in the group that aren't themselves
	transient-for-whole-group. Should help with part of #94876
2002-10-17 16:36:50 +00:00
Havoc Pennington
4eb8a93c83 debug enhancements 2002-10-17 16:20:50 +00:00
Havoc Pennington
3da0b1c7d9 fix memory leak of group_windows, and don't use the variable name "tmp"
2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (apply_constraints): fix memory leak of
	group_windows, and don't use the variable name "tmp" twice. Shadow
	variables bad.
2002-10-17 16:07:50 +00:00
Havoc Pennington
aa62466091 add code to create big stacks of dialogs transient for each other, for
2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-window-demo.c (dialog_cb): add code to create
	big stacks of dialogs transient for each other, for testing.
2002-10-17 16:04:53 +00:00
Havoc Pennington
337812d51d workspaces are all per-screen now, fix accordingly
2002-10-16  Havoc Pennington  <hp@redhat.com>

	* src/workspace.c: workspaces are all per-screen now, fix
	accordingly

	* src/core.c: fix multihead workspace stuff

	* src/keybindings.c: multihead-rama

	* src/screen.c (meta_screen_show_desktop): new functions to
	replace display equivalents

	* src/display.c (meta_display_get_workspace_by_screen_index): get
	rid of this
	(meta_display_get_workspace_by_index): get rid of this
	(event_callback): handle _NET_SHOWING_DESKTOP message per-screen

	* src/screen.c (meta_screen_get_workspace_by_index): new function

	* src/screen.h (struct _MetaScreen): move workspace list, and
	showing_desktop flag, to be per-screen

	* src/window.c (window_query_root_pointer): return whether pointer
	is on window's screen
	(meta_window_handle_mouse_grab_op_event): don't use coordinates
	from other screens when updating a window operation on the current
	screen. I can't believe no one has reported this...
2002-10-16 20:12:24 +00:00
Havoc Pennington
17ac646f70 update window layer when above/below state is changed. Fixed by Ross
2002-10-16  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_client_message): update window layer
	when above/below state is changed. Fixed by Ross Burton.
2002-10-16 14:53:19 +00:00
Federico Mena Quintero
8c2e8ddf5c Ignore EnterNotify events when the detail field is set to NotifyInferior.
2002-10-14  Federico Mena Quintero  <federico@ximian.com>

	* src/display.c (event_callback): Ignore EnterNotify events when
	the detail field is set to NotifyInferior.  Fixes #95747.
2002-10-15 14:46:12 +00:00
Havoc Pennington
ae577d7724 button layout key
2002-10-12  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: button layout key

	* src/prefs.c: Add button layout gconf key
	(change_notify): use some "else if" instead of "if" where we
	should have been
2002-10-12 17:44:55 +00:00
Havoc Pennington
82e5cb578c don't raise window on button 2 click, only on button 1 and button 3.
2002-10-11  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): don't raise window on button 2
	click, only on button 1 and button 3.

	* src/frames.c (meta_frames_button_press_event): lower on button 2
	press on frame

	* src/core.c (meta_core_user_lower): new function
2002-10-11 18:42:40 +00:00
Havoc Pennington
0df65b9f9f make the checks here allow windows larger than the screen in addition to
2002-10-11  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (window_is_fullscreen_size): make the checks here
	allow windows larger than the screen in addition to
	exactly-screen-size

	* src/window.c (meta_window_configure_request): delete the "try to
	auto-enter-fullscreen-state" hack here, because it was broken, and
	the changes to the stacking code to move screen-size focused
	windows to the fullscreen layer should work better.
	(meta_window_new): remove auto-fullscreen hack from here too
2002-10-11 05:26:07 +00:00
Havoc Pennington
25ca0e21db also keep utility/menu/toolbar windows above their whole group.
2002-10-09  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (apply_constraints): also keep utility/menu/toolbar
	windows above their whole group.

	(get_standalone_layer): don't use META_LAYER_FOCUSED_WINDOW, but
	only use META_LAYER_FULLSCREEN while the fullscreen window has
	focus.  Also, put screen-sized windows in the fullscreen layer,
	even if we didn't dare to actually put them in the fullscreen
	state.
2002-10-09 23:19:14 +00:00
Havoc Pennington
f08337d939 Add a modifier key preference for the Alt+click stuff. Can be set to
2002-10-07  Havoc Pennington  <hp@redhat.com>

        Add a modifier key preference for the Alt+click stuff.
	Can be set to "disabled" as well.

	* src/run-metacity.sh: load .Xmodmap in the Xnest if it exists

	* src/display.c (meta_display_ungrab_window_buttons): ungrab
	AnyModifier in case the modifier changed since we grabbed
	(meta_display_open): rearrange code to use meta_display_close() to
	mop up when we can't find any screens, avoiding the need to
	keep the bail-out code in sync with meta_display_close.

	* src/keybindings.c (devirtualize_modifiers): move this function
	to a public place in display.c

	* src/metacity.schemas.in: add setting for the modifier key
	to use for Alt+left/middle/right click.

	* src/prefs.c (update_binding): add a missing newline to a warning
	(meta_prefs_get_mouse_button_mods): new function

	* src/ui.c (meta_ui_parse_modifier): new function
2002-10-07 23:14:40 +00:00
Havoc Pennington
372dc090fd don't include unportable Xproto.h, fix from Glynn Foster.
2002-10-07  Havoc Pennington  <hp@pobox.com>

	* src/async-getprop.c: don't include unportable Xproto.h, fix from
	Glynn Foster.
2002-10-07 14:30:36 +00:00
Havoc Pennington
81b6316081 rig the benchmark a bit ;-) 2002-10-06 19:50:31 +00:00
Havoc Pennington
fc4a0aef0d change to add only one _XAsyncHandler per display, speeding things up a
2002-10-06  Havoc Pennington  <hp@pobox.com>

	* src/async-getprop.c: change to add only one _XAsyncHandler per
	display, speeding things up a bit.
2002-10-06 17:53:29 +00:00
Havoc Pennington
a1bb0e0015 Add wacky hack suggested by Keith Packard to get X properties
2002-10-06  Havoc Pennington  <hp@pobox.com>

	* src/async-getprop.c: Add wacky hack suggested by Keith Packard
	to get X properties asynchronously. Not actually used by metacity
	yet, but thinking about it.
2002-10-06 09:04:39 +00:00
Havoc Pennington
9de7b59e93 do XRRUpdateConfiguration() if we have RandR extension, else poke in
2002-10-04  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): do XRRUpdateConfiguration()
	if we have RandR extension, else poke in Xlib's screen struct to
	update the screen size.

	* configure.in: fix a bogus overwrite of cppflags,
	add a check for RandR extension
2002-10-04 18:31:54 +00:00
Arvind Samptur
0388149904 call meta_window_unstick before adding window to workspace.
2002-10-04  Arvind Samptur <arvind.samptur@wipro.com>
        * src/window.c (meta_window_change_workspace): call meta_window_unstick
        before adding window to workspace.
        (menu_callback): call meta_workspace_activate before meta_window_change_workspace.
        This would avoid us running an extra loop for determining the window workspace list.

        Patches from Jeyasudha and Arvind. Fixes #92575
2002-10-04 14:49:00 +00:00
Havoc Pennington
7b0cd87838 only specify the middle backgrounds, let left/right fall back to middle
2002-10-03  Havoc Pennington  <hp@pobox.com>

	* src/themes/Esco/metacity-theme-1.xml: only specify the
	middle backgrounds, let left/right fall back to middle

	* src/theme.c (get_button): fall back to middle_background draw
	routines when missing the left/right button backgrounds.
	(button_rect): fix to handle drawing middle button backgrounds
	(meta_frame_style_draw): draw middle background once per middle
	button
2002-10-04 02:59:07 +00:00
Havoc Pennington
7641c6f952 Button-reordering patch. Has all the code except actually installing a
2002-10-03  Havoc Pennington  <hp@pobox.com>

        Button-reordering patch. Has all the code except actually
	installing a gconf schema and reading the gconf key in prefs.c.
	metacity-theme-viewer displays the button layouts for testing
	themes.

	* src/preview-widget.c (meta_preview_size_request): make up a
	width/height if no child widget

	* src/prefs.c (meta_prefs_get_button_layout): new function

	* src/frames.c: get the button layout from prefs and
	use it when drawing

	* src/theme.c (meta_frame_layout_calc_geometry): enhance to be
	able to lay out buttons in different arrangements
	(button_rect): draw the new button background rectangles
	(meta_theme_draw_frame): require a button layout argument
	(meta_theme_calc_geometry): pass in the button layout

	* src/preview-widget.h: mod to handle button layouts

	* src/theme-viewer.c: mod to handle button layouts
2002-10-04 02:28:57 +00:00
Havoc Pennington
a544f68ac9 handle the case where the clock is set backward
2002-10-03  Havoc Pennington  <hp@redhat.com>

	* src/window.c (check_moveresize_frequency): handle the case where
	the clock is set backward
2002-10-03 21:49:13 +00:00
Havoc Pennington
ba9d2d1a71 try extra cascades alongside the first, if the first fails; patch from
2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/place.c (find_next_cascade): try extra cascades alongside
	the first, if the first fails; patch from readams@hmc.edu
2002-10-02 02:42:24 +00:00
Havoc Pennington
f4920a9249 put ABOVE windows in same layer as docks.
2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (get_standalone_layer): put ABOVE windows in same
	layer as docks.
2002-10-02 00:48:45 +00:00
Havoc Pennington
94b6dde6bb make it static
2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_resize_func): make it static

	* src/stack.c (get_standalone_layer): put above/below windows
	in an appropriate layer.

	* src/screen.c (set_supported_hint): say we support above/below

	* src/display.h (struct _MetaDisplay): add _NET_WM_STATE_ABOVE,
	_NET_WM_STATE_BELOW atoms

	* src/window.c (meta_window_client_message): handle above/below
	state messages
	(set_net_wm_state): handler above/below state
	(update_net_wm_state): handle above/below states
2002-10-02 00:47:29 +00:00
Mark McLoughlin
791ab07bd4 default to topleft starting corner. (meta_screen_update_workspace_layout):
2002-10-01  Mark McLoughlin  <mark@skynet.ie>

        * src/screen.c: (meta_screen_new): default to
        topleft starting corner.
        (meta_screen_update_workspace_layout): handle
        new property format : orient,x,y,starting corner.
        Fixes #89373.

        * src/screen.h: add MetaScreenCorner enum.
2002-10-01 19:57:26 +00:00
Havoc Pennington
437093dee0 always align fullscreen windows to top, as we do with maximized windows.
2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): always align fullscreen
	windows to top, as we do with maximized windows.
2002-10-01 13:17:45 +00:00
Havoc Pennington
3407dffed0 fix compilation on Solaris, patch from Satyajit Kanungo
2002-09-30  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (reload_xinerama_infos): fix compilation on
	Solaris, patch from Satyajit Kanungo
2002-09-30 13:58:56 +00:00
Havoc Pennington
e802acf413 update from libegg to get fix from Ralph Loader for <Super> <Hyper> <Meta>
2002-09-29  Havoc Pennington  <hp@pobox.com>

	* src/eggaccelerators.c: update from libegg to get fix from Ralph
	Loader for <Super> <Hyper> <Meta> parsing, #93005
2002-09-30 03:58:41 +00:00
Havoc Pennington
f001625e5b shorten minimize animation a bit
2002-09-29  Havoc Pennington  <hp@pobox.com>

	* src/effects.h (META_MINIMIZE_ANIMATION_LENGTH): shorten minimize
	animation a bit
2002-09-30 03:49:22 +00:00
Havoc Pennington
43a726efe7 Patch from Keith Packard to handle root window resizes.
2002-09-28  Havoc Pennington  <hp@pobox.com>

        Patch from Keith Packard to handle root window resizes.

	* src/screen.c (reload_xinerama_infos): factor out Xinerama code
	(meta_screen_resize): implement this, to be called from display.c
	on screen resize

	* src/display.c (event_callback): handle ConfigureNotify on root
	windows
2002-09-29 02:50:24 +00:00
Havoc Pennington
f37245ace2 re-enable the FOCUSED_WINDOW layer, should now work correctly.
2002-09-28  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (get_standalone_layer): re-enable the FOCUSED_WINDOW
	layer, should now work correctly.
2002-09-28 16:54:33 +00:00
Havoc Pennington
e96e7ffc89 Rewrite stack code to work a lot differently. Should be better now, and
2002-09-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c, src/stack.c: Rewrite stack code to work a lot
	differently. Should be better now, and not lose relative positions
	of windows when moving among layers. Also should now be possible
	to get session management to restore the stacking order.  Probably
	breaks some stuff, and makes all the stack.c changes I made
	yesterday sort of irrelevant.
2002-09-28 16:33:39 +00:00
Havoc Pennington
2926f0a501 Temporarily disable use of the FOCUSED_WINDOW layer, because given the
2002-09-27  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (get_standalone_layer): Temporarily disable use of
	the FOCUSED_WINDOW layer, because given the fact that moving
	multiple windows into the same layer changes the Z-order of those
	windows, it was breaking click-to-focus.
2002-09-28 04:00:24 +00:00
Havoc Pennington
6c325e9070 raise the focused window, since it may not be the window on top, given the
2002-09-27  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_focus_top_window): raise the focused
	window, since it may not be the window on top, given the below
	change.

	* src/stack.c (meta_stack_get_default_focus_window): make this
	more complex to prefer to focus the transient parent, followed by
	other windows in group, followed by topmost non-dock, followed by
	dock. Previously was just topmost non-dock followed by dock
	ignoring groups and transiency.
2002-09-28 03:50:49 +00:00
Havoc Pennington
efc82ee1b9 constrain placement to try to keep windows from going offscreen to the
2002-09-27  Havoc Pennington  <hp@pobox.com>

	* src/place.c (constrain_placement): constrain placement to try to
	keep windows from going offscreen to the right/bottom

	* src/stack.c (compute_layer): rearrange the logic here to say
	that a window must always be in at least as high a layer as any of
	its transient parents or group members, rather than special-casing
	fullscreen. Also, group_member_is_fullscreen was leaking the list
	of group members every time, a fairly major memory leak.
2002-09-28 03:11:04 +00:00
Havoc Pennington
5ae85e9c07 use AgingGorilla not Gorilla (renamed on the CVS server)
2002-09-27  Havoc Pennington  <hp@redhat.com>

	* src/themes/Makefile.am (THEMES): use AgingGorilla not Gorilla
	(renamed on the CVS server)
2002-09-27 20:35:16 +00:00
Havoc Pennington
74b3bca93d Try to handle Solaris Xinerama, all coded blind, someone on Solaris will
2002-09-27  Havoc Pennington  <hp@redhat.com>

        Try to handle Solaris Xinerama, all coded blind, someone
	on Solaris will need to debug the typos.

	* src/display.c: updates for Solaris Xinerama

	* src/screen.c: updates for Solaris Xinerama

	* configure.in: make Xinerama check more complicated to catch
	Solaris Xinerama
2002-09-27 20:28:34 +00:00
Havoc Pennington
e7e41b045d keep a flag transient_parent_is_root_window for whether the
2002-09-27  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_transient_for): keep a flag
	transient_parent_is_root_window for whether the
	root-window-as-parent convention was used.

2002-09-25  Arvind Samptur <arvind.samptur@wipro.com>

 	* src/stack.c (sort_window_list): Keep dialogs without
 	transient parent above entire app. Fixes #88926
2002-09-27 19:42:59 +00:00
Havoc Pennington
47f67eb270 use MetaAccelLabel to display accelerators for the menu items
2002-09-26  Havoc Pennington  <hp@pobox.com>

	* src/menu.c (meta_window_menu_new): use MetaAccelLabel to display
	accelerators for the menu items

	* src/metaaccellabel.c: cut-and-paste GtkAccelLabel and port to
	use virtual modifiers

	* src/Makefile.am (metacity_SOURCES): add metaaccellabel.[hc]

	* src/prefs.c (meta_prefs_get_window_binding): new function

	* src/core.c (meta_core_get_menu_accelerator): new function
2002-09-27 01:40:17 +00:00
Havoc Pennington
e64a42732f Change short desc of switch_windows and cycle_windows to be different
2002-09-25  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: Change short desc of switch_windows and
	cycle_windows to be different
2002-09-25 18:56:25 +00:00
Havoc Pennington
f5f20efe0d update best_overlap as we go through the loop - doh. Fix from
2002-09-24  Havoc Pennington  <hp@pobox.com>

	* src/place.c (fit_rect_in_xinerama): update best_overlap as we go
	through the loop - doh. Fix from readams@hmc.edu for #90799.
	(find_first_fit): try the origin of each xinerama screen
	after the first. Also from readams@hmc.edu
2002-09-25 01:20:44 +00:00
Havoc Pennington
49a9e74900 new function, only saves rect after checking current state, #93795
2002-09-24  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_save_rect): new function,
	only saves rect after checking current state, #93795
	(meta_window_make_fullscreen): use new function
	(meta_window_maximize): use new function
2002-09-24 21:33:34 +00:00
Havoc Pennington
4694ded7cd new function
2002-09-24  Havoc Pennington  <hp@redhat.com>

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

	* src/stack.c (compute_layer): put focused window in a layer above
	all other windows, in click-to-focus mode. #93022

	* src/window.c (meta_window_notify_focus): update window layer on
	focus change.
2002-09-24 21:22:06 +00:00
Havoc Pennington
d027c27ca1 support --version, #92796 patch from Christian Neumair
2002-09-24  Havoc Pennington  <hp@redhat.com>

	* src/main.c (main): support --version, #92796 patch from
	Christian Neumair

	* autogen.sh: change gettext test to be happy with
	glib-gettextize, #81425

	* src/menu.c: change mnemonics to match bug #78999

	* src/theme.c (meta_theme_validate): consolidate some
	nearly-identical themes for ease of translation, #70962
2002-09-24 20:43:45 +00:00
Arvind Samptur
ee26de98de Replace strings Shade with Roll Up and Unshade with Unroll.
2002-09-24  Arvind Samptur  <arvind.samptur@wipro.com>
        * src/menu.c: Replace strings Shade with Roll Up and
        Unshade with Unroll.
2002-09-24 04:34:14 +00:00
Havoc Pennington
94e75ba53c re-enable the log handler, maybe it will break something, I don't remember
2002-09-23  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): re-enable the log handler, maybe it will
	break something, I don't remember why I turned it off.

	* src/display.c: s/_NET_SHOW_DESKTOP/_NET_SHOWING_DESKTOP/ which
	is what's in the spec
2002-09-24 02:04:32 +00:00
Havoc Pennington
6ab198ac22 small reordering of code
2002-09-22  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): small reordering of
	code

	* src/display.c (meta_spew_event): more spew for MapNotify,
	UnmapNotify

	* src/window.c (recalc_window_features): spew more stuff

	* src/display.c (meta_spew_event): spew override_redirect field of
	ConfigureNotify
2002-09-23 01:43:20 +00:00
Arvind Samptur
09cc9e5d93 Added keybindings for moving windows between workspaces. Fixes #91944 2002-09-20 04:19:59 +00:00
Arvind Samptur
195d136faa The suggested change in the tooltip as per ui-review. Not sure how long this dialog will be here. Anyway... 2002-09-19 09:25:55 +00:00
Havoc Pennington
d2cd398594 handle fullscreen state here.
2002-09-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_net_wm_state): handle fullscreen state
	here.
2002-09-18 20:19:45 +00:00
Havoc Pennington
8232b8ba6d escape the window title before saving in the session file, reported by Jos
2002-09-15  Havoc Pennington  <hp@pobox.com>

	* src/session.c (save_state): escape the window title before
	saving in the session file, reported by Jos Vos
2002-09-15 16:39:28 +00:00
Havoc Pennington
cfa98e02fc fix compiler warnings
2002-09-12  Havoc Pennington  <hp@redhat.com>

	* src/workspace.c (meta_workspace_screen_index)
	(meta_workspace_index): fix compiler warnings

	* src/tools/metacity-window-demo.c (menu_items): add a test for
	dialogs with no transient parent

	* src/place.c (find_first_fit): Try placing window at origin of
	first Xinerama, even if there are no windows to place next to;
	makes placement work when no other windows are open on the screen.
2002-09-12 20:46:03 +00:00
Christian Neumair
0134973907 src/keybindings.c: Make virtual desktops apply instantly and still show the pager popup 2002-09-09 18:16:25 +00:00
Frédéric Crozat
fcb791d5a0 Fix titlebar glitch on small dialogs.
* src/themes/Crux/metacity-theme-1.xml: Fix titlebar
glitch on small dialogs.
2002-09-06 19:34:57 +00:00
Havoc Pennington
cbb0b8e66c new function
2002-09-03  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_get_tab_current): new function

	* src/keybindings.c (do_choose_window): apply modified patch from
	JeyaSudha to still display tab popup if only one window is on the
	desktop.
2002-09-04 04:15:46 +00:00
JeyaSudha
a6a7407faa Session saves the unmaximized postion, size of a maximized window. #86059
2002-06-25 JeyaSudha <jeyasudha.duraipandy@wipro.com>

 	* src/session.c, src/window.c: Session saves the unmaximized
	postion, size of a maximized window. #86059
2002-09-04 02:44:52 +00:00
Havoc Pennington
a5c4eaa55c don't filter out prelight for unmaximize button. #83860
2002-09-03  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_update_prelit_control): don't filter
	out prelight for unmaximize button. #83860
	(meta_frames_paint_to_drawable): handle unmaximize here as well
2002-09-04 02:21:26 +00:00
Havoc Pennington
9e062cd7a8 always apply rounding for shaded windows, fixes Bluecurve theme when
2002-08-27  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_frame_layout_calc_geometry): always apply
	rounding for shaded windows, fixes Bluecurve theme when shaded
2002-08-28 02:48:59 +00:00
Havoc Pennington
900de3c304 when freeing a fullscreen window, update layers of the window's group.
2002-08-25  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): when freeing a fullscreen
	window, update layers of the window's group.
2002-08-25 20:59:09 +00:00
Havoc Pennington
8b7447b282 _NET_SUPPORTING_WM_CHECK is supposed to have type WINDOW not CARDINAL.
2002-08-25  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): _NET_SUPPORTING_WM_CHECK is
	supposed to have type WINDOW not CARDINAL. reported by
	Ben Jansens
2002-08-25 17:53:27 +00:00
Havoc Pennington
f1b58398b0 recalculate mapped-ness of frame after toggling decorations on/off, so
2002-08-24  Havoc Pennington  <hp@redhat.com>

	* src/window.c (process_property_notify): recalculate mapped-ness
	of frame after toggling decorations on/off, so that windows don't
	disappear when decorations are toggled on.

	* src/tools/metacity-window-demo.c (toggle_decorated_cb): add a
	test for toggling decoration state on the fly
2002-08-24 21:49:32 +00:00
Havoc Pennington
cbb4a91113 hack around bug in kmail etc. where SM_CLIENT_ID was set on the window,
2002-08-24  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_sm_hints): hack around bug in kmail etc.
	where SM_CLIENT_ID was set on the window, not the client leader.

	* src/theme.c (meta_frame_layout_calc_geometry): don't round
	corners unless we have enough frame to chop off.
2002-08-24 21:28:02 +00:00
Havoc Pennington
b9002db37f translate some strings that should have been, and convert to locale
2002-08-24  Havoc Pennington  <hp@redhat.com>

	* src/util.c: translate some strings that should have been, and
	convert to locale encoding before printing stuff.

	* src/stack.c (group_member_is_fullscreen): if window itself is
	fullscreen, return TRUE immediately.

	* src/window.c (meta_window_configure_request): add hack to
	fullscreenize large undecorated windows.
2002-08-24 20:54:23 +00:00
Keith Packard
0f9bdb18f5 Place cursors on frames, not root 2002-08-23 18:00:40 +00:00
Deepa Natarajan
c39a03ad59 add maximize and unmaximize keybinding setting. Partly fixes bug# 78999.
2002-08-21  Deepa Natarajan  <deepa.natarajan@wipro.com>

	* src/keybindings.c, src/metacity.schemas.in, src/prefs.[ch]:
	add  maximize and unmaximize keybinding setting. Partly fixes
	bug# 78999.
2002-08-21 06:47:16 +00:00
Havoc Pennington
e74969bd17 if in the title rect check for y <= TOP_RESIZE_HEIGHT
2002-08-20  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (get_control): if in the title rect check for y
	<= TOP_RESIZE_HEIGHT

	* src/display.c (meta_spew_event): put x/y coordinates in spew for
	enter/leave notify

	* src/frames.c (meta_frames_motion_notify_event): move cursor
	changing from here to update_prelit_control so it happens on enter
	notify as well
	(get_control): change test "y < TOP_RESIZE_HEIGHT" to
	"y <= TOP_RESIZE_HEIGHT"

	* src/Makefile.am (EXTRA_DIST): include .in files in EXTRA_DIST
2002-08-20 20:18:18 +00:00
Havoc Pennington
d86c90a162 default to "Sans Bold 10" for the titlebar font.
2002-08-15  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: default to "Sans Bold 10" for the
	titlebar font.
2002-08-15 22:09:27 +00:00
Havoc Pennington
9ed1636ffe leave has_fullscreen_func set to TRUE if the window is screen sized and
2002-08-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): leave has_fullscreen_func
	set to TRUE if the window is screen sized and undecorated, even if
	the window isn't resizable. idea from Christian - Manny Calavera -
	Neumair

	* src/keybindings.c (handle_toggle_fullscreen)
	(handle_toggle_maximize): these disabled fullscreen/maximize if
	the window wasn't resizable, should have used has_fullscreen_func
	has_maximize_func instead.

2002-08-15  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: implement raise/lower

	* src/metacity.schemas.in: add raise/lower

	* src/prefs.c: add "raise" and "lower" prefs to keybindings

	* src/display.c (meta_display_set_grab_op_cursor): assert that
	the screen arg is non-NULL in appropriate cases
2002-08-15 05:14:49 +00:00
Jayaraj Rajappan
bb9cc21d8e In XGrabPointer, set the confine_to argument to the root window of the
2002-08-14  Jayaraj Rajappan <jayaraj.rajappan@wipro.com>

        * src/display.c (meta_display_set_grab_op_cursor):
        In XGrabPointer, set the confine_to argument to the root window
        of the screen the window is on.

        * src/display.h: add screen argument.

        * src/window.c (meta_window_update_resize_grab_op):
        pass screen argument as NULL.
2002-08-14 16:51:13 +00:00
James M. Cape
b9529231b4 use button positioning theme stuff.
2002-08-14  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: use button positioning
	theme stuff.
2002-08-14 13:42:03 +00:00
Mark McLoughlin
689bcd14aa move from workspace.c. (update_num_workspaces): set the hint here. Fixes
2002-08-14  Mark McLoughlin  <mark@skynet.ie>

        * src/screen.c: (set_number_of_spaces_hint), move from
        workspace.c.
        (update_num_workspaces): set the hint here. Fixes #90123.

        * src/workspace.c:
        (meta_workspace_new), (meta_workspace_free): don't set
        the hint here.
        (update_num_workspaces): move to screen.c
2002-08-14 00:08:30 +00:00
Havoc Pennington
27e35b8bcd window is in fullscreen layer if any member of its group is fullscreen
2002-08-12  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (compute_layer): window is in fullscreen layer if
	any member of its group is fullscreen

	* src/window.c (meta_window_unmake_fullscreen): update layer for
	whole window group
	(meta_window_make_fullscreen): ditto

	* src/util.c (meta_unsigned_long_hash): move hash/equal funcs for
	Window in here.

	* src/group.c: track window groups so we can do stuff with them.
2002-08-12 21:32:13 +00:00
Havoc Pennington
8a847ee7dc don't include nonexistent stock-icons.h file
2002-08-11  Havoc Pennington  <hp@pobox.com>

	* src/menu.c: don't include nonexistent stock-icons.h file
2002-08-12 03:03:57 +00:00
Havoc Pennington
2fb121b1c9 default keybindings for move, resize, maximize, etc. from Deepa #78999
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: default keybindings for move, resize,
	maximize, etc. from Deepa #78999
2002-08-10 19:14:28 +00:00
Havoc Pennington
c17e916978 unshade window if shaded, from JeyaSudha (meta_window_make_fullscreen):
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_maximize): unshade window if shaded,
	from JeyaSudha
	(meta_window_make_fullscreen): ditto
2002-08-10 19:04:55 +00:00
Havoc Pennington
75109ac211 reorder the menu items so that Close is at the bottom
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/menu.c: reorder the menu items so that Close is at the
	bottom

	* src/theme-viewer.c (main): set debugging mode if METACITY_DEBUG
	enabled
2002-08-10 18:47:36 +00:00
Havoc Pennington
02bcf06809 allow Motif hints to be smaller than expected; GLUT for example seems to
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_motif_hints): allow Motif hints to
	be smaller than expected; GLUT for example seems to set a smaller
	struct. #89841

	* src/window.c (update_mwm_hints): use g_free on motif hints as we
	don't use the XGetWindowProperty return directly anymore
2002-08-10 18:12:36 +00:00
Havoc Pennington
c540438b91 be sure window is mapped if we unmanage it and it's not withdrawn; bug
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): be sure window is
	mapped if we unmanage it and it's not withdrawn;
	bug #90369

	* src/screen.c (meta_screen_new): change string
	s/override/replace/ bug #89077

	* src/theme.c (scale_and_alpha_pixbuf): dump the
	sometimes-use-NEAREST-instead-of-BILINEAR optimization,
	bug #87489
2002-08-10 17:32:29 +00:00
Havoc Pennington
154e38e71e raise window when moving to another workspace bug #88896
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (menu_callback): raise window when moving to
	another workspace bug #88896

	* src/keybindings.c (switch_to_workspace): raise window when
	moving between spaces
2002-08-10 17:17:58 +00:00
Jorn Baayen
7179d77d0c Register window menu icons with the Gtk stock system, instead of using the
2002-08-10  Jorn Baayen  <jorn@nl.linux.org>

	Register window menu icons with the Gtk stock system, instead
	of using the ones from the Metacity theme (which looked very bad with
	some themes).

	* src/Makefile.am:
	* src/main.c:
	* src/menu.c:
	* src/stock_delete.png: added these files
	* src/stock_minimize.png:
	* src/stock_maximize.png:
	* src/ui.c
2002-08-10 16:47:43 +00:00
Havoc Pennington
4c3a20c3f2 filter out key events that happen on popup menus etc.
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (meta_display_process_key_event): filter out
	key events that happen on popup menus etc.

	* src/ui.c (meta_ui_window_is_widget): new function to check
	whether a window belongs to a GtkWidget such as the popup menu

	* src/prefs.c (change_notify): put in a no-op line for AIX
	compiler, #84252
2002-08-10 15:55:18 +00:00
Havoc Pennington
f36d236a55 track time to avoid sending a deluge of move/resize requests, suggestion
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_resize): track time to avoid sending a
	deluge of move/resize requests, suggestion from
	xavier.bestel@free.fr bug #86830. Not really sure if this will
	make a difference or not. We'll see I guess.
	(update_move): do same on move though it seems less important
	here.

	* src/display.h (struct _MetaDisplay): store the
	last time we sent a move/resize event.
2002-08-10 05:27:17 +00:00
Havoc Pennington
9a72bf1858 add a FIXME comment with a link to bug #90382
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_notify_focus): add a FIXME comment
	with a link to bug #90382
2002-08-10 04:29:57 +00:00
Havoc Pennington
79857803de disable maximize, fullscreen, shade via keybindings on windows that don't
2002-08-09  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (handle_toggle_maximize): disable maximize,
	fullscreen, shade via keybindings on windows that don't support
	it.
2002-08-09 14:22:00 +00:00
Craig Black
4fcc9f052e Patch to provide extra cues to the user when using window menu move and
2002-08-08  Craig Black  <blackc@speakeasy.net>

  Patch to provide extra cues to the user when using
  window menu move and resize, #85724.

  * src/common.h: add new cursors

  * src/display.c: (grab_op_is_mouse)
  (meta_display_create_x_cursor), (xcursor_for_op),
  (meta_display_set_grab_op_cursor),
  (meta_display_begin_grab_op):
  The keyboard move and resize grab ops now also use the mouse.
  Allow the grab cursor to be changed during the grab op.
  Hold onto the initial grab position in case of reset.

  * src/display.h: save the initial grab position

  * src/keybindings.c: (process_keyboard_move_grab),
  (process_keyboard_resize_grab), (handle_begin_move),
  (handle_begin_resize):
  The keyboard move and resize grab ops now also use the mouse.

  * src/window.c: (meta_window_client_message), (menu_callback),
  (update_move), (update_resize),
  (meta_window_handle_mouse_grab_op_event), (warp_pointer),
  (meta_window_warp_pointer), (meta_window_begin_grab_op),
  (meta_window_update_resize_grab_op):
  When moving or resizing a window use the last grab position
  in computing change increment.
  Provide support for warping the mouse pointer.

  * src/window.h: new warp pointer and grab op helper functions
2002-08-09 04:27:23 +00:00
Craig Black
8c5369d522 update comment also set expected focus window when setting input focus.
2002-08-08  Craig Black  <blackc@speakeasy.net>

  * src/display.h: update comment
  * src/window.c: (meta_window_focus): also set expected
  focus window when setting input focus.
2002-08-09 03:32:09 +00:00
Craig Black
d299fbd8da focus top window after showing desktop, fixes #88080.
2002-08-07  Craig Black  <blackc@speakeasy.net>

  * src/display.c: (meta_display_unshow_desktop): focus
  top window after showing desktop, fixes #88080.
2002-08-08 05:28:51 +00:00
Craig Black
8a5cce91bf focus window on right click for menu, #87299.
2002-08-07  Craig Black  <blackc@speakeasy.net>

  * src/core.c: (meta_core_show_window_menu): focus window
  on right click for menu, #87299.
2002-08-08 05:08:59 +00:00
Craig Black
7a598e5567 clear expected focus window on open
2002-08-07  Craig Black  <blackc@speakeasy.net>

  * src/display.c: (meta_display_open): clear expected focus window
  on open

  * src/display.h: add expected_focus_window field

  * src/window.c: (meta_window_make_fullscreen),
  (meta_window_unmake_fullscreen): change meta_window_update_layer()
  to meta_stack_update_layer() so build works again.
  (meta_window_free), (meta_window_make_fullscreen),
  (meta_window_focus), (meta_window_notify_focus): keep track of
  expected focus window after sending WM_TAKE_FOCUS event,
  previously if a UnmapNotify event arrived before the FocusIn event
  we would lose focus, fixes #84564.
2002-08-08 04:45:13 +00:00
Havoc Pennington
ebae7a654e update layer (meta_window_make_fullscreen): update layer
2002-08-07  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_unmake_fullscreen): update layer
	(meta_window_make_fullscreen): update layer

	* src/stack.c (compute_layer): put window on fullscreen layer if
	fullscreen
2002-08-07 23:12:08 +00:00
Craig Black
1e0d6c3346 implement _NET_WM_MOVERESIZE enhancements, see #90077.
2002-08-06  Craig Black  <blackc@speakeasy.net>

  * src/window.c: (meta_window_client_message): implement
  _NET_WM_MOVERESIZE enhancements, see #90077.
2002-08-07 05:26:20 +00:00
Havoc Pennington
00dcef82e3 disable animation when shading windows, just doesn't really convey the
2002-07-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_shade): disable animation when shading
	windows, just doesn't really convey the idea anyway.

	* src/effects.c: Move to using a shaped window instead of
	IncludeInferiors to do the animations, looks a lot better
	because we don't have to grab the server.

	* src/window.c (meta_window_change_workspace): remove bogus
	assertion that was causing a crash
	(meta_window_new): auto-fullscreen huge undecorated windows.

	* src/keybindings.c (switch_to_workspace): use
	meta_window_change_workspace() to avoid same bug in cut-and-paste
	code from there
2002-08-06 04:11:23 +00:00
Ross Burton
43c7a44e1d Set wm_state_skip_pager instead of skip_pager (ditto for _tasklist) so that the skip pager/tasklist hints work correctly 2002-08-05 15:32:08 +00:00
Havoc Pennington
f3446fad9a init button states for the button backgrounds
2002-08-04  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_paint_to_drawable): init button
	states for the button backgrounds

	* src/themes/Atlanta/metacity-theme-1.xml: adapt to work correctly
	with button repositioning
2002-08-04 20:45:05 +00:00
Havoc Pennington
585e362526 raise/focus on click, even if the click was on the client area (this makes
2002-08-04  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_button_press_event): raise/focus
	on click, even if the click was on the client area
	(this makes Alt+button1 raise windows again, yay)

	* src/stack.c (compute_layer): put panels in the DOCK layer always
	(keep them on top of other windows). Still sloppy-focus raised
	with respect to other docks.

	* configure.in: remove -Wshadow for now as GTK headers make all
	kinds of noise with it.
2002-08-04 20:20:53 +00:00
Mark McLoughlin
8984fd358b set active_workspace to NULL. Also actually activate the first workspace
2002-08-02  Mark McLoughlin  <mark@skynet.ie>

        * src/screen.c: (meta_screen_new): set active_workspace
        to NULL. Also actually activate the first workspace instead
        of just setting active_workspace. Fixes #87367.
        (meta_screen_ensure_workspace_popup): don't re-use our
        iterator for setting the entries list, stop iterating
        when we've gone beyond the last workspace (there may
        be empty spaces in the last row).

        * src/workspace.c: (meta_workspace_activate): if no workspace
        was previously activated, return.
2002-08-04 20:17:37 +00:00
Havoc Pennington
583596178f use MetaMenuIconType not button type for the size of the menu ops array
2002-08-04  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (free_menu_ops): use MetaMenuIconType not button
	type for the size of the menu ops array
	(meta_theme_define_int_constant): return TRUE on success (how the
	heck did this ever work?)
	(meta_theme_define_float_constant): return TRUE on success
	(meta_frame_style_validate): allow the "positional" buttons to
	be omitted for now.

	* src/testgradient.c (render_multi): don't define N_COLORS twice

	* src/theme-viewer.c (run_theme_benchmark): don't define
	ITERATIONS twice

	* src/theme.c (button_rect): handle new button types
	(meta_button_type_to_string): update
	(meta_button_type_from_string): update

	* src/theme.h (enum): add button types for the 6 possible button
	positions. No way to reposition buttons still but this will allow
	themes to go ahead and support doing so.
2002-08-04 20:02:45 +00:00
Craig Black
ae148bc89f change alt+tab to a windowless grab, fixes #83499
2002-08-03  Craig Black  <blackc@speakeasy.net>

  * src/keybindings.c: (meta_display_process_key_event),
  (process_tab_grab), (do_choose_window): change alt+tab
  to a windowless grab, fixes #83499
2002-08-03 23:30:48 +00:00
Craig Black
dc5a81ac77 Have ButtonPress and UnmapNotify events account for a null grab window,
2002-08-03  Craig Black  <blackc@speakeasy.net>

  * src/display.c: (event_callback): Have ButtonPress and UnmapNotify
  events account for a null grab window, fixes #87896
2002-08-03 23:07:04 +00:00
Gaute Lindkvist
b51e6bdaa4 Fixed some clipping issues with the Bright theme. 2002-08-03 17:02:23 +00:00
Mark McLoughlin
95e4c6ac2a Implements support for _NET_WM_ALLOWED_ACTIONS. Fixes #84282.
2002-08-01  Mark McLoughlin  <mark@skynet.ie>

        Implements support for _NET_WM_ALLOWED_ACTIONS.
        Fixes #84282.

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

        * src/screen.c: (set_supported_hint): set them
        as being supported.

        * src/window.c:
        (set_allowed_actions_hint): impl setting
        _NET_WM_ALLOWED_ACTIONS.
        (recalc_window_features): use it here, but only
        if things have changed.
2002-08-01 23:52:47 +00:00
Christophe Fergeau
9e86812928 if a window isn't resizeable, turn off maximize function. If min size is
* src/window.c (recalc_window_features): if a window isn't
	resizeable, turn off maximize function. If min size is equal to
	max size, turn off resize function.
2002-08-01 15:14:14 +00:00
Mark McLoughlin
43dd208874 send a SaveYourselfDone if we're skipping this global save.
2002-08-01  Mark McLoughlin  <mark@skynet.ie>

        * src/session.c:
        (save_yourself_possibly_done): send a SaveYourselfDone
        if we're skipping this global save.
        (save_yourself_callback): don't not save session state
        if the save style is Global. Fixes #89390.

        * theme-format.txt: update.
2002-08-01 01:49:08 +00:00
Havoc Pennington
9abae5b0a2 add Metabox theme from Garrett
2002-07-24  Havoc Pennington  <hp@pobox.com>

	* src/themes/Makefile.am (THEMES): add Metabox theme from Garrett

	* README: updates

2002-07-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): don't automaximize fullscreen
	windows.

2002-07-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): don't allow shading of
	border-only windows.
2002-07-25 02:45:38 +00:00
Havoc Pennington
98c3b06ffd sync 2002-07-24 23:23:51 +00:00
Havoc Pennington
1af2020151 fixes to the comments 2002-07-24 19:52:21 +00:00
Havoc Pennington
88a0d1ff03 look for themes in ~/.themes/NAME/metacity-1/ and
2002-07-24  Havoc Pennington  <hp@redhat.com>

	* src/theme-parser.c (meta_theme_load): look for themes in
	~/.themes/NAME/metacity-1/ and datadir/themes/NAME/metacity-1
	instead of the old locations.

	* src/themes/Makefile.am: install themes to
	datadir/themes/NAME/metacity-1/ to match how GTK works, breaking
	third-party themes yet again! woot!
2002-07-24 18:28:56 +00:00
Havoc Pennington
78a2866980 grab display across managing each screen; XGetInputFocus() on startup.
2002-07-20  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): grab display across managing
	each screen; XGetInputFocus() on startup.

2002-07-19  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): disable configure
	requests during a user move/resize operation, mostly a workaround
	for stoopid apps.
2002-07-24 15:41:44 +00:00
Havoc Pennington
f7b55bfdcc put Gorilla back in the build
2002-07-23  Havoc Pennington  <hp@redhat.com>

	* src/themes/Makefile.am (THEMES): put Gorilla back in the build

	* src/themes/Gorilla/metacity-theme-1.xml,
	src/themes/Crux/metacity-theme-1.xml: fixes from
	Sebastien Delestaing so that these themes work properly with
	different font sizes.

	* src/frames.c (get_control): patch from Balamurali Viswanathan
	for #81984 (resize titlebar from the top not the bottom)
2002-07-24 02:21:24 +00:00
Ross Burton
f51eed31d8 Show the real workspace names in the window menu 2002-07-23 20:52:22 +00:00
Havoc Pennington
197c81178c handle NULL screen from screen_for_xwindow
2002-07-23  Havoc Pennington  <hp@redhat.com>

	* src/keybindings.c (meta_display_process_key_event): handle
	NULL screen from screen_for_xwindow

	* src/display.c (meta_display_screen_for_xwindow): put an error
	trap around the XGetWindowAttributes(), should fix the popular
	"closing a window results in a crash" bug.

	* src/util.c (print_backtrace): support optional backtrace
	feature using gnu libc backtrace() call
2002-07-23 19:12:02 +00:00
Havoc Pennington
8e2d576805 update libegg stuff 2002-07-17 02:21:15 +00:00
jacob berkman
dccd7a9b99 steal from profterm to fix build
2002-07-15  jacob berkman  <jacob@ximian.com>

	* src/update-from-egg.sh: steal from profterm to fix build
2002-07-15 14:18:51 +00:00
Havoc Pennington
badb397bce don't put a newline after the default workspace name
2002-07-13  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_new): don't put a newline after
	the default workspace name
2002-07-14 03:59:18 +00:00
Havoc Pennington
812f783084 adapt to virtual modifiers (meta_display_process_mapping_event): we need
2002-07-13  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: adapt to virtual modifiers
	(meta_display_process_mapping_event): we need to reload the
	binding tables now when the modmap changes.

	* src/prefs.c (update_binding): parse virtual modifiers, not
	plain modmask

	* src/common.h (MetaVirtualModifer): new enum

	* src/ui.c (meta_ui_parse_accelerator): use
	egg_accelerator_parse_virtual()

	* src/Makefile.am: add eggaccelerators.[hc] for the virtual
	accelerator parsing function
2002-07-14 03:16:41 +00:00
Havoc Pennington
f0a74e2e95 don't display the dialog if all the apps were session managed.
2002-07-12  Havoc Pennington  <hp@pobox.com>

	* src/session.c (warn_about_lame_clients_and_finish_interact):
	don't display the dialog if all the apps were session managed.
2002-07-13 03:47:06 +00:00
Havoc Pennington
b30802e35f don't send SmInteractDone until the warning dialog about crappy clients
2002-07-12  Havoc Pennington  <hp@pobox.com>

	* src/session.c: don't send SmInteractDone until the warning
	dialog about crappy clients has been closed.
2002-07-13 03:40:05 +00:00
Havoc Pennington
b908e45208 try to maximize windows that are too big for the work area
2002-07-12  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): try to maximize windows that
	are too big for the work area

	* src/place.c (find_next_cascade): don't let the cascade algorithm
	place windows off the screen, and fix it to always exhaustively
	search the window list for cascade parents.
2002-07-12 23:03:40 +00:00
Havoc Pennington
42639fc9fb option to display error when a command fails to run.
2002-07-11  Havoc Pennington  <hp@pobox.com>

	* src/metacity-dialog.c (main): option to display error when a
	command fails to run.

	* src/keybindings.c (handle_run_command): run commands
	in response to keybindings.

	* src/prefs.c: add command keybinding stuff

	* src/metacity.schemas.in: add keybindings for running commands,
	and keys to store the commands themselves.
2002-07-11 04:10:44 +00:00
Havoc Pennington
a535ef6117 properly attribute selection code to Matthias Clasen
2002-07-10  Havoc Pennington  <hp@redhat.com>

	* src/display.c: properly attribute selection code to Matthias
	Clasen
2002-07-10 14:41:19 +00:00
Havoc Pennington
eb42281fd4 couple of updates
2002-07-10  Havoc Pennington  <hp@pobox.com>

	* README: couple of updates

	* src/main.c (usage): add --replace to usage, reported by Matthias
	Clasen
2002-07-10 12:26:00 +00:00
Havoc Pennington
93902aabfd fix short description for begin_resize, patch from Jayaraj, #87654
2002-07-09  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: fix short description for
	begin_resize, patch from Jayaraj, #87654

	* src/keybindings.c (handle_begin_resize): apply patch from
	Jayaraj to actually handle the begin resize keybinding.
2002-07-10 03:51:01 +00:00
Havoc Pennington
7d068e6909 don't center vertically for maximized windows that don't fill the screen,
2002-07-09  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): don't center vertically for
	maximized windows that don't fill the screen, just leave them at
	the top.
2002-07-10 03:23:12 +00:00
Havoc Pennington
4e66c5dc6c increase the size of the mini workspaces
2002-07-06  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c (selectable_workspace_new): increase the size of
	the mini workspaces
2002-07-06 19:11:57 +00:00
Havoc Pennington
a62b3c8b29 Apply blackc@speakeasy.net patch, bug #83940, to do mini-workspaces
2002-07-06  Havoc Pennington  <hp@pobox.com>

        Apply blackc@speakeasy.net patch, bug #83940, to do
	mini-workspaces similar to the pager, when switching
	spaces.

	* src/window.c (update_net_wm_state): actually fill in
	wm_state_skip_taskbar, wm_state_skip_pager flags

	* src/tabpopup.c: support drawing a mini-workspace similar to the
	one the pager draws.

	* src/stack.c (meta_stack_list_windows): new function to list
	the windows in stacking order

	* src/screen.c (meta_screen_ensure_workspace_popup): don't pass in
	the ugly default app icon for workspaces

	* src/display.c (event_callback): fix from blackc@speakeasy.net
	to avoid dereferencing a NULL grab window.
2002-07-06 19:05:37 +00:00
Havoc Pennington
8c3437fd27 put _NET_DESKTOP_NAMES in the array of atom names, so desktop names might
2002-07-06  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): put _NET_DESKTOP_NAMES in the
	array of atom names, so desktop names might work and we don't read
	uninitialized memory.

	* src/main.c (main): add VERSION/timestamp verbose message.

	* src/keybindings.c: implement cycle_windows cycle_panels

	* src/metacity.schemas.in: add the cycle_windows cycle_panels
	keybindings

	* src/prefs.h (META_KEYBINDING_FOCUS_PREVIOUS): replace
	FOCUS_PREVIOUS key binding with CYCLE_WINDOWS and CYCLE_PANELS
	(not good names really, but I don't have ideas).

	* src/common.h: add a grab op for alt+esc window cycling
2002-07-06 16:50:48 +00:00
Havoc Pennington
efeedae712 Take Gorilla out until it gets repaired.
2002-07-05  Havoc Pennington  <hp@pobox.com>

	* src/themes/Makefile.am (THEMES): Take Gorilla out until it gets
	repaired.
2002-07-05 15:00:24 +00:00
Havoc Pennington
b392d206d7 Change default value of input hint (if not specified) to true instead of
2002-07-05  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_wm_hints): Change default value of input
	hint (if not specified) to true instead of false. This is what
	some clients assume, such as Visual SlickEdit.
2002-07-05 04:31:49 +00:00
Havoc Pennington
d826e620a9 use new macros to get whether we allow move/resize correct
2002-07-02  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show_menu): use new macros to get
	whether we allow move/resize correct

	* src/frame.c (meta_frame_get_flags): use new macros to get
	whether we can move/resize correct, considering
	maximized/fullscreen for the move case.

	* src/window.h (META_WINDOW_ALLOWS_RESIZE,
	META_WINDOW_ALLOWS_MOVE): new macros

	* src/keybindings.c (process_keyboard_resize_grab): finish the
	right/left resize, patch from Jayaraj #78179.

	Has the same old move/resize bug, if it hits a constraint it
	starts to break because we move without resizing.
2002-07-03 02:32:40 +00:00
Mark McLoughlin
b6177f74a7 rename from {un}grab_all_keys_and_keyboard and only do an XKeyboardGrab,
2002-07-02  Mark McLoughlin  <mark@skynet.ie>

        * src/keybindings.c:
        (grab_keyboard), (ungrab_keyboard): rename from
        {un}grab_all_keys_and_keyboard and only do an XKeyboardGrab,
        the XKeyGrab isn't neccessary.
        (meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys),
        (meta_window_grab_all_keys), (meta_window_ungrab_all_keys):
        update for above change.
        (handle_workspace_switch): don't use a MetaWindow when
        workspace switching, use the root window instead.
2002-07-02 05:03:28 +00:00
Mark McLoughlin
086f3d807e Fix broken workspace switching from my previous commit.
2002-07-01  Mark McLoughlin  <mark@skynet.ie>

        Fix broken workspace switching from my previous commit.

        * src/display.c: (meta_display_begin_grab_op): don't
        leak a pointer grab if we fail to grab the keyboard.

        * src/keybindings.c: (meta_screen_grab_keys): check
        screen->all_keys_grabbed.
        (meta_screen_grab_all_keys): regrab our standard
        bindings if we fail.
        (handle_workspace_switch): revert to our previous
        behaviour of using the last focused window to do
        the grab upon. Only use the RootWindow if there
        isn't anything else to use.

        * src/screen.c: (meta_screen_new): initialise
        all_keys_grabbed.
2002-07-01 03:20:29 +00:00
Mark McLoughlin
6b72d622a5 Fixes not being able to tab out of a workspace which contains no windows.
2002-06-26  Mark McLoughlin  <mark@skynet.ie>

        Fixes not being able to tab out of a
        workspace which contains no windows.

        * src/core.c: (meta_core_begin_grab_op): upd
        for meta_display_begin_grab_op change.
        (meta_core_get_grab_frame): allow for
        grab_window == NULL.

        * src/display.[ch]:
        (meta_display_screen_for_xwindow): implement.
        (meta_display_begin_grab_op): grab on the root window
        if window == NULL.
        (meta_display_end_grab_op): use grab_screen instead of
        grab_window.

        * src/keybindings.c:
        (grab_all_keys_and_keyboard): split out from
        meta_window_grab_all_keys.
        (ungrab_all_keys_and_keyboard): split out from
        meta_window_ungrab_all_keys.
        (meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys):
        implement grabbing and ungrabbing on the root window.
        (meta_display_process_key_event): if window == NULL,
        check the event is from the same screen and process. Only
        happens with workspace switching.
        (process_workspace_switch_grab): kill window param and
        don't use grab_window.
        (handle_tab_forward), (handle_begin_move): upd for
        meta_display_begin_grab_op change.
        (handle_workspace_switch): remove brokeness. Always do
        the grab op on the root window.

        * src/keybindings.h: add meta_screen_{un}grab_all_keys.

        * src/window.c: (meta_window_client_message), (menu_callback):
        update for meta_display_begin_grab_op change.
2002-06-27 05:08:32 +00:00
Mark McLoughlin
f0a811421f s/gdk_get_default_display/gdk_display_get_default/
2002-06-25  Mark McLoughlin  <mark@skynet.ie>

        * src/fixedtip.c: (meta_fixed_tip_show):
        * src/frames.c: (meta_frames_new):
        * src/tabpopup.c: (meta_ui_tab_popup_new):
        s/gdk_get_default_display/gdk_display_get_default/
        s/gdk_get_default_screen/gdk_screen_get_default/
2002-06-25 07:08:18 +00:00
Mark McLoughlin
b3a72a61fd added support for border only windows.
2002-06-25  Mark McLoughlin  <mark@skynet.ie>

        * src/themes/Crux/active-border-top-left-border.png:
        * src/themes/Crux/active-border-top-right-border.png:
        * src/themes/Crux/active-top-left-corner.png:
        * src/themes/Crux/active-top-mid-left-border.png:
        * src/themes/Crux/active-top-mid-right-border.png:
        * src/themes/Crux/active-top-right-corner.png:
        * src/themes/Crux/inactive-border-top-left-border.png:
        * src/themes/Crux/inactive-border-top-right-border.png:
        * src/themes/Crux/inactive-top-left-corner.png:
        * src/themes/Crux/inactive-top-mid-border.png:
        * src/themes/Crux/inactive-top-right-corner.png:
        * src/themes/Crux/metacity-theme-1.xml: added support
        for border only windows.
2002-06-25 04:11:20 +00:00
James M. Cape
f94a3d08e0 Added some stuff to the window buttons, so they use the ACTIVE bg/fg.
2002-06-24  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Added some stuff to
	the window buttons, so they use the ACTIVE bg/fg.
2002-06-25 02:37:07 +00:00
Mark McLoughlin
d7b4eec74a src/screen.c: (set_supported_hint), (set_work_area_hint): Its
2002-06-25  Mark McLoughlin  <mark@skynet.ie>

        * src/display.[ch]: (meta_display_open):
          src/screen.c: (set_supported_hint), (set_work_area_hint):
        Its _NET_WORKAREA, not _NET_WM_WORKAREA silly :-)

2002-06-25  Mark McLoughlin  <mark@skynet.ie>

        * src/screen.[ch]:
        (update_num_workspaces), recalc workarea hint when
        new workspaces created. Fixes bug that workarea
        not calculated until first non-dock window is
        mapped.
        (set_work_area_hint), (set_work_area_idle_func),
        (meta_screen_queue_workarea_recalc): move all this
        stuff from workspace.c.

        * src/workspace.c: (meta_workspace_invalidate_work_area):
        use meta_screen_queue_workarea_recalc.
2002-06-25 01:12:37 +00:00
Gediminas Paulauskas
e5dc1b01ac Update with border-only window stuff from Atlanta.
2002-06-23  Gediminas Paulauskas <menesis@delfi.lt>

	* src/themes/Bright/metacity-theme-1.xml: Update with border-only
	window stuff from Atlanta.
2002-06-23 09:29:17 +00:00
James M. Cape
6e577c12c1 Update for "border" frame stuff, minor button/spacing improvements.
2002-06-22  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Update for "border"
	frame stuff, minor button/spacing improvements.
2002-06-23 00:39:52 +00:00
Havoc Pennington
97b629ad5b Partially fix Jacob's SM bugs.
2002-06-22  Havoc Pennington  <hp@pobox.com>

	Partially fix Jacob's SM bugs.

	* src/window.c (meta_window_apply_session_info): restore the extra
	stuff we're saving, except stack position I didn't figure out yet.

	* src/session.c: save stack position, minimized, maximized,
	in the session file.
2002-06-23 00:21:20 +00:00
Havoc Pennington
8a8171ebc7 do nothing if screen is being unmanaged, we don't want to blow away state,
2002-06-22  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (set_number_of_spaces_hint): do nothing if
	screen is being unmanaged, we don't want to blow away state,
	we want to remember it for the next window manager.

2002-06-22  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_screen_ensure_workspace_popup): rename
	from meta_workspace_ensure_tab_popup, and use workspace->name
	instead of a hardcoded name
2002-06-22 05:11:04 +00:00
Havoc Pennington
0243071f15 new utility function
2002-06-22  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_utf8_list): new utility function

	* src/display.c (meta_display_open): _NET_DESKTOP_NAMES atom
	(event_callback): update workspace names when the property changes

	* src/screen.c (set_supported_hint): "support" _NET_DESKTOP_NAMES
	(nothing to do really)
2002-06-22 04:52:35 +00:00
Havoc Pennington
de42a62f4e Theme breakage! Themes have to implement "border" frames now, see Atlanta
2002-06-21  Havoc Pennington  <hp@pobox.com>

        Theme breakage! Themes have to implement "border" frames
	now, see Atlanta for an example. Fixes #84285

	* src/tools/metacity-window-demo.c (do_appwindow): add a
	border-only window

	* src/window.c (update_mwm_hints): read border only from the MWM
	hints

	* src/window.h (struct _MetaWindow): add border_only flag

	* src/core.c (meta_core_get_frame_type): report border type if
	required

	* src/common.h (enum): add META_FRAME_TYPE_BORDER
2002-06-22 03:23:02 +00:00
Mark McLoughlin
854e58fd82 sticky windows aren't visibile on all screens. Check the workspace is on
2002-06-20  Mark McLoughlin  <mark@skynet.ie>

        * src/window.c: (meta_window_visible_on_workspace): sticky
        windows aren't visibile on all screens. Check the workspace
        is on the same screen as the window.

        * src/workspace.c: (meta_workspace_list_windows): use
        meta_window_visible_on_workspace here.
2002-06-20 02:29:19 +00:00
Havoc Pennington
b0d3660c91 handle UNKNOWN keyboard resizing state
2002-06-19  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_resize_gravity_from_grab_op): handle UNKNOWN
	keyboard resizing state

	* src/keybindings.c (process_keyboard_resize_grab): implement
	keyboard resize key handling somewhat (only vertical resize works,
	left/right arrow not implemented, and visual feedback of the
	edge we're resizing isn't implemented)

	* src/window.c (menu_callback): start keyboard resize grab when
	it's chosen from the menu
2002-06-19 04:12:49 +00:00
Havoc Pennington
dbcacfa5ba don't use a minimized window as the next focus window, patch from
2002-06-17  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_get_default_focus_window): don't use a
	minimized window as the next focus window, patch from
	blackc@speakeasy.net
2002-06-18 03:32:27 +00:00
Havoc Pennington
e51e7ab77a increase the cascade threshold a bit. (find_first_fit): implement a
2002-06-17  Havoc Pennington  <hp@pobox.com>

	* src/place.c (find_next_cascade): increase the cascade threshold
	a bit.
	(find_first_fit): implement a somewhat lame first fit algorithm
2002-06-18 03:06:07 +00:00
Havoc Pennington
6cda7d0b11 fix from Gaute Lindkvist #82977 for unsticking windows
2002-06-17  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_change_workspace): fix from Gaute
	Lindkvist #82977 for unsticking windows
2002-06-18 01:41:08 +00:00
Frédéric Crozat
c7a72aeed3 associate close_window keybinding to Alt-F4
* src/metacity.schemas.in: associate close_window keybinding to
Alt-F4
2002-06-17 16:01:21 +00:00
Havoc Pennington
82a6ba0238 fix spelling error, #85452
2002-06-16  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): fix spelling error, #85452
2002-06-16 13:49:37 +00:00
Havoc Pennington
82a43d88f5 don't pass a null string to printf
2002-06-15  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (meta_display_process_key_event): don't pass a
	null string to printf

	* src/display.c (key_event_description): don't pass a null string
	to printf

	* src/keybindings.c (meta_set_keybindings_disabled): allow
	enable/disable keybindings regardless of debug mode.
2002-06-16 03:03:08 +00:00
Havoc Pennington
c3b63c96d7 workspace-drawing code factored out of libwnck, needs wiring up to
2002-06-15  Havoc Pennington  <hp@pobox.com>

	* src/draw-workspace.h, src/draw-workspace.c: workspace-drawing
	code factored out of libwnck, needs wiring up to tabpopup.c
	(which is kind of annoying since you have to get the list of
	workspaces and MetaWindow across the barrier between the GDK-aware
	and non-GDK-aware sides of metacity)
2002-06-15 22:18:12 +00:00
Havoc Pennington
346a8b5aaf always focus new windows, trying to be smart about it was a flop.
2002-06-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): always focus new windows,
	trying to be smart about it was a flop.
2002-06-15 01:46:13 +00:00
Jayaraj Rajappan
b44845ad66 Check for NULL string before calling strlen(). Fixes the core dump
reported in #84873.
2002-06-14 07:20:06 +00:00
Anders Carlsson
47353f88c7 Set client height as 0 when the window actually is shaded, not the other
2002-06-13  Anders Carlsson  <andersca@gnu.org>

	* src/theme.c (meta_frame_layout_calc_geometry): Set client height
	as 0 when the window actually is shaded, not the other way around.
2002-06-13 17:26:39 +00:00
Havoc Pennington
7ff56e67e9 when a window is shaded, don't include client height in the height
2002-06-12  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): when a window is
	shaded, don't include client height in the height calculation.

	* src/workspace.c (meta_workspace_get_neighbor): apply fix from
	Mads Villadsen for the Up arrow key, #84582
2002-06-12 22:44:25 +00:00
Havoc Pennington
d7cac40332 Draw the buttons right before the "overlay" piece.
2002-06-12  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_style_draw): Draw the buttons right
	before the "overlay" piece.
2002-06-12 21:12:53 +00:00
Jayaraj Rajappan
e0e6dab50f accessibility stuff for metacity-properties capplet. bug #84749. 2002-06-12 05:54:53 +00:00
Havoc Pennington
00e572800c allow dialogs to steal focus from panels/desktop
2002-06-11  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_show): allow dialogs to steal focus
	from panels/desktop
2002-06-11 22:30:30 +00:00
Jayaraj Rajappan
39f2c804a3 #include <config.h>. Fixes #83960. 2002-06-10 10:47:56 +00:00
Erwann Chenede -
4dfc8d16be verify the active window has the appropriate close/minimize function
2002-06-10 Erwann Chenede - <erwann.chenede@sun.com>

        * src/keybindings.c : (handle_close_window, handle_minimize_window)
	verify the active window has the appropriate close/minimize function
	before closing or minimizing the window.
2002-06-10 10:17:54 +00:00
Havoc Pennington
dc9d951255 add G_IO_NVAL to watch condition, patch from Gustavo Giraldez, avoids
2002-06-09  Havoc Pennington  <hp@pobox.com>

	* src/delete.c (delete_ping_timeout_func): add G_IO_NVAL to watch
	condition, patch from Gustavo Giraldez, avoids another 100% CPU
	thingy
2002-06-10 03:00:21 +00:00
Havoc Pennington
8057a2f68a don't run constrain_placement on windows we allow to go anywhere (docks,
2002-06-09  Havoc Pennington  <hp@pobox.com>

	* src/place.c (meta_window_place): don't run constrain_placement
	on windows we allow to go anywhere (docks, etc.). Fixes
	positioning of panel windows in certain cases.
2002-06-09 18:17:02 +00:00
Havoc Pennington
deed8016ed don't raise/focus the window if minimize/close are clicked, patch from
2002-06-09  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_button_press_event): don't raise/focus
	the window if minimize/close are clicked, patch from Gaute
	Lindkvist #75460
2002-06-09 04:14:40 +00:00
Havoc Pennington
b168954ed3 Cleanups to workspace popup patch. Space before all parens in a couple
2002-06-08  Havoc Pennington  <hp@pobox.com>

        Cleanups to workspace popup patch. Space before all parens
	in a couple places.

	* src/prefs.c (meta_prefs_get_keybinding_action): fix brace
	indentation, and use while instead of for loop. Take a "mask"
	argument to avoid ambiguity issues.

	* src/keybindings.c (handle_workspace_switch): rename from
	handle_workspace_forward since there's no directionality here
	(handle_workspace_switch): add a FIXME about how screwed it is
	that we need a window in order to do our grab. Should be able to
	grab on a dummy window like no_focus_window or the root window.
	(process_workspace_switch_grab): rename from tab_grab for clarity,
	no tab involved here.

	* src/common.h (enum): have only one grab op for all workspace
	switching directions, instead of one for each.
2002-06-09 04:04:19 +00:00
Havoc Pennington
fb5a3a8998 Apply big patch from blackc@speakeasy.net adding a popup window to the
2002-06-08  Havoc Pennington  <hp@pobox.com>

	Apply big patch from blackc@speakeasy.net adding a popup window
	to the Ctrl+Alt+arrows shortcuts. #83940

2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): select key press/release on the
	display->no_focus_window, another attempted fix for not getting
	keybindings when no window is focused. Still doesn't seem to work
	though. I don't get what's going wrong.
	(meta_create_offscreen_window): new function, used instead of
	XCreateSimpleWindow so we get override redirect offscreen windows.
2002-06-09 03:44:16 +00:00
Havoc Pennington
459d8f9c9d set net_supporting_wm_check in addition to win_supporting_wm_check, patch
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): set net_supporting_wm_check
	in addition to win_supporting_wm_check, patch from
	JeyaSudha for #83365

	* src/screen.c (set_wm_check_hint): remove setting
	win_supporting_wm_check on leader window here, done already in
	display.c
2002-06-09 00:09:01 +00:00
Havoc Pennington
31b211550f don't die on bad atom name
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_utf8_string): don't die on bad atom
	name

	* src/display.c (meta_display_close): don't unmanage windows here,
	do it in screen_free and then closing the display unmanages
	windows as a side effect of unmanaging the screen
	(meta_display_unmanage_screen): new function
	(process_selection_clear, process_selection_request): handle
	selection stuff
	(meta_spew_event): don't crash on client message containing
	invalid atom
	(meta_spew_event): don't crash on property notify with invalid
	atom

	* src/main.c (main): add --replace option to replace existing
	window manager.

	* src/screen.c: implement holding manager selection.

	* src/display.c (meta_display_open): add new selection-related
	atoms.
2002-06-08 23:55:27 +00:00
Havoc Pennington
538a06fd55 select keypress/keyrelease events on root window, this may fix the bug
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): select keypress/keyrelease
	events on root window, this may fix the bug where keybindings
	didn't work if you didn't have a focused window.
2002-06-08 22:06:55 +00:00
Havoc Pennington
be44a1d9a5 call meta_session_shutdown when exiting cleanly
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): call meta_session_shutdown when exiting
	cleanly

	* src/session.c (meta_session_shutdown): function to change use to
	RestartIfRunning
	(meta_session_init): change normal restart hint to
	RestartImmediately
2002-06-08 22:04:59 +00:00
Havoc Pennington
e694f07144 Yeah I know maximization is broken, I'm too tired to fix it. Probably
2002-06-08  Havoc Pennington  <hp@pobox.com>

        Yeah I know maximization is broken, I'm too tired to fix it.
	Probably because of the change to update_struts() that was
	supposed to fix the 100% CPU bug.

	* src/place.c (meta_window_place): don't run docks and things
	through the placement algorithm. Thought it might fix
	metacity-window-demo but it didn't.

	* src/window.c (constrain_size): only get work area when needed
	(meta_window_new): init the do_not_cover field
2002-06-08 06:29:19 +00:00
Havoc Pennington
2b780e5486 short-circuit the "only one xinerama" case, and use outer rect of window
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_get_xinerama_for_window):
	short-circuit the "only one xinerama" case, and use outer rect of
	window instead of window->rect, so we get root window coords.

	* src/theme.c (meta_frame_layout_get_borders): if fullscreen all
	frame edges are zero-width.

	* src/frame.c (meta_frame_get_flags): init fullscreen flag.

	* src/common.h (enum): add META_FRAME_FULLSCREEN frame flag

	* src/place.c: fix up calls to meta_window_get_work_area

	* src/window.c (meta_window_get_work_area): add an arg for whether
	the work area is for the screen or the xinerama subscreen.
	(constrain_position): fix up calls to meta_window_get_work_area
	(constrain_size): ditto

	* src/screen.c (meta_screen_new): add METACITY_DEBUG_XINERAMA
	environment variable which simulates xinerama on a single head.
2002-06-08 06:07:21 +00:00
Havoc Pennington
9e8800561e only invalidate things if the struts actually change, since the panel
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_struts): only invalidate things if the
	struts actually change, since the panel likes to set them over and
	over. May fix the infinite loop that caused 100% CPU usage.
2002-06-08 05:13:55 +00:00
Havoc Pennington
019b5cacc3 use XineramaIsActive() not XineramaQueryExtension()
2002-06-07  Havoc Pennington  <hp@redhat.com>

	* src/screen.c (meta_screen_new): use XineramaIsActive() not
	XineramaQueryExtension()
2002-06-07 16:18:51 +00:00
Havoc Pennington
9bcdc8be00 don't return null on non-multihead
2002-06-07  Havoc Pennington  <hp@redhat.com>

	* src/place.c (meta_window_place): don't return null on non-multihead
2002-06-07 15:16:36 +00:00
Havoc Pennington
a7c8cea1b5 implement
2002-06-06  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_get_current_xinerama): implement

	* src/place.c (meta_window_place): cascade windows on the active
	Xinerama screen

	* src/window.c (meta_window_move_resize_internal): strip out the
	#if 0 cruft about guessing fullscreen mode
	(constrain_position, constrain_size): fullscreen/maximize to the
	Xinerama head, not the whole screen
	(meta_window_get_work_area): autocreate struts at the Xinerama
	physical screen edges for the screen the window is on.

	* src/screen.c (meta_screen_get_xinerama_for_window): someone
	snuck in a for loop, fix it. ;-)
2002-06-07 03:18:46 +00:00
James M. Cape
24c91c3a37 Increase the border size of the buttons so they aren't quite so huge on my
2002-06-06  James M. Cape <jcape@ignore-your.tv>

    * src/themes/Esco/metacity-theme-1.xml: Increase the border size
	of the buttons so they aren't quite so huge on my box. Also get
	a *little* closer to finally fixing the horizontal line behind
	the icon. It now works decently with common font sizes (in pixels).
2002-06-06 13:56:16 +00:00
Havoc Pennington
8ebadbce28 oops, didn't mean to commit that 2002-06-06 04:04:49 +00:00
Havoc Pennington
875e6dc0f9 parse "shade/foo/factor" as a color (colorize_pixbuf): remove the unused
2002-06-05  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_color_spec_new_from_string): parse
	"shade/foo/factor" as a color
	(colorize_pixbuf): remove the unused hsv_to_rgb and vice-versa
	stuff, add the gtk_style_shade stuff.
	(meta_color_spec_render): render the shaded color spec

	* src/theme.h (struct _MetaColorSpec): add "shade" mode to
	MetaColorSpec.
2002-06-06 04:00:22 +00:00
Seth Nickell
c776871d52 Add X-GnomeWMSettingsLibrary to desktop file to support new Window
2002-06-04  Seth Nickell  <snickell@stanford.edu>

	* src/metacity.desktop.in:

	Add X-GnomeWMSettingsLibrary to desktop file to support new
	Window capplet.
2002-06-05 03:13:20 +00:00
Havoc Pennington
7fea250304 fix for how we read the input hint, from Hidetoshi Tajima
2002-06-04  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_wm_hints): fix for how we read the input
	hint, from Hidetoshi Tajima

	(meta_window_show): from Hidetoshi, don't autofocus windows with
	input = FALSE wm_take_focus = FALSE when they first appear. We do
	allow these windows to be focused (so keynav works), but they
	don't get focused automatically. Now how do we keep them out of
	the task list?
2002-06-04 22:26:52 +00:00
Gustavo Girldez
6617781f4f Use icon's instead of image's fill_type when type is META_DRAW_ICON.
2002-06-04  Gustavo Girldez  <gustavo.giraldez@gmx.net>

	* src/theme.c (draw_op_as_pixbuf): Use icon's instead of image's
	fill_type when type is META_DRAW_ICON.
2002-06-04 12:35:34 +00:00
Havoc Pennington
966c399154 don't automatically fullscreen things opened fullscreen, because there's
2002-06-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): don't automatically fullscreen
	things opened fullscreen, because there's no GUI to un-fullscreen
	them.
2002-06-04 03:56:16 +00:00
Havoc Pennington
fb448b2f31 fix error message about bad aspect ratio name.
2002-06-03  Havoc Pennington  <hp@pobox.com>

	* src/theme-parser.c (parse_aspect_ratio): fix error message about
	bad aspect ratio name.
2002-06-04 02:15:38 +00:00
Havoc Pennington
85815f8188 test button aspect ratio instead of hardcoded button size, James feel free
2002-06-03  Havoc Pennington  <hp@pobox.com>

	* src/themes/Esco/metacity-theme-1.xml: test button aspect ratio
	instead of hardcoded button size, James feel free to revert if you
	don't like it this way.

	* src/theme-parser.c: parse the aspect_ratio element for button
	aspect ratios.

	* src/theme.h (struct _MetaFrameLayout): allow button sizes to be
	given as an aspect ratio derived from the titlebar height,
	instead of as a fixed size.

	* src/theme.c (meta_frame_layout_validate): validate new button
	sizing parameters

	* src/theme.c (meta_frame_layout_calc_geometry): use new button
	layout params
2002-06-04 02:13:00 +00:00
Kjartan Maraas
400e82daa3 Someone forgot to mark the two strings in here for translation :)
2002-06-03  Kjartan Maraas  <kmaraas@gnome.org>

	* src/tools/metacity-properties.desktop.in: Someone forgot to mark
	the two strings in here for translation :)
2002-06-03 20:13:08 +00:00
Havoc Pennington
d5bcea27e3 move the remove_listener to finalize instead of destroy, thanks to Jayaraj
2002-06-01  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_finalize): move the remove_listener
	to finalize instead of destroy, thanks to Jayaraj for tracking
	down the bug.
2002-06-02 00:24:31 +00:00
Havoc Pennington
d0e109f96c add some missing \n (meta_session_init): remove the #if 0 interact
2002-06-01  Havoc Pennington  <hp@pobox.com>

	* src/session.c: add some missing \n
	(meta_session_init): remove the #if 0 interact callback from our
	initial SmcOpenConnection call, this arg to SmcOpenConnection
	doesn't exist.
2002-06-01 17:03:25 +00:00
Havoc Pennington
9d68b98bc9 put in more debug spew about the session
2002-06-01  Havoc Pennington  <hp@pobox.com>

	* src/session.c: put in more debug spew about the session
2002-06-01 15:46:04 +00:00
Havoc Pennington
a242f622ea use $(prefix)/@DATADIRNAME@/locale for localedir to work with Solaris
2002-05-30  Havoc Pennington  <hp@pobox.com>

	* src/Makefile.am (INCLUDES): use $(prefix)/@DATADIRNAME@/locale
	for localedir to work with Solaris native gettext, patch from
	Hidetoshi Tajima

	* src/tools/Makefile.am: ditto
2002-06-01 15:00:25 +00:00
Anders Carlsson
d5e31129d5 Shush 2002-06-01 12:11:42 +00:00
Anders Carlsson
b7f1a5fae7 Shush 2002-06-01 12:10:28 +00:00
Havoc Pennington
c6b3408398 add MetaImageFillType and implement TILE in addition to the existing SCALE
2002-05-31  Havoc Pennington  <hp@redhat.com>

	* src/theme.c: add MetaImageFillType and implement TILE in
	addition to the existing SCALE

	* src/theme.h (struct _MetaDrawOp): remove no-longer-used "alpha"
	field
2002-05-31 22:03:34 +00:00
Havoc Pennington
d4b91dc654 now just uses meta_gradient_add_alpha (draw_op_as_pixbuf): implement alpha
2002-05-31  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (multiply_alpha): now just uses
	meta_gradient_add_alpha
	(draw_op_as_pixbuf): implement alpha gradients for tint, gradient,
	and image draw ops, so I can implement garrett's stuff.

	* src/gradient.c (meta_gradient_add_alpha): new function to
	multiply the alpha channel of a pixbuf by an alpha gradient
2002-05-31 21:18:11 +00:00
Havoc Pennington
3a745537f0 verbose-log on startup whether we were compiled with various extensions
2002-05-30  Havoc Pennington  <hp@redhat.com>

	* src/main.c (main): verbose-log on startup whether we were
	compiled with various extensions

	* src/display.c (meta_display_queue_retheme_all_windows): reapply
	shape mask when changing themes, sucks to do it here though, makes
	theme changing slower. Needs fixing.

	* src/theme-parser.c (parse_toplevel_element): parse rounded
	corner options to frame_geometry

	* src/frames.c (meta_frames_apply_shapes): apply rounded corners
	if requested by the theme

	* configure.in (HAVE_SHAPE): check for shape extension
2002-05-31 00:02:54 +00:00
Stephen Browne
bfd67fadef Rip out code for adding image to the dialog 2002-05-30 10:53:32 +00:00
Stephen Browne
2f74af1c04 UI changes as per HCI instructions 2002-05-30 10:49:19 +00:00
Stephen Browne
49f9ba96cc Changed metacity-properties window title to match its menu entry and be more consistent with other capplets 2002-05-30 09:49:15 +00:00
Havoc Pennington
90ff51acdb improve error about failing to open session manager.
2002-05-29  Havoc Pennington  <hp@pobox.com>

	* src/session.c (meta_session_init): improve error about failing
	to open session manager.
	(shutdown_cancelled_callback): send SmcSaveYourselfDone when we
	get cancelled
	(interact_callback): implement an interact callback that complains
	about lame clients that can't be saved. Still somewhat buggy
	in that it sends InteractDone before the user has closed the
	dialog.
2002-05-30 03:54:10 +00:00
Havoc Pennington
f7c2b446f2 the miracle of cvs add 2002-05-30 02:26:58 +00:00
Havoc Pennington
737d3cbbf5 add a magnifier I'm using when making themes. Not installed.
2002-05-29  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-mag.c: add a magnifier I'm using when making
	themes. Not installed.

	* src/tools/metacity-properties.c: reindentation, show window, add
	copyright info.

	* src/tools/metacity-properties.glade: make main window !visible
	on startup, to avoid funkiness.
2002-05-29 16:16:53 +00:00
Jacob Berkman
6aaf2738c9 dist .desktop.in files
2002-05-29  Jacob Berkman  <jacob@ximian.com>

	* src/tools/Makefile.am (EXTRA_DIST): dist .desktop.in files
2002-05-29 15:06:08 +00:00
Stephen Browne
31ba0b1f95 New config dialog for focus mode and autoraise 2002-05-29 11:54:12 +00:00
Havoc Pennington
68eb780c75 add code to also guess that client wants to come out of fullscreen, then
2002-05-29  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_move_resize_internal): add code to
	also guess that client wants to come out of fullscreen, then
	#if 0 the whole deal, I'm not sure it's such a good idea.
2002-05-29 04:17:40 +00:00
Havoc Pennington
03498549b2 guess if a window meant to be fullscreen, and if so put it in that state.
2002-05-29  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_move_resize_internal): guess if a
	window meant to be fullscreen, and if so put it in that state.
2002-05-29 04:14:15 +00:00
Havoc Pennington
6077c26cdf handle missing frame, prevents segv with undecorated windows. #83298
2002-05-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c (redraw_icon): handle missing frame, prevents segv
	with undecorated windows. #83298
2002-05-29 03:54:00 +00:00
Havoc Pennington
0498d55314 Patch from Erwann Chenede for raise_or_lower keybinding
2002-05-28  Havoc Pennington  <hp@pobox.com>

        Patch from Erwann Chenede for raise_or_lower keybinding

	* src/display.c, src/common.h: POINT_IN_RECT moved to a common
	location, removed from here
	(meta_rectangle_intersect): move here and make it public

	* src/prefs.c: add raise_or_lower keybinding

	* src/stack.c (meta_stack_get_below, meta_stack_get_above): add an
	arg to only get windows within the same layer

	* src/keybindings.c (handle_raise_or_lower): add handling for a
	"raise window if obscured, else lower" keybinding
2002-05-29 03:11:24 +00:00
Havoc Pennington
4b5eda0b0a handle CWStackMode in configure requests (meta_window_new): if a window is
2002-05-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): handle CWStackMode
	in configure requests
	(meta_window_new): if a window is opened at 0,0 and screen size,
	put it in the fullscreen state.
	(meta_window_new): remove old code that set the window position to
	0,0 if PPosition/USPosition unset, that will be handled by whether
	we place the window or not.
2002-05-29 02:22:04 +00:00
Havoc Pennington
2e19e3c9f7 remove metacity.desktop, now a generated file 2002-05-27 19:27:15 +00:00
Havoc Pennington
aad6035c57 search for the window's screen by root window instead of Screen*, maybe it
2002-05-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): search for the window's screen
	by root window instead of Screen*, maybe it will help with
	bug #82664
2002-05-27 19:26:56 +00:00
Kjartan Maraas
2eeb984e4e Ignore the generated .schemas file 2002-05-27 16:29:15 +00:00
Kjartan Maraas
a1c5f93ef0 Final touches 2002-05-27 15:51:41 +00:00
Anders Carlsson
068c16b162 Apparently someone thinks my name is Anders Carlsom. Well, it's not.
2002-05-27  Anders Carlsson  <andersca@gnu.org>

	* src/themes/Gorilla/metacity-theme-1.xml: Apparently someone
	thinks my name is Anders Carlsom. Well, it's not.
	(Thanks to Carl-Johan Kjellander for noticing.)
2002-05-27 14:04:19 +00:00
James M. Cape
91bf299f16 Remove borders from Esco theme as well (didn't know you could), apparently
2002-05-26  James M. Cape  <jcape@ignore-your.tv>

    * src/themes/Esco/metacity-theme-1.xml: Remove borders from
    Esco theme as well (didn't know you could), apparently fixed
    the problem where the spacing between the icon & the title
    got larger as the fontsize went up.
2002-05-27 11:08:22 +00:00
Havoc Pennington
0cbf47ca30 totally drop the borders off of maximized windows.
2002-05-26  Havoc Pennington  <hp@pobox.com>

	* src/themes/Atlanta/metacity-theme-1.xml: totally drop the
	borders off of maximized windows.
2002-05-26 16:16:06 +00:00
Havoc Pennington
a40a9eccf4 Patch from Gaute Lindkvist so you can't move the panel or desktop to only
2002-05-26  Havoc Pennington  <hp@pobox.com>

        Patch from Gaute Lindkvist so you can't move the panel or desktop
	to only one workspace.

	* src/keybindings.c (handle_move_to_workspace): don't allow moving
	window to another space if the window is always_sticky

	* src/window.c (recalc_window_features): set the always_sticky
	field for desktop/dock windows.
	(meta_window_show_menu): disable unsticking always sticky windows
	via the menus

	* src/menu.c (meta_window_menu_new): disable workspace items
	if requested
2002-05-26 15:54:38 +00:00
Erwann Chenede -
af845f4de7 allow key grabbing for unmodified keys (e.g F1, etc) fix #82630
2002-05-25 Erwann Chenede - <erwann.chenede@sun.com>

  * src/keybindings.c (rebuild_screen_binding_table,
 		       rebuild_window_binding_table,
		       meta_change_keygrab): allow key grabbing for
    unmodified keys (e.g F1, etc) fix #82630
2002-05-25 16:41:41 +00:00
Anders Carlsson
d466c615ed Take Xinerama screen edges into consideration.
2002-05-25  Anders Carlsson  <andersca@gnu.org>

	* src/place.c: (get_vertical_edges), (get_horizontal_edges):
	Take Xinerama screen edges into consideration.

	* src/screen.c: (meta_rectangle_intersect),
	(meta_screen_get_xinerama_for_window):
	* src/screen.h:
	Add a new function that returns the xinerama monitor that
	a window is on.
2002-05-25 16:30:14 +00:00
Havoc Pennington
cc3c995d80 follow windows to their new workspace
2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (menu_callback): follow windows to their new
	workspace

	* src/keybindings.c (handle_move_to_workspace): follow windows to
	their new workspace
2002-05-25 02:33:55 +00:00
Havoc Pennington
a4fe1ad960 add minimize window binding
2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas: add minimize window binding

	* src/keybindings.c (handle_minimize_window): add minimize keybinding
2002-05-25 02:30:00 +00:00
Havoc Pennington
750cb70f69 make that compile 2002-05-25 02:12:24 +00:00
Havoc Pennington
4f70698493 change how focusing windows on initial map works, so that we only steal
2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): change how focusing windows
	on initial map works, so that we only steal focus from our
	transient parent or from a panel/desktop, never from other
	normal windows.
2002-05-25 02:11:33 +00:00
Havoc Pennington
30ff4540d0 modify to ignore PPosition and USPosition once the window has been placed
2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): modify to ignore
	PPosition and USPosition once the window has been placed
2002-05-25 02:03:09 +00:00
Anders Carlsson
2536b82084 Redraw the window frame when the icon changes. Fixes #78543, reported by
2002-05-24  Anders Carlsson  <andersca@gnu.org>

	* src/window.c: Redraw the window frame when the icon changes.
	Fixes #78543, reported by Kang Jeong-Hee.
2002-05-24 08:16:59 +00:00
Havoc Pennington
d70e08039c also filter out LeaveNotify with NotifyInferior
2002-05-23  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): also filter out LeaveNotify
	with NotifyInferior
2002-05-24 03:09:21 +00:00
Jayaraj Rajappan
49fe8f0399 fix for bugzilla bug #72314, filter out LeaveNotify caused by grabs when
2002-05-23  Jayaraj Rajappan <jayaraj.rajappan@wipro.com>

	* src/display.c (event_callback): fix for bugzilla bug #72314,
	filter out LeaveNotify caused by grabs when in mouse focus mode.
2002-05-24 02:55:54 +00:00
Havoc Pennington
0f1f2283e7 Crack from Erwann
2002-05-23  Havoc Pennington  <hp@pobox.com>

        Crack from Erwann

	* src/metacity.schemas: add autoraise crackrock

	* src/display.c (event_callback): autoraise window if autoraise is
	enabled

	* src/prefs.c: autoraise crack
2002-05-24 02:23:46 +00:00
Havoc Pennington
2567ee81b8 fix positioning in fullscreen mode, patch from Gustavo Girldez
2002-05-21  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_position): fix positioning in fullscreen
	mode, patch from Gustavo Girldez
2002-05-21 21:02:33 +00:00
Havoc Pennington
82b064ed7d fix it, maybe
2002-05-16  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_neighbor): fix it, maybe
2002-05-17 01:48:57 +00:00
Havoc Pennington
bb35f88925 lock desktop to position 0,0
2002-05-16  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_position): lock desktop to position 0,0
2002-05-16 20:47:29 +00:00
Havoc Pennington
9b39feab95 add FIXME 2002-05-16 19:08:38 +00:00
Havoc Pennington
74cf783be3 don't focus dock, desktop, etc. windows on initial map, only windows that
2002-05-16  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_show): don't focus dock, desktop,
	etc. windows on initial map, only windows that should have focus.
2002-05-16 19:08:20 +00:00
Havoc Pennington
5f65ca07d7 use the layout information to figure out up/down neighbors
2002-05-15  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_neighbor): use the layout
	information to figure out up/down neighbors

	* src/display.c (event_callback): catch propertynotify on
	_NET_DESKTOP_LAYOUT

	* src/screen.c (meta_screen_update_workspace_layout): keep track
	of the layout of workspaces as set by the pager
2002-05-16 04:03:36 +00:00
James M. Cape
2c73ab41ed Minor tweak to minimize button.
2002-05-15  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Minor tweak to minimize
	button.
2002-05-15 07:35:47 +00:00
Havoc Pennington
53bddf9ceb add Esco theme from James Cape
2002-05-14  Havoc Pennington  <hp@pobox.com>

	* src/themes/Makefile.am (THEMES): add Esco theme from James Cape
2002-05-14 05:25:04 +00:00
Havoc Pennington
5151c5102d move pposition/usposition honoring code into here, instead of putting it
2002-05-12  Havoc Pennington  <hp@pobox.com>

	* src/place.c (meta_window_place): move pposition/usposition
	honoring code into here, instead of putting it in window.c.
	Makes focusing new windows work, and cleans things up a bit.
	#81585
2002-05-13 00:03:17 +00:00
Havoc Pennington
b94beb3289 turn on --g-fatal-warnings if METACITY_G_FATAL_WARNINGS env variable is
2002-05-12  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): turn on --g-fatal-warnings if
	METACITY_G_FATAL_WARNINGS env variable is set.
2002-05-12 14:50:05 +00:00
Anders Carlsson
af83598ad3 Add screen argument to meta_display_get_tab_next, since we only want
2002-05-11  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (find_tab_forward), (find_tab_backward),
	(meta_display_get_tab_next):
	* src/display.h:
	* src/keybindings.c: (handle_tab_forward), (handle_focus_previous):
	Add screen argument to meta_display_get_tab_next, since we only
	want windows on the same screen to appear in the tab chain.

	* src/screen.c: (meta_screen_new):
	Or the event mask with existing events since gtk+ may listen to
	certain events and we don't want to disable those events.

	(meta_screen_ensure_tab_popup):
	* src/tabpopup.c: (meta_ui_tab_popup_new):
	* src/tabpopup.h:
	Add a screen number argument to meta_ui_tab_popup_new so we
	can position the popup on the correct screen.
2002-05-11 06:59:54 +00:00
Havoc Pennington
41e99288b5 include locale.h, fix from Hidetoshi Tajima
2002-05-11  Havoc Pennington  <hp@pobox.com>

	* src/main.c: include locale.h, fix from Hidetoshi Tajima

	* src/window.c (meta_window_new): disable show desktop mode when a
	new window is managed.
2002-05-11 05:47:04 +00:00
Havoc Pennington
a3460b8ac8 keep the tooltip on the screen horizontally, #76825
2002-05-11  Havoc Pennington  <hp@pobox.com>

	* src/fixedtip.c (meta_fixed_tip_show): keep the tooltip
	on the screen horizontally, #76825

	* src/window.c (meta_window_handle_mouse_grab_op_event): end grab
	op _after_ doing the final update of the move or resize.
	Hopefully I didn't have a reason for the order I was using before.
2002-05-11 05:09:54 +00:00
Havoc Pennington
9598affa03 add override redirect test window
2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/tools/metacity-window-demo.c: add override redirect test
	window

	* src/stack.c (raise_window_relative_to_managed_windows): new
	function, used to avoid moving windows above override redirect
	popup windows.

	* src/display.c (event_callback): don't lower panels on
	LeaveNotify if they have focus, #70895
2002-05-11 04:44:34 +00:00
Havoc Pennington
2679d3cf00 when maximizing/fullscreening something with a grid, like a terminal,
2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): when maximizing/fullscreening
	something with a grid, like a terminal, center it in the
	maximization area in case it can't fill the whole area.
	#70554

	* src/main.c (main): use g_strerror() to get proper UTF-8.
2002-05-11 03:37:51 +00:00
Havoc Pennington
487c6cfaaa put LockMask into the ignored_modifier_mask so that caps lock doesn't mess
2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (reload_modmap): put LockMask into the
	ignored_modifier_mask so that caps lock doesn't mess up
	keybindings.
2002-05-11 02:38:58 +00:00
Havoc Pennington
052a794427 if window is not mapped after the calc_showing, don't focus it, it's
2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_focus): if window is not mapped after
	the calc_showing, don't focus it, it's probably on another
	workspace or something.
2002-05-11 02:25:11 +00:00
Anders Carlsson
6fe940afc7 Silent CVS 2002-05-10 10:53:05 +00:00
Havoc Pennington
912afb6e6b DefaultScreen() returns the screen number not Screen*
2002-05-09  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (show_tip_now): DefaultScreen() returns the screen
	number not Screen*

	* src/frame.c (meta_frame_sync_to_window): immediately repaint
	frame whenever we resize it, if we're inside a grab operation.

	* src/frames.c (meta_frames_repaint_frame): new function

	* src/window.c (meta_window_new): initialize window's colormap
	(meta_window_notify_focus): install the colormap for a window when
	it gets focus, uninstall on unfocus.

	* src/window.h (struct _MetaWindow): store window's colormap

	* src/display.c (event_callback): note changes to window colormap

	* src/frame.c (EVENT_MASK): add ColormapChangeMask
2002-05-09 22:34:00 +00:00
Havoc Pennington
6d2c558bd8 make Alt+button2 do a resize
2002-05-09  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): make Alt+button2 do a resize
2002-05-09 21:22:01 +00:00
Anders Carlsson
8f5c12d76d #ifdef out call to gtk_window_set_screen, reported by Erwann Chenede.
2002-05-08  Anders Carlsson  <andersca@gnu.org>

	* src/fixedtip.c (meta_fixed_tip_show):
	#ifdef out call to gtk_window_set_screen, reported by
	Erwann Chenede.
2002-05-08 17:20:38 +00:00
Anders Carlsson
0494b044d5 Add multi-screen support. Also add patch by Erwann Chenede to make
2002-05-08  Anders Carlsson  <andersca@gnu.org>

	* configure.in:
	* src/display.c: (meta_display_open):
	* src/fixedtip.c: (meta_fixed_tip_show):
	* src/fixedtip.h:
	* src/frames.c: (meta_frames_new), (show_tip_now):
	* src/frames.h:
	* src/menu.c: (meta_window_menu_new):
	* src/ui.c: (meta_ui_new):
	Add multi-screen support. Also add patch by Erwann Chenede
	to make tooltips appear on the correct screen.
2002-05-08 16:24:28 +00:00
Anders Carlsson
3f7203a3a4 Doh, only update the tmp pointer when the screen matches. Fixes a segfault
2002-05-07  Anders Carlsson  <andersca@gnu.org>

	* src/workspace.c (set_work_area_hint): Doh, only update
	the tmp pointer when the screen matches. Fixes a segfault
	when running with multiple screens.
2002-05-07 17:23:31 +00:00
Anders Carlsson
9138b9aa3c Fix atom name; it's _NET_SHOW_DESKTOP, not _NET_WM_SHOW_DESKTOP.
2002-05-07  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (meta_display_open), (event_callback),
	(meta_display_update_show_desktop_hint):
	* src/display.h:
	* src/screen.c: (set_supported_hint):
	Fix atom name; it's _NET_SHOW_DESKTOP, not
	_NET_WM_SHOW_DESKTOP.

	* src/frames.c: (meta_frames_unmanage_window):
	Restore the mouse cursor to default when unmanaging a window.
2002-05-07 14:42:47 +00:00
Anders Carlsson
7b9877258f Fix an off-by-one error.
2002-05-06  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (set_utf8_string_hint):
	Fix an off-by-one error.

	(meta_display_open),
	(event_callback), (meta_display_update_show_desktop_hint),
	(meta_display_show_desktop), (meta_display_unshow_desktop):
	* src/display.h:
	* src/screen.c: (set_supported_hint):
	Add support for _NET_WM_SHOW desktop, both as a message and
	as a root window property.
2002-05-06 06:11:46 +00:00
Havoc Pennington
41120f2a79 on unminimize, queue calc_showing on all transients
2002-05-05  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_unminimize): on unminimize, queue
	calc_showing on all transients
	(meta_window_activate): on activate, unminimize all a window's
	ancestors, not just the window itself.

	* src/workspace.c (set_work_area_hint): don't increment "tmp" by
	16 unsigned long, increment by 4

	* src/window.c (meta_window_free): if a window isn't minimized,
	restore its WM_STATE to NormalState instead of IconicState,
	since IconicState on initial window map means that the window
	should be minimized.

	* src/workspace.c (meta_workspace_invalidate_work_area): queue an
	idle to recompute the work area hint.
	(set_work_area_hint): we need 4*num_workspaces ints, not just
	num_workspaces.

	* src/screen.c (meta_screen_new): add work_area_idle field,
	handle it on screen shutdown

	* src/common.h (META_PRIORITY_PREFS_NOTIFY,
	META_PRIORITY_WORK_AREA_HINT): define some idle priorities

	* src/window.c (meta_window_calc_showing): hide windows if
	their parent window is minimized
	(meta_window_minimize): also queue_calc_showing on all
	transients of the window being minimized

	* src/place.c (constrain_placement): function to apply
	placement-time-only constraints, such as "not off the left of the
	screen"
	(meta_window_place): put dialogs down a bit over their parent,
	not right at the top.
	(meta_window_place): when centering a dialog, center it
	on the current xinerama screen, rather than the entire
	screen.

	* src/screen.c (meta_screen_get_current_xinerama): new function,
	but not implemented
2002-05-05 05:41:13 +00:00
Havoc Pennington
6f8a7f1870 chop out the portion of the region that's outside the screen.
2002-05-04  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_paint_to_drawable): chop out the
	portion of the region that's outside the screen.

	* src/core.c (meta_core_get_screen_size): new function
	(meta_core_get_frame_extents): new function
2002-05-05 00:45:01 +00:00
Havoc Pennington
7fbbd0200f disable automatic GTK double buffering, since it resulted in gigantic
2002-05-04  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_init): disable automatic GTK double
	buffering, since it resulted in gigantic backing pixmaps the size
	of the whole screen.
	(meta_frames_paint_to_drawable): change to take a region argument;
	punch the client area out of the expose region, then iterate over
	rectangles in the region and draw each, manually doing
	begin_paint_rect. Results in 4 long thin backing pixmaps
	per frame repaint, instead of one large backing pixmap.
	Suggested by Owen.
2002-05-05 00:21:17 +00:00
Bastien Nocera
cf4ef8cab2 - Wrap-around workspaces (ie. when on the last workspace, "switch_to_workspace_right" goes back to the first one) 2002-05-05 00:11:29 +00:00
Anders Carlsson
011a7f77a6 Fix a spelling error and change switch_to_workspace_up and
2002-05-05  Anders Carlsson  <andersca@gnu.org>

	* src/metacity.schemas: Fix a spelling error and change
	switch_to_workspace_up and switch_to_workspace_down to use
	Ctrl+Alt since Nautilus uses Alt now.
2002-05-04 23:40:12 +00:00
Havoc Pennington
80fb12a0b9 correctly print things if the type_atom is unset (meta_window_new): with
2002-05-04  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_net_wm_type): correctly print things if the
	type_atom is unset
	(meta_window_new): with workarounds disabled, always allow
	self-placement for windows with PPosition or USPosition set.
2002-05-04 22:53:13 +00:00
Havoc Pennington
80c4897ced fix for automake 1.5, patch from Tomasz Kloczko
2002-05-03  Havoc Pennington  <hp@redhat.com>

	* src/Makefile.am: fix for automake 1.5, patch from Tomasz Kloczko
2002-05-03 18:40:16 +00:00
Bastien Nocera
718b077b82 - change the default for switch_to_workspace_* to be <Control><Alt>arrow as just <Alt>arrow collides with some apps (especially web browsers) 2002-05-02 16:59:52 +00:00
Havoc Pennington
14dccacfde Xlib doesn't like NULL for out arguments; fix for #80472 from lbedford
2002-05-01  Havoc Pennington  <hp@redhat.com>

	* src/screen.c (meta_screen_new): Xlib doesn't like NULL for out
	arguments; fix for #80472 from lbedford
2002-05-01 16:31:58 +00:00
Havoc Pennington
82ceb7c837 finish mopping up mode_switch_mask field
2002-04-30  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: finish mopping up mode_switch_mask field

	* src/display.h (struct _MetaDisplay): remove mode_switch_mask
	field
2002-05-01 03:33:06 +00:00
Havoc Pennington
03481ae2d0 don't try to decorate toolbars.
2002-04-30  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): don't try to decorate
	toolbars.

	* src/tools/metacity-window-demo.c: add menu and toolbar tests

	* src/place.c (meta_window_place): only dialogs should be centered
	over parent, not anything with transient for set.

	* src/window.c (meta_window_configure_request): become more
	fascist about window positioning if workarounds are disabled, and
	less fascist if they are enabled.

	* src/metacity.schemas: add a "disable_workarounds" option.  Kind
	of crack-smoking. But we just can't get all applications
	fixed. And I need no-workarounds mode to monitor which apps are
	broken and what needs fixing in specs.

	* src/window.c (meta_window_configure_request): always allow
	windows to resize themselves

	* src/keybindings.c (reload_modmap): don't filter out Mode_switch,
	apparently some people bind window manager shortcuts to that.
2002-05-01 03:23:46 +00:00
Havoc Pennington
17b4eab4d4 oops, fix maximization. Pointed out by Gustavo Girldez
2002-04-30  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_position): oops, fix
	maximization. Pointed out by Gustavo Girldez
2002-04-30 19:52:30 +00:00
Jonathan Blandford
cb1b7deefa give Maximize/Unmaximize and Shade/Unshade the same mnemonic for
Tue Apr 30 06:24:09 2002  Jonathan Blandford  <jrb@gnome.org>

	* src/menu.c: give Maximize/Unmaximize and Shade/Unshade the same
	mnemonic for consistency's sake.
2002-04-30 11:00:53 +00:00
Havoc Pennington
cd40cc9edb require 36 pixels onscreen so you typically get a sliver of titlebar,
2002-04-29  Havoc Pennington  <hp@redhat.com>

	* src/window.c (TITLEBAR_LENGTH_ONSCREEN): require 36 pixels
	onscreen so you typically get a sliver of titlebar, suggested by
	tigert.  Should still fix this to consider actual theme geometry.
	(constrain_position): change to allow movement off the left
2002-04-29 21:29:51 +00:00
Havoc Pennington
e8267b20fe always raise windows on focus click, regardless of focus mode.
2002-04-29  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): always raise windows on focus
	click, regardless of focus mode.
2002-04-29 20:20:38 +00:00
Havoc Pennington
a32503a75a don't leak the PangoContext
2002-04-29  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): don't leak the PangoContext
2002-04-29 06:08:59 +00:00
Anders Carlsson
53268f985f Add support for setting the _NET_WM_WORKAREA hint. No code does it yet
2002-04-28  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (meta_display_open):
	* src/display.h:
	* src/screen.c: (set_supported_hint):
	* src/workspace.c: (set_number_of_spaces_hint),
	(set_workarea_hint):
	Add support for setting the _NET_WM_WORKAREA hint. No code
	does it yet though.
2002-04-28 15:47:21 +00:00
Havoc Pennington
e4e200a1dc remove caveats about keybindings
2002-04-28  Havoc Pennington  <hp@pobox.com>

	* README: remove caveats about keybindings

	* src/metacity.schemas: add schemas for all the keybindings.

	* src/window.c (meta_window_activate): if in "show desktop" mode
	when a window is activated, leave show desktop mode. So e.g.
	when you click on a task in the task list, show desktop mode
	will be turned off.

	* src/workspace.c (meta_workspace_get_neighbor): new function
	that doesn't quite work yet (needs support for getting
	workspace layout from the pager)

	* src/prefs.c: keybindings stuff

	* src/keybindings.c: make keybindings configurable

	* src/ui.c (meta_ui_parse_accelerator): new function
2002-04-28 04:52:26 +00:00
jacob berkman
e691b664e3 g_file_get_contents() takes a gsize not int (fixes bus error on 64-bit
2002-04-25  jacob berkman  <jacob@ximian.com>

	* src/session.c (load_state): g_file_get_contents() takes a gsize
	not int (fixes bus error on 64-bit platforms)
2002-04-25 16:25:07 +00:00
Havoc Pennington
5fd4fb96f7 call setlocale ourselves because due to a GLib bug that sticks us in ASCII
2002-04-22  Havoc Pennington  <hp@redhat.com>

	* src/main.c (main): call setlocale ourselves because due to a
	GLib bug that sticks us in ASCII if you call g_print or anything
	prior to setlocale, and print a warning if we don't set the locale
	successfully. #79280

	* src/workspace.c (meta_workspace_get_work_area): be more verbose
	about how the work area was computed, to help find bugs here.

	* src/main.c (main): put locale and codeset in the log file
2002-04-22 18:18:38 +00:00
Havoc Pennington
8183c509d9 add error trap, fixes a possible BadWindow if a window closed itself in
2002-04-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_send_icccm_message): add error trap,
	fixes a possible BadWindow if a window closed itself in response
	to the delete window message prior to us sending the ping message.
2002-04-22 03:23:29 +00:00
Havoc Pennington
115c086eb9 never revert to user_rect.width, user_rect.height. Maybe fixes assorted
2002-04-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_move_resize_now): never revert to
	user_rect.width, user_rect.height. Maybe fixes assorted resize
	screwups e.g. with gnome-terminal.
2002-04-22 03:10:53 +00:00
Anders Carlsson
6603ee6084 Add padding if icon width and height differ.
2002-04-21  Anders Carlsson  <andersca@gnu.org>

	* src/iconcache.c (scaled_from_pixdata): Add padding if
	icon width and height differ.
2002-04-21 20:17:44 +00:00
Havoc Pennington
f5c10f387b query Xinerama screen information if HAVE_XINERAMA
2002-04-17  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): query Xinerama screen
	information if HAVE_XINERAMA

	* configure.in (found_xinerama): check for Xinerama
2002-04-21 19:35:02 +00:00
Havoc Pennington
afcd24b603 fix issue with GNU libc mangling %.10s format
2002-04-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_title): fix issue with GNU libc
	mangling %.10s format

	* metacity.spec: Fix up spec file

	* README: update README

	* configure.in (ALL_LINGUAS): require GTK 2.0.0
2002-04-16 03:23:21 +00:00
Havoc Pennington
2a71cab8c4 reply immediately for windows that don't support _NET_WM_PING
2002-04-15  Havoc Pennington  <hp@redhat.com>

	* src/display.c (meta_display_ping_window): reply immediately for
	windows that don't support _NET_WM_PING

	* src/window.c (update_protocols): check whether windows
	support _NET_WM_PING
2002-04-15 22:14:06 +00:00
Havoc Pennington
206cff1547 same fix as libwnck, avoid using cmap with the wrong depth
2002-04-13  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (get_cmap): same fix as libwnck, avoid using cmap
	with the wrong depth
2002-04-13 20:26:45 +00:00
Havoc Pennington
d02060e201 new file containing all the wacky mess I just added to a simple "click the
2002-04-13  Havoc Pennington  <hp@pobox.com>

	* src/delete.c: new file containing all the
	wacky mess I just added to a simple "click the close button",
	contains all the dealing-with-dead-application cruft.
	Use metacity-window-demo to test by clicking the
	toolbar button that locks it up.
2002-04-13 04:58:45 +00:00
Havoc Pennington
f965726d15 make one of the toolbar buttons lock up the demo
2002-04-12  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-window-demo.c (do_appwindow): make one of the
	toolbar buttons lock up the demo

	* src/window.c (meta_window_delete): move error trap to be around
	a narrower part of the function, and add part of the ping stuff,
	nothing user-visible yet

	* src/metacity-dialog.c (main): metacity-dialog executable to
	live in libexecdir and pop up dialogs for us.
2002-04-12 23:00:46 +00:00
Havoc Pennington
38ff6a49c4 fix alpha multiplication routine to perhaps work correctly, reported by
2002-04-09  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (multiply_alpha): fix alpha multiplication routine
	to perhaps work correctly, reported by tigert. Also, be sure
	we always copy the image if necessary before modifying the
	alpha channel.
2002-04-10 04:00:32 +00:00
Havoc Pennington
fa0592ebc7 remove the unused tab stuff
2002-04-05  Havoc Pennington  <hp@pobox.com>

	* src/stack.c: remove the unused tab stuff

	* src/display.c: implement tab list among panels

	* src/keybindings.c: fill in move-between-panels keybindings
2002-04-05 15:52:49 +00:00
Johan Dahlin
a500a7e668 Make sure all menu items are translated.
2002-03-31  Johan Dahlin  <jdahlin@telia.com>

        * src/menu.c (meta_window_menu_new): Make sure all menu items are
	        translated.
2002-03-31 21:19:58 +00:00
Havoc Pennington
4aea4e7dc6 remove unmanaged windows from save set, and unselect input so we don't get
2002-03-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): remove
	unmanaged windows from save set, and unselect
	input so we don't get events from them. Fixes annoying
	bug where withdrawn windows would decide to map themselves
	due to save set stuff.
2002-03-28 03:49:18 +00:00
Havoc Pennington
faf818940d Added "Bright" theme from Gaute Lindkvist, with some small clipping tweaks
2002-03-21  Havoc Pennington  <hp@pobox.com>

	* src/themes/Bright/metacity-theme-1.xml: Added "Bright" theme
	from Gaute Lindkvist, with some small clipping tweaks to keep
	text/icons from overlapping their frames.
2002-03-22 04:23:47 +00:00
Havoc Pennington
615abebd9d disable the little shaped windows with the window size, they caused a
2002-03-19  Havoc Pennington  <hp@redhat.com>

	* src/resizepopup.c (place_vertical_size_window)
	(place_horizontal_size_window): disable the little shaped windows
	with the window size, they caused a crash anytime you tried to
	resize with Xft. And they were kind of on crack anyway.
2002-03-19 20:09:47 +00:00
Havoc Pennington
62c5d3df06 turn off the tick marks, that got annoying after about 5 minutes. One big
2002-03-17  Havoc Pennington  <hp@pobox.com>

	* src/resizepopup.c (ensure_tick_windows): turn off the tick
	marks, that got annoying after about 5 minutes. One big shape
	window instead of lots of little windows might fix it.
2002-03-17 17:42:13 +00:00
Havoc Pennington
bfc47ccd6e Add some total crackrock resize-grid indication for windows that have
2002-03-17  Havoc Pennington  <hp@pobox.com>

	* src/resizepopup.c: Add some total crackrock resize-grid
	indication for windows that have width_inc/height_inc
	so I can debug gnome-terminal sizing.
2002-03-17 17:22:23 +00:00
Havoc Pennington
80cd793f75 use proper property name for SmDiscardCommand (instead of setting the
2002-03-17  Havoc Pennington  <hp@pobox.com>

	* src/session.c (set_clone_restart_commands): use proper property
	name for SmDiscardCommand (instead of setting the clone command to
	"rm"). Also fix typo that iterated over clonev not discardv to
	fill in prop list, and NULL-terminate discardv. #74584 from Kang
	Jeong-Hee.
2002-03-17 15:26:13 +00:00
Havoc Pennington
42936562de put back --sm-client-id argument, needed for including us in a default
2002-03-13  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): put back --sm-client-id argument, needed
	for including us in a default session
2002-03-14 04:36:02 +00:00
Havoc Pennington
9e2cfcd699 don't save a file here, only in response to SaveYourself. Change the code
2002-03-13  Havoc Pennington  <hp@pobox.com>

	* src/session.c (meta_session_init): don't save a file here, only
	in response to SaveYourself. Change the code to properly use a
	unique state file for each SaveYourself. Totally, totally
	untested.
2002-03-14 04:09:42 +00:00
Havoc Pennington
9b86849068 improve the theme viewer so people can see the broken aspects of their
2002-03-12  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c: improve the theme viewer so people
	can see the broken aspects of their themes.
2002-03-12 06:25:30 +00:00
Havoc Pennington
11089cb824 use new functions
2002-03-11  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: use new functions

	* src/display.c (meta_display_get_tab_next):
	(meta_display_get_tab_list): new tab order functions using
	MRU list instead of map order

	* src/window.c (meta_window_notify_focus): maintain focus MRU list

	* src/display.h (struct _MetaDisplay): Keep an MRU list of
	windows.
2002-03-12 04:34:17 +00:00
Havoc Pennington
35a2f2df76 support _NET_NUMBER_OF_DESKTOPS message so you can change number of
2002-03-10  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): support _NET_NUMBER_OF_DESKTOPS
	message so you can change number of desktops with the pager

	* src/prefs.c (meta_prefs_set_num_workspaces): new function

	* src/display.c (meta_spew_event): print stacking aspects of
	configure request
2002-03-10 18:36:08 +00:00
Havoc Pennington
447eba6007 we didn't claim to support _NET_ACTIVE_WINDOW so gtk_window_present()
2002-03-10  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (set_supported_hint): we didn't claim to support
	_NET_ACTIVE_WINDOW so gtk_window_present() didn't work. Mumble.
	Only worked with tasklist because libwnck didn't check for
	WM support.

	* src/window.c (meta_window_free): clean off window state
	when windows are withdrawn, to avoid sticking dialogs
	to their initial desktop.
	(meta_window_queue_calc_showing): return if window is withdrawn
2002-03-10 15:48:38 +00:00
Havoc Pennington
c89be4ac8a remove broken assertions 2002-03-07 15:05:03 +00:00
Havoc Pennington
fdb20df78b add some assertions
2002-03-06  Havoc Pennington  <hp@pobox.com>

	* src/core.c (meta_core_get_grab_frame): add some assertions

	* src/menu.c (meta_window_menu_new): make another warning
	into a verbose

	* src/display.c (meta_change_button_grab): use verbose rather than
	warning to log failures to grab button, since these are typically
	BadWindow from a destroyed window.
2002-03-07 03:46:12 +00:00
Havoc Pennington
262e6fab27 use hash_table_replace instead of g_hash_table_insert
2002-03-06  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_manage_window): use hash_table_replace
	instead of g_hash_table_insert

	* src/main.c (main): only enable verbose/debug if you set
	METACITY_VERBOSE/METACITY_DEBUG

	* src/util.c (ensure_logfile): only use a log file if
	METACITY_USE_LOGFILE is set

	* src/display.c (meta_display_for_x_display): add warning if
	MetaDisplay isn't found

	* src/window.c (meta_window_free): add an assertion that we
	successfully cleared the grab window
2002-03-06 22:27:24 +00:00
Havoc Pennington
d443d92446 Work on opaque animations more, still suck too much to turn on. Not sure
2002-03-05  Havoc Pennington  <hp@pobox.com>

        Work on opaque animations more, still suck too much
	to turn on. Not sure how to make them good.

	* src/effects.c (meta_effects_draw_box_animation):
	add a slide-up mode for shading

	* src/ui.c (meta_image_window_set): change image window to work by
	setting back pixmap on the GtkWindow, instead of using GtkImage.
2002-03-05 05:05:00 +00:00
Havoc Pennington
5429690467 try ignoring SIGXFSZ, though I'm not sure what that does exactly. I'm
2002-03-04  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): try ignoring SIGXFSZ, though I'm not
	sure what that does exactly. I'm hoping it gives me EFBIG.

	* src/util.c (ensure_logfile): log to a file in /tmp instead
	of to ~/metacity.log.
2002-03-05 02:43:22 +00:00
Havoc Pennington
c1358625c9 improve debug spew about initial workspace
2002-03-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c: improve debug spew about initial workspace
2002-03-04 04:54:46 +00:00
Havoc Pennington
20a98e1c2a disable resize etc. if we're fullscreen (constrain_size): fix size
2002-03-02  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): disable resize etc. if
	we're fullscreen
	(constrain_size): fix size constraints when fullscreen

	* src/display.c (meta_display_open): fix missing comma that
	ended up concatenating two of the properties breaking
	FULLSCREEN state and PING protocol
2002-03-03 00:03:50 +00:00
Havoc Pennington
ac2aa5337d Add hacking to fix the problem that we made our XGrabPointer() during
2002-03-02  Havoc Pennington  <hp@pobox.com>

	* src/display.c: Add hacking to fix the problem that we made our
	XGrabPointer() during Alt+Tab actually succeed, so on popping down
	Alt+Tab we got an EnterNotify from the ungrab, which resulted in
	focusing the window under the mouse. i.e. Alt+Tab didn't work with
	sloppy focus.
2002-03-02 15:26:07 +00:00
Havoc Pennington
efa0ae8373 Screw around with Anders's ping patch so he'll get plenty of CVS
2002-02-26  Havoc Pennington  <hp@pobox.com>

        Screw around with Anders's ping patch so he'll get plenty of CVS
	conflicts. ;-)

	* src/display.c (meta_display_ping_window): spew warnings
	if we try to call this with CurrentTime
	(meta_display_ping_timeout): remove ping from the pending pings
	after it times out.

	* src/util.h: added PING debug category

	* src/display.c (remove_pending_pings_for_window): don't remove
	"tmp" just before "tmp->next", don't break out of loop after
	finding the first match
	(meta_display_open): no trailing comma in array init
	(event_callback): move the processing of ping replies into a
	separate function

	* src/screen.c (set_supported_hint): add _NET_WM_PING to supported
	list

	* src/display.h: change gpointer to void*

2002-02-26  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (ping_data_free),
	(remove_pending_pings_for_window), (meta_display_open),
	(event_callback), (meta_display_unregister_x_window),
	(meta_display_ping_timeout), (meta_display_ping_window),
	(meta_display_window_has_pending_pings):
	Implement meta_display_ping_window, and filter out scroll wheel
	events.

	* src/display.h:
	Add MetaWindowPingFunc, meta_display_ping_window and
	meta_display_window_has_pending_pings.
2002-02-27 02:05:39 +00:00
Havoc Pennington
bedddaa717 switch on the op passed in, not the active op. Gives us the right cursor
2002-02-24  Havoc Pennington  <hp@pobox.com>

	* src/display.c (xcursor_for_op): switch on the op passed in, not
	the active op. Gives us the right cursor during resizing, etc.

	* src/errors.c: rearrange all the error stuff to adapt to the GDK
	change a while back, so now we print our X errors again

	* src/display.c (meta_display_begin_grab_op): remove KeyPressMask
	and KeyReleaseMask from the XGrabPointer(), this caused BadValue
	and kept the grab from ever succeeding. Fixes the problem with the
	GTK resize grip - this is why you shouldn't break your X error
	spew. ;-)

	* src/display.c: debug spew tweaks

	* src/window.c (meta_window_client_message): do some
	s/verbose/topic/ stuff
2002-02-24 19:58:27 +00:00
Havoc Pennington
2d01419577 fix the be-sure-we-create-coverage-cache hack
2002-02-23  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): fix the
	be-sure-we-create-coverage-cache hack
2002-02-23 23:24:03 +00:00
Havoc Pennington
20218dac92 put in hack to keep Pango from mangling our server grab and locking up on
2002-02-19  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): put in hack to keep Pango from mangling
	our server grab and locking up on startup. (hack doesn't work
	but I want to fix it on my real computer not this laptop)

	* src/window.c: Implement _NET_WM_STATE_FULLSCREEN

	* src/display.c (meta_display_open): add atoms for
	_NET_WM_STATE_FULLSCREEN
2002-02-23 22:58:02 +00:00
Kjartan Maraas
53bdcfc12b Shh some more 2002-02-16 15:12:55 +00:00
Kjartan Maraas
1feeb731c9 Use bind_textdomain_codeset etc.
2002-02-16  Kjartan Maraas  <kmaraas@gnome.org>

	* src/main.c: Use bind_textdomain_codeset etc.
2002-02-16 14:32:16 +00:00
Havoc Pennington
37dd796b53 add missing files 2002-02-15 14:37:25 +00:00
Havoc Pennington
a7378b709b use the preview widget here
2002-02-14  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c: use the preview widget here

	* src/preview-widget.h, src/preview-widget.c: make the theme
	preview into a nice widget

	* src/frames.c (meta_frames_ensure_layout): replace frame layout
	if the frame style changes, this only ends up mattering if you
	e.g. changed the font size for windows in a different state such
	as maximized, which is crack, but the code may as well be correct

	* src/theme.c (meta_theme_get_frame_style): new function so we can
	detect an invalid cache of the PangoLayout in a frame
2002-02-15 02:32:48 +00:00
Anders Carlsson
813e6f459f Fix some bugs with prelighting.
2002-02-14  Anders Carlsson  <andersca@gnu.org>

	* src/themes/Crux/metacity-theme-1.xml: Fix some bugs with
	prelighting.
2002-02-13 23:30:55 +00:00
Anders Carlsson
0ed0c3bab6 Use pango_context_get_metrics instead of loading the font.
2002-02-13  Anders Carlsson  <andersca@gnu.org>

	* src/theme.c (meta_pango_font_desc_get_text_height): Use
	pango_context_get_metrics instead of loading the font.
2002-02-13 22:50:57 +00:00
Anders Carlsson
0ca04ed7aa Set prelit_control to META_FRAME_CONTROL_NONE.
2002-02-12  Anders Carlsson  <andersca@gnu.org>

	* src/frames.c (meta_frames_manage_window): Set prelit_control
	to META_FRAME_CONTROL_NONE.
	(meta_frames_update_prelit_control): New function for setting
	the prelit control.
	(meta_frames_paint_to_drawable): Set prelight state.
	(meta_frames_enter_notify_event): Update prelit control.
	(meta_frames_leave_notify_event): Likewise.
	(meta_frames_motion_notify_event): Likewise.

	* src/frames.h (struct _MetaUIFrame): add prelit_control.
2002-02-12 05:01:22 +00:00
Anders Carlsson
78478110fa and MWM_FUNC_ALL with hints->functions instead of hints->flags.
2002-02-12  Anders Carlsson  <andersca@gnu.org>

	* src/window.c (update_mwm_hints): and MWM_FUNC_ALL
	with hints->functions instead of hints->flags.
2002-02-12 01:02:42 +00:00
Anders Carlsson
1b0100792f Only disable functions if MWM_FUNC_ALL _is_ set, not when it isn't.
2002-02-12  Anders Carlsson  <andersca@gnu.org>

	* src/window.c (update_mwm_hints): Only disable functions if
	MWM_FUNC_ALL _is_ set, not when it isn't.
2002-02-12 00:31:26 +00:00
Anders Carlsson
a9b7683110 Set title_scale to 1.0.
2002-02-11  Anders Carlsson  <andersca@gnu.org>

	* src/theme.c (meta_frame_layout_new): Set title_scale to 1.0.
2002-02-11 16:28:17 +00:00
Anders Carlsson
a2d4594e19 Always set title_scale_val.
2002-02-11  Anders Carlsson  <andersca@gnu.org>

	* src/theme-parser.c (parse_toplevel_element): Always set
	title_scale_val.
2002-02-11 15:04:48 +00:00
Bastien Nocera
dffad0e982 - change default theme-viewer theme to be Atlanta 2002-02-11 03:58:50 +00:00
Havoc Pennington
e5b944ce09 add $(icon_DATA)
2002-02-10  Havoc Pennington  <hp@pobox.com>

	* src/tools/Makefile.am (EXTRA_DIST): add $(icon_DATA)

	* configure.in: 2.3.55

	* HACKING: update

	* README: update
2002-02-10 18:00:16 +00:00
Havoc Pennington
f5e9ff5a82 add a newline to an error message
2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_theme_set_current): add a newline to an error
	message

	* src/themes/Gorilla: add Gorilla theme by Jakub Steiner ported to
	metacity by Kenneth Christiansen
2002-02-10 04:28:33 +00:00
Havoc Pennington
2bad2844f5 implement wacky "tile" draw op to lose some of the PNG files in Gorilla
2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_draw_op_draw_with_env): implement wacky "tile"
	draw op to lose some of the PNG files in Gorilla theme

	* src/theme-parser.c: parse the tile primitive
2002-02-10 01:10:33 +00:00
Havoc Pennington
245c9c2d7e port to icon cache
2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_icon): port to icon cache

	* src/iconcache.c, src/iconcache.c: begin process of cleaning up
	window.c by moving the icon-reading code in here, based on the
	code in libwnck, which was in turn based on the earlier metacity
	code
2002-02-09 23:03:52 +00:00
Havoc Pennington
29a86695d1 hmm, and don't set last_window at all if we don't ++newp. Fixes even more
2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_sync_to_server): hmm, and don't set
	last_window at all if we don't ++newp. Fixes even more obscure
	stacking bug.
2002-02-09 17:46:23 +00:00
Havoc Pennington
7b9eccb489 assign last_window prior to ++newp, so we don't try to stack windows with
2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_sync_to_server): assign last_window
	prior to ++newp, so we don't try to stack windows with respect to
	themselves. Fixes some obscure stacking bugs.
2002-02-09 17:41:42 +00:00
Havoc Pennington
339bdf8dd2 try to make more error message strings the same, easier for translators
2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/theme-parser.c: try to make more error message strings the
	same, easier for translators

	* src/theme.c (meta_draw_op_free): free color spec for line op
	(meta_theme_free): free the integer_constants hash

	* src/theme-parser.c (parse_boolean): move above first use

	* src/theme-viewer.c: fixes for theme.h changes

	* src/frames.c (queue_recalc_func): don't recreate layout
	immediately, just save title text. should speed things up.
	(meta_frames_set_title): just remove the layout here also,
	and save title text.

	* src/theme-parser.c (parse_toplevel_element): parse title_scale
	attribute on frame_geometry

	* src/theme.c: support setting the text size

	* src/frames.c: support setting the text size

	* theme-format.txt: updates
2002-02-09 17:02:38 +00:00
Havoc Pennington
116fc5546f put in some kind of distinctive frame for UTILITY, though it's ugly. Also
2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/themes/Atlanta/metacity-theme-1.xml: put in some kind of
	distinctive frame for UTILITY, though it's ugly. Also put in the
	borderless look for maximized windows.

	* src/stack.c (compute_layer): put splash screen in the splash
	layer

	* src/stack.h (enum): create a splash screen layer

	* src/place.c (meta_window_place): center splashscreen, and fix a
	typo in the centering code

	* src/window.c (recalc_window_features): disable most features on
	splash screens

	* src/screen.c (set_supported_hint): add UTILITY and SPLASHSCREEN
	hints

	* src/window.c: add UTILITY, SPLASHSCREEN implementation

	* src/window.h (enum): add UTILITY, SPLASHSCREEN types

	* src/theme-parser.c (parse_toplevel_element): parser support
	for has_title attribute

	* src/theme.c (meta_frame_layout_get_borders): handle a has_title
	field in the layout, for utility windows that don't display a
	title (would be better to be able to shrink the title text,
	but that's kind of tricky to implement :-/)
2002-02-09 06:54:44 +00:00
Havoc Pennington
844a8ac13f add _NET_WM_STATE_HIDDEN to _NET_SUPPORTED
2002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (set_supported_hint): add _NET_WM_STATE_HIDDEN
	to _NET_SUPPORTED

	* src/keybindings.c (meta_set_keybindings_disabled): put in header
	file, to fix warning.

	* src/display.c (meta_display_open): add _NET_WM_STATE_HIDDEN atom

	* src/window.c (set_net_wm_state): set _NET_WM_STATE_HIDDEN for
	shaded and minimized windows
	(meta_window_show): call set_net_wm_state() if we map the window
	or frame
	(meta_window_hide): call set_net_wm_state() if we unmap the window
	or frame
2002-02-09 04:50:58 +00:00
Havoc Pennington
bd712d7f8f only set skip pager/tasklist if the app set it, don't set it again based
2002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/window.c (set_net_wm_state): only set skip pager/tasklist if
	the app set it, don't set it again based on semantic type.
2002-02-09 04:15:41 +00:00
Anders Carlsson
9d84a23cd1 If we're only scaling horizontally or vertically, use GDK_INTERP_NEAREST.
2002-02-08  Anders Carlsson  <andersca@gnu.org>

	* src/theme.c (scale_and_alpha_pixbuf): If we're only
	scaling horizontally or vertically, use GDK_INTERP_NEAREST.
2002-02-08 19:12:55 +00:00
Havoc Pennington
75fa1d1b09 grab buttons 2 and 3 also, so you can focus a window with those, #70840
002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_grab_focus_window_button): grab
	buttons 2 and 3 also, so you can focus a window with those,
	#70840
	(event_callback): fix this to let you focus a window with any
	unmodified click, and also with Alt+button1

	* configure.in (AC_OUTPUT): add po/Makefile.in

	* autogen.sh: port to glib-gettextize, remove stupid
	auto-find-subdirs crap

	* Makefile.am (SUBDIRS): add po to subdirs, #70615

	* src/window.c (meta_window_activate): unshaded window if shaded,
	I thought this was in bugzilla but I don't see it. anyway thanks
	whoever mentioned it to me.
2002-02-08 06:50:09 +00:00
Havoc Pennington
ced833fdfc add modal dialog test
2002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/tools/metacity-window-demo.c (menu_items): add modal dialog test
2002-02-08 06:22:24 +00:00
Havoc Pennington
51d9f9dce6 when mapping a window with struts, invalidate the work areas it's on.
2002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): when mapping a window with
	struts, invalidate the work areas it's on. Should fix at least
	part of the problem with windows maximizing over panels.

	* src/workspace.c (meta_workspace_invalidate_work_area): also
	queue move/resize on sticky windows

	* src/tools/Makefile.am: consolidate reload-theme, restart into a
	"metacity-message" app and add enable/disable keybindings to the
	messages it knows about.

	* src/keybindings.c:
	(meta_change_keygrab): grab keyboard synchronously
	(meta_display_process_key_event): if all keybindings are toggled
	off, ReplayKeyboard, else AsyncKeyboard, except that the debug
	binding for toggling back on is always processed
	(meta_set_keybindings_disabled): function to disable/enable
	all keybindings
2002-02-08 06:01:58 +00:00
Havoc Pennington
43b67afc41 if DEMO_TEST is set then run the window demo
2002-02-07  Havoc Pennington  <hp@pobox.com>

	* src/run-metacity.sh: if DEMO_TEST is set then run the window
	demo

	* src/tools/metacity-window-demo.c: Create an app with all the
	semantic window types, for testing and for designing themes.
2002-02-08 04:44:56 +00:00
Havoc Pennington
d91715dc8f Throughout: move to meta_topic rather than meta_verbose so metacity.log
2002-02-07  Havoc Pennington  <hp@pobox.com>

        Throughout: move to meta_topic rather than meta_verbose so
	metacity.log can start being more useful

	* src/util.h (enum): add more debug topics

	* src/frames.c: clean up some cruft that caused warnings
2002-02-08 03:34:26 +00:00
Havoc Pennington
090096b1e2 do random voodoo on the algorithm
2002-02-07  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (colorize_pixbuf): do random voodoo on the algorithm
2002-02-07 06:24:10 +00:00
Havoc Pennington
d2061f8398 use the intensity of the gray pixel for both saturation and value, not
2002-02-07  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (colorize_pixbuf): use the intensity of the gray
	pixel for both saturation and value, not just value.
2002-02-07 05:46:40 +00:00
Havoc Pennington
835863e397 don't define the macro twice
2002-02-07  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (INTENSITY): don't define the macro twice
2002-02-07 05:15:37 +00:00
Havoc Pennington
e605dff37f get algorithm right (use HSV/RGB conversion) at cost of making it a lot
2002-02-07  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (colorize_pixbuf): get algorithm right (use HSV/RGB
	conversion) at cost of making it a lot slower. It doesn't matter
	anyhow with the cache, though.
2002-02-07 05:13:26 +00:00
Havoc Pennington
e6984e727c handle out-of-memory creating target pixbuf
2002-02-06  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (colorize_pixbuf): handle out-of-memory creating
	target pixbuf

	* src/themes/Crux/*.png: convert the green-channel images to grayscale
2002-02-07 05:01:56 +00:00
Havoc Pennington
5ad12fbe90 s/update_focus_mode/update_theme/ in case of theme key changing
2002-02-06  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (change_notify): s/update_focus_mode/update_theme/
	in case of theme key changing
2002-02-07 04:32:48 +00:00
Havoc Pennington
8f1cfefbb2 benchmark theme on startup
2002-02-06  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c: benchmark theme on startup

	* src/theme-parser.c (parse_draw_op_element): fix "colorize !=
	NULL" to "colorize_spec != NULL" and free pixbuf on color spec
	failure

	* src/theme.c (colorize_pixbuf): minor reformatting, raise
	function calls out of inner loop, clamp r/g/b values to uchar
	range before assigning to uchar
	(draw_op_as_pixbuf): cache the colorized pixbuf
	(meta_draw_op_free): free the cache pixbuf
2002-02-07 04:22:57 +00:00
Anders Carlsson
f33a46072b Add support for "colorize" image attribute.
2002-02-07  Anders Carlsson  <andersca@gnu.org>

	* src/theme-parser.c: (parse_draw_op_element):
	Add support for "colorize" image attribute.

	* src/theme.c: (colorize_pixbuf):
	New function that colorizes a pixbuf.

	(pos_tokenize): Allow "\n" as a whitespace character.

	(meta_draw_op_free): Free colorize_spec;

	(draw_op_as_pixbuf): Colorize image if needed.

	* src/theme.h: Add colorize_spec to struct.
2002-02-07 03:43:13 +00:00
Anders Carlsson
7279f2a9cd Add maximized and shaded_and_maximized frame styles.
2002-02-07  Anders Carlsson  <andersca@gnu.org>

	* src/themes/Crux/metacity-theme-1.xml: Add maximized and
	shaded_and_maximized frame styles.
2002-02-07 03:38:54 +00:00
Havoc Pennington
84c3050a7c redo window sizes/appearance when the theme changes
2002-02-06  Havoc Pennington  <hp@pobox.com>

	* src/main.c (prefs_changed_callback): redo window
	sizes/appearance when the theme changes

	* src/display.c (meta_display_retheme_all): new function

	* src/theme-parser.c (locate_attributes): remove error handling
	for MAX_ATTRS reached, add an assert instead, the way this code
	ended up the attrs in the array depend on the code not the theme
	file.
2002-02-07 03:25:34 +00:00
Havoc Pennington
8ae714eeae disable custom log handler and fatal mask for now
2002-02-06  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): disable custom log handler and fatal mask for
	now

	* src/theme.c (meta_draw_op_list_draw):
	Add META_DRAW_CLIP

	* src/main.c: load theme, monitor current theme setting

	* src/prefs.c: add "current theme" setting

	* src/stack.c (meta_stack_free): don't try to free
	last_root_children_stacked if it doesn't exist

	* src/themewidget.c: pluggable GtkMisc subclass to use
	for menu icons

	* src/screen.c (meta_screen_manage_all_windows): fix
	signed/unsigned warning

	* src/frames.c: port to theme system
	(meta_frames_style_set): chain up

	* theme-format.txt: new file

	* configure.in: add more compiler warnings

	* src/theme.c: add various stuff needed to get theme parser
	working. Remove the "spacer" concept from FrameLayout object.
	Add draw op that references a draw op list.

	* configure.in: require GTK 1.3.13

	* src/Makefile.am: add theme-parser.[hc], implement loading a
	theme

	* src/theme.c: add "draw title" and "draw window icon" operations
	(meta_draw_op_draw): put object_width/object_height in expression
	environment before computing x/y. Handle out-of-memory when
	creating pixbufs. Assorted other cleanups.
2002-02-07 03:07:56 +00:00
Anders Carlsson
2be2d8ccbe Simplify things so we can remove some now unnecessary .png files. Remove
2002-02-07  Anders Carlsson  <andersca@gnu.org>

	* src/themes/Crux/metacity-theme-1.xml:
	Simplify things so we can remove some
	now unnecessary .png files.
	* src/themes/Crux/*.png: Remove some files.
2002-02-06 23:49:59 +00:00
Anders Carlsson
41e5fbb963 src/themes/Crux/metacity-theme-1.xml Add Crux theme
2002-02-07  Anders Carlsson  <andersca@gnu.org>

	* src/themes/Crux/metacity-theme-1.xml
	* src/themes/Crux/*.png:
	Add Crux theme
2002-02-06 23:08:00 +00:00
Anders Carlsson
9c5809ce5e Add this so CVS won't prune the directory. 2002-02-06 23:02:45 +00:00
Havoc Pennington
089eb7e6de test % operator
2002-02-02  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c: test % operator

	* src/theme.c (pos_tokenize): add % to switch for operators

	* src/theme.c: rework theme stuff so we have
	MetaDrawOp/MetaDrawOpList instead of MetaTextureSpec/MetaShapeSpec
2002-02-02 05:09:19 +00:00
Havoc Pennington
f374f94644 fix shadowed variable (stupid -Wall should have that)
2002-01-28  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_texture_spec_render): fix shadowed variable
	(stupid -Wall should have that)

	* src/theme-viewer.c (main): implement a simple
	viewer for frame styles

	* src/theme.c (meta_frame_style_get_test): create partial
	frame style to test drawing
2002-01-28 07:30:44 +00:00
Havoc Pennington
838d999d86 implement (meta_texture_spec_draw): implement shape spec and blank texture
2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_shape_spec_draw): implement
	(meta_texture_spec_draw): implement shape spec and blank
	texture support
	(meta_frame_style_draw): implement
2002-01-28 05:16:04 +00:00
Havoc Pennington
8ddeb4f953 move in here so util.c doesn't require display.[hc]
2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_set_syncing): move in here so util.c doesn't
	require display.[hc]

	* src/theme.h, src/theme.c: implement coordinate expression
	parser, write MetaShapeSpec declaration

	* src/util.c (meta_exit): move in here so we can link
	to util.c with a different main()

	* src/theme.h: rename the MetaWindow* enums to MetaFrame*
2002-01-28 02:09:12 +00:00
Havoc Pennington
b52ee424e4 Only consider the bottom of the titlebar a resize control; I keep
2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (get_control): Only consider the bottom of the
	titlebar a resize control; I keep accidentally resizing windows
	instead of activating them. Also, give south resizing priority
	over north, if the window is so small the active regions overlap

	* src/theme.c: add MetaTheme, get MetaFrameStyleSet into
	a usable state

	* src/common.h: move window type back to window.h, decided
	not to use it on frame side
	(MetaFrameType): add this instead
2002-01-27 08:21:53 +00:00
Havoc Pennington
5b4e9c01cc implement all kinds of crazy compositing-one-texture-onto-another BS.
2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/theme.h, src/theme.c: implement all kinds of crazy
	compositing-one-texture-onto-another BS.
2002-01-27 07:32:46 +00:00
Havoc Pennington
7eac9e4958 make the check for whether to eat focus click a lot more complicated
2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): make the check for whether to
	eat focus click a lot more complicated

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

	* src/prefs.h, src/prefs.c: add application based pref

	* src/metacity.schemas: add "application_based" setting to
	give me a mode to fool with being application based,
	without being unusable in the meantime. Yeah the crack flows
	freely these days. Everyone knew it would happen.
2002-01-27 05:50:34 +00:00
Havoc Pennington
855d19cc0a separate code to draw frame from the expose_event handler, so in principle
2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/frames.c: separate code to draw frame from the
	expose_event handler, so in principle we can draw the
	frame to a pixmap, but this isn't used yet.
2002-01-27 05:27:11 +00:00
Havoc Pennington
5fdb8463de cheesy client with static bit gravity, used to test the below change.
2002-01-19  Havoc Pennington  <hp@pobox.com>

	* src/wm-tester/test-resizing.c: cheesy client with static
	bit gravity, used to test the below change.

	* src/window.c (meta_window_move_resize_internal): implement
	Owen's proposal for window resizing.
	http://mail.gnome.org/archives/wm-spec-list/1999-November/msg00088.html

	Currently you have to do METACITY_USE_STATIC_GRAVITY=1 in order to
	use it, because some GDK bug is screwing up exposes on my frames
	when it's enabled.

	* src/display.c (meta_display_create_x_cursor): fix glyph for
	NE/NW cursors

	* src/frames.c (get_control): add ability to resize from top

	* src/frame.c (meta_frame_get_flags): can't resize shaded windows
	(meta_frame_sync_to_window): add gravity arg

	* src/common.h (MetaWindowType): move here from window.h so
	it can be used in themes stuff.
	(MetaFrameFlags): remove META_FRAME_TRANSIENT since it
	overlaps with window type and was unused.
2002-01-19 23:59:11 +00:00
Havoc Pennington
19d2e8c7e1 give priority to keeping NW corner onscreen rather than SE, if we need to
2002-01-18  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): give priority to keeping NW
	corner onscreen rather than SE, if we need to shift the window
	to fit inside constraints

	* src/frames.c (meta_frames_get_geometry): don't depend on the
	current window size

	* src/theme.c: move geometry stuff in here, to be calculated as
	part of the theme

	* src/core.c (meta_core_get_client_size): new function to replace
	meta_core_get_frame_size() so we don't have weird cycles
	in the geometry calculation
2002-01-19 03:50:03 +00:00
Havoc Pennington
3194faaa9c fix crash when grab failed due to another operation in progress
2002-01-15  Havoc Pennington  <hp@redhat.com>
	* src/keybindings.c (handle_tab_backward): fix crash
	when grab failed due to another operation in progress
	(handle_tab_forward): fix crash when grab failed
2002-01-15 23:19:06 +00:00
Havoc Pennington
229589616f only bump unmaps_pending if the window was mapped
2002-01-10  Havoc Pennington  <hp@pobox.com>

	* src/frame.c (meta_window_destroy_frame): only bump
	unmaps_pending if the window was mapped
	(meta_window_ensure_frame): ditto

	* src/keybindings.c: change arrow key bindings to use Ctrl+Alt not
	just Alt, and add debug mode key bindings

	* src/stack.c (meta_stack_get_default_focus_window): don't choose
	a default focus window with unmaps pending, since we probably just
	unmapped it.

	* src/display.c (event_callback): move notify_focus on UnmapNotify
	after the window_free check, so we can move focus to another
	window when we unmanage

	* src/window.c (meta_window_hide): invalidate work areas when
	hiding a window with struts
	(meta_window_free): invalidate work areas when unmanaging a window
	with struts
2002-01-11 03:31:14 +00:00
Havoc Pennington
b2bbb306f4 store strut information, update it on property changes, etc. etc. so we
2002-01-09  Havoc Pennington  <hp@pobox.com>

	* src/window.c, src/window.h: store strut information,
	update it on property changes, etc. etc. so we avoid panel
	on maximize.

	* src/workspace.c (meta_workspace_get_work_area): add accessor for
	work area so we can compute it lazily

	* src/display.h, src/display.c: add _NET_WM_STRUT atom
	and _WIN_HINTS atom
2002-01-10 06:31:31 +00:00
Havoc Pennington
402c0b5036 add code to save ACLOCAL_FLAGS
2002-01-08  Havoc Pennington  <hp@pobox.com>

	* configure.in (ACLOCAL): add code to save ACLOCAL_FLAGS

	* src/frames.c (meta_frames_expose_event): max dither

	* src/testgradient.c (render_simple): change dither mode to MAX
	to avoid banding

	* src/theme.c: lose the gradient cache, and put in some initial
	data types for the theme format
2002-01-08 07:23:35 +00:00
Havoc Pennington
9ed27d3dcb make gradient a bit more subtle (don't go to the full background, but to a
2002-01-07  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_expose_event): make gradient a bit
	more subtle (don't go to the full background, but to a blend of
	selection and background; put lighter color on top)
2002-01-07 21:35:02 +00:00
Havoc Pennington
f36ba88085 put in attempted fix for the GTK 1.2 plug/socket screwup, now that my
2002-01-06  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_notify_focus): put in attempted fix
	for the GTK 1.2 plug/socket screwup, now that my fixed debug spew
	reveals what's actually happening. ;-)

	* src/gradient.c (meta_gradient_description_new): object
	to store gradient descriptions

	* src/window.c (meta_window_notify_focus): fix the debug spew
	that was confusing me

	* src/wm-tester/focus-window.c: add little program to focus
	a window ID
2002-01-07 03:26:09 +00:00
Havoc Pennington
ac85e1e225 change to use spiffy gradient code.
2002-01-06  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_theme_get_gradient): change to use spiffy
	gradient code.

	* src/gradient.c: copy lovely gradient code from WindowMaker,
	as usual Dan and Alfredo have very nice code
2002-01-06 17:52:21 +00:00
Havoc Pennington
8b680dfdd2 draw titlebar highlight with snazzy gradient that needs some tweaking to
2002-01-05  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_expose_event): draw titlebar highlight
	with snazzy gradient that needs some tweaking to be less
	dumb-looking

	* src/theme.c: replace old theme.[hc] contents with newer stuff
	that doesn't do anything
2002-01-06 04:51:53 +00:00
Havoc Pennington
3d1d70b727 GTK 1.2 plug/socket clients still broken, don't know why.
2002-01-05  Havoc Pennington  <hp@pobox.com>

        GTK 1.2 plug/socket clients still broken, don't know why.

	* src/screen.c (meta_screen_new): select focus change on root
	window, for debugging

	* src/display.c (event_callback): when unfocusing, use
	no_focus_window to hold the focus

	* src/display.h (struct _MetaDisplay): have a no_focus_window to
	hold the focus when we don't want to have anything focused.
	Then we can avoid confusing focusing-the-frame stuff.

	* src/window.c (meta_window_notify_focus): improve some debug spew
	(meta_window_notify_focus): add hack from WindowMaker to ignore
	focus in events with detail > NotifyNonlinearVirtual
2002-01-06 03:15:49 +00:00
Havoc Pennington
06ec2b948f don't lower docks when a grab causes them to get LeaveNotify
2002-01-04  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): don't lower docks when a grab
	causes them to get LeaveNotify
2002-01-04 22:46:37 +00:00
Havoc Pennington
60f48e44ff set event mask on root window to 0 so other window managers (such as
2002-01-04  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_free): set event mask on root window
	to 0 so other window managers (such as ourselves restarting) can
	start up; addresses race condition on restart where the old WM
	still had RedirectMask when the new WM was trying to start up.

	* src/display.c (meta_display_close): free each screen

	* src/window.c (meta_window_show): always focus new windows in
	click-to-focus mode
2002-01-04 22:18:10 +00:00
Havoc Pennington
501a60ab20 use meta_XFree not XFree
2002-01-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c: use meta_XFree not XFree

	* src/display.h (meta_XFree): add null-safe XFree

	* src/util.c (meta_warning): have message prefix indicate that
	it's a warning
	(meta_fatal): indicate it's an error

	* src/window.c (update_sm_hints): clean up using
	meta_prop_get_latin1_string
	(update_role): ditto
	(read_client_leader): clean up using meta_prop_get_window
	(update_net_wm_type): clean up using meta_prop_get_cardinal
	(update_initial_workspace): ditto
	(update_net_wm_type): clean up using meta_prop_get_atom_list
	(read_rgb_icon): get result from XGetWindowProperty return value
	not from error trap
	(update_kwm_icon): ditto
	(meta_window_new): fix to read WM_STATE correctly
2002-01-04 03:25:53 +00:00
Havoc Pennington
b9701454b8 clean up using meta_prop_get_atom_list (update_mwm_hints): clean up using
2002-01-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_net_wm_state): clean up using
	meta_prop_get_atom_list
	(update_mwm_hints): clean up using meta_prop_get_motif_hints

	* src/Makefile.am (metacity_SOURCES): add xprops.[hc]

	* src/xprops.c: new file with convenience functions for X
	properties
2002-01-04 00:58:39 +00:00
Havoc Pennington
ee1361fb6e focus top window when switching to a new workspace
2002-01-03  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_activate): focus top window when
	switching to a new workspace

	* src/util.c (meta_topic): start putting verbose output in
	categories

	* src/window.c (meta_window_shade): focus frame after we queue
	the calc_showing so the maps/unmaps have already happened.

	* src/display.c (meta_display_get_current_time): add the "get time
	of current event" function and call it occasionally.

	* src/window.c (meta_window_free): if we have focus, call
	meta_screen_focus_top_window().
	(meta_window_minimize): ditto
	(meta_window_delete): ditto

	* src/screen.c (meta_screen_ensure_tab_popup): fix memory leak -
	didn't free tab list
	(meta_screen_focus_top_window): new function to use when we unmap
	or unmanage a focused window

	* src/stack.c (meta_stack_get_default_focus_window): function used
	in meta_screen_focus_top_window
2002-01-03 23:28:19 +00:00
Havoc Pennington
86e9191d34 add a server grab here since we were failing to have one when calling the
2001-12-21  Havoc Pennington  <hp@redhat.com>

	* src/frame.c (meta_window_ensure_frame): add a server grab
	here since we were failing to have one when calling the function
2002-01-02 17:42:14 +00:00
Havoc Pennington
69dae32c37 Rework the click-client-area-to-focus support to use synchronous grabs,
2001-12-10  Havoc Pennington  <hp@pobox.com>

        Rework the click-client-area-to-focus support to use synchronous
	grabs, avoids a big mess, lets us pass through click when
	required (for dock/desktop). Disadvantage is all left-button
	clicks now require window manager approval. ;-)

	* src/display.c (event_callback): don't focus dock/desktop when
	the mouse enters them; require a click.
	(meta_change_button_grab): allow sync grabs
	(meta_display_grab_unfocused_window_buttons): establish a
	synchronous grab and maintain it all the time, rename to
	meta_display_grab_focus_window_button

	* src/window.c: change to reflect display.c
2001-12-11 04:03:58 +00:00
Havoc Pennington
ac7524508b oops, unbreak this _again_ - reported by Josh Barrow
2001-12-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_update_unfocused_button_grabs): oops,
	unbreak this _again_ - reported by Josh Barrow
2001-12-11 03:06:55 +00:00
Havoc Pennington
4af0425d72 don't allow grab on docks/desktop for now; needs fixing later to do the
2001-12-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_update_unfocused_button_grabs): don't
	allow grab on docks/desktop for now; needs fixing later to
	do the grab, but pass thru click, so we can focus those windows.
	And in fact we need to do that even in sloppy mode.
2001-12-10 16:15:45 +00:00
Havoc Pennington
fa803fd88f fix broken "tmp = tmp->data"
2001-12-10  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_foreach_window): fix broken
	"tmp = tmp->data"

	Implement do-not-pass-thru-click for click-to-focus mode.

	* src/screen.c (update_focus_mode): when focus mode changes,
	update all the window grabs

	* src/display.c (meta_display_grab_unfocused_window_buttons):
	implement grabbing button 1 on client area of unfocused
	click-to-focus windows

	* src/window.c (meta_window_update_unfocused_button_grabs): update
	whether we're grabbing unmodified button 1 on client area
	according to focus state and focus mode
	(meta_window_new): start out with proper grab state
2001-12-10 07:48:21 +00:00
Havoc Pennington
3fa131695b don't do mnemonics for workspaces above 9
2001-12-10  Havoc Pennington  <hp@pobox.com>

	* src/menu.c (meta_window_menu_new): don't do mnemonics for
	workspaces above 9
2001-12-10 06:56:21 +00:00
Havoc Pennington
7fa28277a1 oops, remove extra workspace creation, and update to current pref.
2001-12-10  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): oops, remove extra workspace
	creation, and update to current pref.
2001-12-10 05:47:33 +00:00
Havoc Pennington
041b33c450 update number of workspaces hint
2001-12-09  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_free): update number of
	workspaces hint

	* src/screen.c (update_num_workspaces): implement number of
	workspaces setting

	* src/window.c (meta_window_configure_request): honor configure
	requests on windows of type NORMAL, but still be mean to those of
	type DIALOG

	* src/main.c (main): add more log domains to those we set a log
	handler for, and only set warnings fatal in debug mode

	* src/metacity.schemas: add number of workspaces setting
2001-12-10 03:55:26 +00:00
Havoc Pennington
06a0c62f86 in click-to-focus mode don't focus on enter notify. Implement unfocusing
2001-12-09  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): in click-to-focus mode don't
	focus on enter notify. Implement unfocusing on LeaveNotify in
	mouse focus mode. Click to focus just ends up working if we
	do nothing on enter/leave, because of the way things already
	worked. Except I need to add some relatively complex hack to
	allow clicking on client area, right now you have to click
	on the frame.
2001-12-10 00:38:21 +00:00
Havoc Pennington
6981a8198b move SM init a bit later in the process, and init prefs
2001-12-09  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): move SM init a bit later in the process, and
	init prefs

	* src/session.c: fix no SM case (though I hardly know why I'm
	bothering)

	* src/main.c (main): call bindtextdomain

	* src/util.h (_): actually call gettext

	* configure.in: put in AM_GLIB_GNU_GETTEXT and gconf stuff

	* src/prefs.c: Preferences - this marks the beginning of our doom.
	None of them are actually implemented yet, but we monitor
	some stuff from gconf.
2001-12-09 22:41:12 +00:00
Havoc Pennington
b3778e4470 initial schemas file 2001-12-09 20:41:07 +00:00
Havoc Pennington
8c8d500495 when unminimizing an app, if we're in "show desktop" (all windows
2001-12-07  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_unminimize): when unminimizing an app,
	if we're in "show desktop" (all windows minimized) mode, leave
	show desktop mode. Will occasionally be a bit weird, but allows
	people to recover via task list if they accidentally do the show
	desktop thing, and don't know what's going on.
2001-12-07 06:33:30 +00:00
Havoc Pennington
e312daffd5 fix gdkatom/xatom screwup - gee, I should read my warnings
2001-12-06  Havoc Pennington  <hp@redhat.com>

	* src/ui.c (meta_text_property_to_utf8): fix gdkatom/xatom screwup
	- gee, I should read my warnings
2001-12-07 00:54:32 +00:00
Laszlo Peter
3f05f34286 add a dummy element to the enum so the signals array is not empty. (breaks
2001-12-03  Laszlo Peter  <laca@ireland.sun.com>

        * src/frames.c: add a dummy element to the enum so
          the signals array is not empty. (breaks the build with Forte C)

        * src/window.c: s/__FUNCTION__/G_GNUC_FUNCTION/
2001-12-03 15:22:57 +00:00
Havoc Pennington
248487a63c change so that window can be offscreen to the bottom or the right, as long
2001-11-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): change so that window can be
	offscreen to the bottom or the right, as long as a small top-left
	corner of the window remains onscreen. However, windows still
	can't go off the left or top.
2001-11-27 05:14:57 +00:00
Havoc Pennington
420c29dea9 add error trap
2001-11-26  Havoc Pennington  <hp@redhat.com>

        * src/window.c (window_query_root_pointer): add error trap
2001-11-27 03:41:43 +00:00
Laszlo Peter
6bae734d41 protect meta_verbose from a NULL pointer.
2001-11-02  Laszlo Peter  <laca@ireland.sun.com>

	* src/window.c (update_sm_hints): protect meta_verbose from
	a NULL pointer.
2001-11-02 14:55:00 +00:00
Havoc Pennington
ff5315d551 handle queue/unqueue of calc showings as we are iterating over the pending
2001-10-29  Havoc Pennington  <hp@pobox.com>

	* src/window.c (idle_calc_showing): handle queue/unqueue of
	calc showings as we are iterating over the pending list
	(meta_window_show): focus placed transients in here instead
	of in meta_window_place - now it should actually work, yay

	* src/place.c (meta_window_place): remove focusing of transient
	child from here; this was really broken
2001-10-30 02:00:53 +00:00
Havoc Pennington
3b9c81f390 note exciting new unminimize feature for the tab popup
2001-10-29  Havoc Pennington  <hp@pobox.com>

	* README: note exciting new unminimize feature for the tab popup

	* src/keybindings.c (process_tab_grab): use meta_window_activate()
	when choosing a window with tab popup, this should deiconify it

	* src/window.c (meta_window_client_message): use
	meta_window_activate for _NET_ACTIVE_WINDOW message
	(meta_window_activate): new function to raise/focus/unminimize
	(meta_window_flush_calc_showing): new function
	(meta_window_focus): force a calc showing on focus, so that we can
	focus the window if appropriate (it must be mapped)
2001-10-29 07:00:46 +00:00
Havoc Pennington
f663a511b3 fix for ignoring NumLock on Alt-windowclick (previous NumLock fix was only
2001-10-26  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_grab_window_buttons): fix for
	ignoring NumLock on Alt-windowclick (previous NumLock fix
	was only for key grabs not button grabs)
2001-10-26 04:00:38 +00:00
Havoc Pennington
3e92e3b1df set the current workspace hint
2001-10-25  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): set the current workspace hint
2001-10-26 03:54:55 +00:00
Havoc Pennington
d080f816b6 I was using meta_workspace_contains_window() in a number of places where
2001-10-25  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_visible_on_workspace):
	I was using meta_workspace_contains_window() in a number of
	places where on_all_workspaces should also have been considered,
	thus this new function. Fixes bugs such as pinned windows
	not appearing in the tab order.
	(meta_window_client_message): use meta_window_visible_on_workspace

	* src/stack.c (find_tab_forward): ditto
	(find_tab_backward): ditto
	(meta_stack_get_tab_next): ditto
	(meta_stack_get_tab_list): ditto

	* src/place.c (get_windows_on_same_workspace): ditto

	* src/keybindings.c (handle_focus_previous): ditto
	(handle_focus_previous): ditto
2001-10-25 04:51:25 +00:00
Havoc Pennington
bacc9c0afc use bg/fg not base/text for the window title area.
2001-10-24  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_expose_event): use bg/fg not base/text
	for the window title area.
2001-10-25 03:08:48 +00:00
Havoc Pennington
2af36b1e56 support initial on-all-workspaces setting
2001-10-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): support initial
	on-all-workspaces setting
2001-10-25 01:39:36 +00:00
Havoc Pennington
7069fc9b50 fix to keep desktop window from appearing on top of everything else, among
2001-10-22  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_sync_to_server): fix to keep desktop
	window from appearing on top of everything else, among other stack
	bugs. Untested.
2001-10-23 00:55:29 +00:00
Havoc Pennington
01a5b5762d use queried attributes to check whether window should be initially
2001-10-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): use queried attributes to check
	whether window should be initially maximized, rather than window
	rect
2001-10-15 04:39:05 +00:00
Havoc Pennington
1c1f4d7c93 add a restart feature, for debugging
2001-10-15  Havoc Pennington  <hp@pobox.com>

	* src/main.c (meta_restart): add a restart feature, for debugging

	* src/tools/metacity-restart.c: little utility program to trigger
	the restart
2001-10-15 04:14:58 +00:00
Havoc Pennington
a29c93a95a raise/focus windows on left-click, seem to have broken that yesterday
2001-10-14  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_button_press_event): raise/focus
	windows on left-click, seem to have broken that yesterday

	* src/keybindings.c, src/display.c, src/window.c: add keybinding
	to show/hide all normal windows (so you can see the desktop).
	Currently Ctrl+Alt+D, which I don't like, but yay.
2001-10-15 03:39:41 +00:00
Havoc Pennington
842eb3fa93 take a window mapped at fullscreen size/pos to desire maximization; once I
2001-10-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): take a window mapped at
	fullscreen size/pos to desire maximization; once I add a
	fullscreen state, will change to copy kwin and take this mapping
	as a desire for fullscreen, but for now testing with maximization.

	* src/window.h: remove fullscreen window type, now proposing it
	as a window state instead.

2001-10-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_maximize): always raise windows on
	maximize
	(meta_window_client_message): when activating a window, move
	it to current workspace, instead of moving user to the
	window's workspace.
2001-10-14 22:13:53 +00:00
Havoc Pennington
282b52d6b7 only handle events here if the modmask from our button grab is active.
2001-10-14  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): only handle events here if
	the modmask from our button grab is active. i.e. only the
	Alt-click is handled here.

	* src/frames.c: add check for whether button presses are in the
	frame client area before handling them, so we don't weirdly let
	you move a frame by clicking in its client area if the client
	hasn't selected button press events.
2001-10-14 04:11:42 +00:00
Havoc Pennington
9c8824542e set last window before setting newp, so we don't get the current window as
2001-10-13  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_sync_to_server): set last window before
	setting newp, so we don't get the current window as the last
	window and screw everything up
	(IN_TAB_CHAIN): use type not layer to decide if a window is
	in the tab chain, keeps panel out of alt-tab choices
2001-10-13 04:42:28 +00:00
Havoc Pennington
e8bc8e95e2 add bad hack to work with GTK 1.3.9.90 RPMs from gnomehide for now
2001-10-13  Havoc Pennington  <hp@redhat.com>

	* configure.in: add bad hack to work with GTK 1.3.9.90 RPMs from
	gnomehide for now

	* src/ui.c: another piece of bad hack in here
2001-10-13 04:15:25 +00:00
Havoc Pennington
ec4edcb78c hmm, fix build
2001-10-13  Havoc Pennington  <hp@pobox.com>

	* src/session.c (meta_session_init): hmm, fix build
2001-10-13 04:02:59 +00:00
Havoc Pennington
94c3b02eef makefile tweak, add a comment to frame.c 2001-10-13 04:00:08 +00:00
Havoc Pennington
f83ac8476c set the session manager priority so we start up before other apps.
2001-10-12  Havoc Pennington  <hp@pobox.com>

	* src/session.c (meta_session_init): set the session manager
	priority so we start up before other apps.
2001-10-12 04:52:53 +00:00
Mikael Hallendal
4edccc4eb5 use gdk_pixbuf_new_from_inline (meta_ui_get_default_mini_icon): use
2001-10-12  Mikael Hallendal  <micke@codefactory.se>

	* src/ui.c (meta_ui_get_default_window_icon): use
	gdk_pixbuf_new_from_inline
	(meta_ui_get_default_mini_icon): use
	gdk_pixbuf_new_from_inline
2001-10-12 00:20:02 +00:00
Havoc Pennington
e55ead0419 fix mem leak of the MetaStack object (meta_stack_sync_to_server): try to
2001-10-10  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_free): fix mem leak of the MetaStack
	object
	(meta_stack_sync_to_server): try to avoid the restack-flicker
	thing
2001-10-11 01:29:20 +00:00
Havoc Pennington
f22b9dfd94 set _NET_ACTIVE_WINDOW hint
2001-10-07  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_update_active_window_hint):
	set _NET_ACTIVE_WINDOW hint

	* src/window.c (meta_window_client_message): support
	_NET_ACTIVE_WINDOW client message
2001-10-07 23:06:19 +00:00
Havoc Pennington
ec4dfd0cbc don't allow shade/maximize/minimize for windows that don't support those
2001-10-07  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_client_message): don't allow
	shade/maximize/minimize for windows that don't support those
	operations. (minimizing the panel = bad)
2001-10-07 22:11:13 +00:00
Havoc Pennington
350ecb1dcf add code to grab all modifier combinations, so keybindings work with
2001-10-04  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (meta_change_keygrab): add code to grab all
	modifier combinations, so keybindings work with NumLock etc.

	* src/menu.c (meta_window_menu_new): remove newlines from menu
	items

2001-09-27  Havoc Pennington  <hp@pobox.com>

	* src/session.c (save_state): when encoding text for session file,
	escape XML entities
2001-10-05 02:58:48 +00:00
Alex Graveley
38a878171a Add inlinepixbufs.h so that it gets generated.
2001-09-21  Alex Graveley  <alex@ximian.com>

	* src/Makefile.am (metacity_SOURCES): Add inlinepixbufs.h so
	that it gets generated.

	* src/frames.c (meta_frames_style_set): Update for new opaque
	PangoFontMetrics.
2001-09-21 19:20:56 +00:00
Havoc Pennington
dad1b107f5 add hackaround for the warning about gtk-menu-bar-accel
2001-09-17  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): add hackaround for the warning about
	gtk-menu-bar-accel
2001-09-18 03:40:03 +00:00
Havoc Pennington
582a80f518 ref the returned icon, oops.
2001-09-17  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_get_default_mini_icon):
	(meta_ui_get_default_window_icon): ref the returned icon, oops.

	* src/main.c (main): get the GLib warning/error output into
	the metacity logfile, set warnings to be always fatal

	* configure.in: bump version to 2.3.13

	* src/window.c (get_text_property): hrm, fix bug where we didn't
	check errors on XGetTextProperty
2001-09-17 05:50:02 +00:00
Havoc Pennington
0a1f2b3a47 fix srcdir != builddir glitch
2001-09-17  Havoc Pennington  <hp@pobox.com>

	* src/Makefile.am (VARIABLES): fix srcdir != builddir glitch
2001-09-17 04:45:13 +00:00
Havoc Pennington
4c104e1cb7 use the inline image data for default icon
2001-09-17  Havoc Pennington  <hp@pobox.com>

	* src/ui.c: use the inline image data for default icon

	* src/common.h (META_MINI_ICON_HEIGHT): move icon size defines
	here

	* src/Makefile.am: Create an inlinepixbufs.h header with inline
	images
2001-09-17 04:42:37 +00:00
Havoc Pennington
ecf75915c7 disconnect this callback on error
2001-09-16  Havoc Pennington  <hp@pobox.com>

	* src/session.c (process_ice_messages): disconnect this callback
	on error
2001-09-17 04:11:25 +00:00
Havoc Pennington
7be4c63ee4 new function
2001-09-16  Havoc Pennington  <hp@pobox.com>

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

	* configure.in: bump version to 2.3.8

	* src/display.c (event_callback): raise dock on enter notify,
	lower it on leave notify (need to refine this behavior)

	* src/stack.c (compute_layer): experiment with putting the panel
	in the normal layer, and raising it on mouseover
2001-09-16 21:50:27 +00:00
Havoc Pennington
b09a781a80 remove msm from here, now in its own module 2001-09-16 20:43:45 +00:00
Havoc Pennington
52dc32031d ... 2001-09-16 03:47:05 +00:00
Havoc Pennington
a926a4a0ca ... 2001-09-16 02:52:23 +00:00
Havoc Pennington
39df21227d add support for a mini icon in the titlebar (update_icon): re-enable
2001-09-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c: add support for a mini icon in the titlebar
	(update_icon): re-enable support for _NET_WM_ICON

	* src/session.c (save_state): add an ferror check when writing
	session file
2001-09-16 00:30:45 +00:00
Havoc Pennington
2830c9d748 ... 2001-09-15 02:37:02 +00:00
Havoc Pennington
3886f0ecac ... 2001-09-14 14:25:24 +00:00
Havoc Pennington
b1c7811e89 ... 2001-09-14 06:30:50 +00:00
Havoc Pennington
1385d192c5 stuff 2001-09-13 05:00:50 +00:00
Havoc Pennington
82aa7363f9 still does not work. 2001-09-13 04:50:18 +00:00
Havoc Pennington
a4346200e8 does not work. 2001-09-12 06:06:08 +00:00
Havoc Pennington
9f66f63bf5 fix up handling of text properties, so we get UTF8_STRING as that type and
2001-09-11  Havoc Pennington  <hp@pobox.com>

	* src/window.c: fix up handling of text properties, so we
	get UTF8_STRING as that type and not as text list, and so
	we properly convert from text list to UTF-8
2001-09-11 04:37:10 +00:00
Havoc Pennington
3645fef5e0 icon for unmaximize
2001-09-10  Havoc Pennington  <hp@pobox.com>

	* src/menu.c (meta_window_menu_new): icon for unmaximize

	* src/ui.c (meta_ui_init): fix call to XDisplayName

	* src/util.c: add missing header

	* src/frames.c: draw an unmaximize control if already maximized
2001-09-11 03:54:54 +00:00
Havoc Pennington
f386494ba4 Don't separate user_has_moved/user_has_resized, fixes bug in east-resizing
2001-09-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c: Don't separate user_has_moved/user_has_resized,
	fixes bug in east-resizing Emacs, among other things

	* src/frame.c (meta_frame_sync_to_window): return immediately if
	nothing to do

	* src/util.c (ensure_logfile): replace rather than truncate old
	logfiles
2001-09-11 02:57:05 +00:00
Havoc Pennington
936adc6ea5 don't use gdk_display_name
2001-09-08  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): don't use gdk_display_name

	* src/frame.c (meta_window_ensure_frame): create frame
	with screen default visual, rather than client window visual;
	for DRI games, the client window visual was not allowed to be
	a child of another window with the same visual, apparently.
	Anyhow now we copy twm, etc. so it must be correct.

	* src/place.c (meta_window_place): if a transient is placed and
	its parent has focus, focus the transient.
2001-09-09 03:44:42 +00:00
Havoc Pennington
1c6c7350e1 make test apps noinst
2001-09-04  Havoc Pennington  <hp@pobox.com>

	* src/wm-tester/Makefile.am (noinst_PROGRAMS): make test apps
	noinst

	* src/metacity.desktop: for the capplet

	* src/Makefile.am: add .desktop file
2001-09-05 03:57:45 +00:00
Havoc Pennington
2a0a5dfdf8 clean up the code, and replace GDK X error handler with one that chains up
2001-09-01  Havoc Pennington  <hp@pobox.com>

	* src/errors.c: clean up the code, and replace GDK X error handler
	with one that chains up to GDK but first logs the error to logfile.
2001-09-01 05:53:07 +00:00
Havoc Pennington
501dd26713 fix args to gtk_alignment_new()
2001-08-31  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c (meta_ui_tab_popup_new): fix args to
	gtk_alignment_new()
2001-08-31 06:13:07 +00:00
Havoc Pennington
3e1c68b88a avoid focusing a window on tab popup popdown
2001-08-29  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): avoid focusing a window on tab
	popup popdown

	* src/screen.c (meta_screen_ensure_tab_popup): compute frame
	outline size here
2001-08-30 04:01:38 +00:00
Havoc Pennington
6d31d4756e Switch back to outline.
2001-08-29  Havoc Pennington  <hp@redhat.com>

	* src/tabpopup.c: Switch back to outline.
2001-08-29 16:38:57 +00:00
Havoc Pennington
bea9d1f679 experiment with window-cover-with-icon instead of just the outline; can't
2001-08-29  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c: experiment with window-cover-with-icon
	instead of just the outline; can't decide.
2001-08-29 05:07:39 +00:00
Havoc Pennington
4abbd4b1e5 add crackrock window-outlining feature
2001-08-29  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c: add crackrock window-outlining feature

	* src/session.c (window_type_to_string): handle fullscreen
2001-08-29 04:53:48 +00:00
Havoc Pennington
27c81cad33 wrong atom name - _NET_SUPPORTED not _NET_WM_SUPPORTED
2001-08-29  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): wrong atom name -
	_NET_SUPPORTED not _NET_WM_SUPPORTED

	* src/window.c (meta_window_configure_request): geez, why were we
	honoring configure requests for width/height for normal windows.
	Denied!
	(meta_window_client_message): _NET_WM_MOVERESIZE support, sort of
	(doesn't quite work, acts like owner_events = true?)

	* src/display.c: add _NET_WM_MOVERESIZE atom
2001-08-29 04:16:30 +00:00
Havoc Pennington
db0a7e2978 Unbreak tab popup a bit.
2001-08-28  Havoc Pennington  <hp@pobox.com>

        Unbreak tab popup a bit.

	* src/stack.c (meta_stack_get_tab_list): add workspace argument
	(meta_stack_get_tab_next): add workspace argument

	* src/window.c: implement recording of the last user-initiated
	window position, so we can magically handle moving panels around
	really nicely.

	* src/wm-tester/main.c (set_up_icon_windows): fix to use new GTK
	API
2001-08-29 03:37:03 +00:00
Havoc Pennington
4d2f018ddb force fullscreen windows to be at 0,0
2001-08-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): force fullscreen windows to
	be at 0,0

	* src/ui.c: use NULL colormap to get bitmaps, requires
	very latest GTK from CVS or it will spew warnings
	and not work.

	* src/window.c (constrain_size): disallow larger than screen in
	all cases, even if user has performed a resize operation.
	(constrain_position): keep window boxed onscreen.

	* src/keybindings.c (meta_display_process_key_event): revert an
	earlier change that disabled global keybindings when a grab is in
	effect; instead, only disable global keybindings if a _keyboard_
	grab is in effect. The earlier change was just a broken
	workaround, the problems it fixed should have been solved by the
	addition of XGrabKeyboard() on the metacity keyboard grabs.

	This should fix the problem with
	pick-up-window-and-move-to-another-desktop.
2001-08-26 02:09:53 +00:00
Havoc Pennington
5eb43d34ff attempt to use the mask as well as the pixmap. Probably doesn't work so
2001-08-23  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_icon): attempt to use the mask as well as
	the pixmap. Probably doesn't work so well.

	* src/tabpopup.c: make this look a little nicer
2001-08-24 00:32:17 +00:00
Havoc Pennington
ddfffe270f make this look a little nicer
2001-08-22  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c: make this look a little nicer
2001-08-23 03:24:51 +00:00
Havoc Pennington
cebbafdd22 put in a FIXME 2001-08-22 22:12:44 +00:00
Havoc Pennington
46082f8c71 all the MWM flag tests were backward
2001-08-22  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_mwm_hints): all the MWM flag tests were
	backward
2001-08-22 06:53:33 +00:00
Havoc Pennington
e51c12d1cd half-ass implementation of getting pixmap icons (WM_NORMAL_HINTS and
2001-08-22  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_icon): half-ass implementation of
	getting pixmap icons (WM_NORMAL_HINTS and KWM_WIN_ICON).
	Ignores mask for now, with possibly ugly results for
	some apps.
	(read_rgb_icon): fixage
2001-08-22 06:01:01 +00:00
Havoc Pennington
f562e65d5f add a "fullscreen" semantic type; if a window requests the screen size
2001-08-19  Havoc Pennington  <hp@pobox.com>

	* src/window.c: add a "fullscreen" semantic type; if a window
	requests the screen size exactly, and is undecorated, and is not a
	desktop window, we consider it a fullscreen window and keep it on
	top.

	Totally untested.
2001-08-20 03:17:40 +00:00
Havoc Pennington
04e09d4c56 we support _NET_WM_ICON
2001-08-19  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (set_supported_hint): we support _NET_WM_ICON

	* src/wm-tester/main.c: add stuff to test _NET_WM_ICON
	(but it doesn't work, so it isn't tested yet)

	* src/window.c (update_icon): read _NET_WM_ICON

	* src/screen.c (meta_screen_new): set the WM_ICON_SIZE hint

	* src/tabpopup.c (meta_ui_tab_popup_select): remove assertion

	* src/window.c (meta_window_get_icon_geometry): fix obscure
	memleak
2001-08-20 01:42:44 +00:00
Havoc Pennington
b2444df787 remove XSync, error traps already do that
2001-08-19  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_grab_window_buttons): remove XSync,
	error traps already do that
	(meta_display_grab_window_buttons): implement

	* src/keybindings.c:
	src/display.c: wire up the tab window, it rulez!
2001-08-19 18:09:10 +00:00
Havoc Pennington
f70993be97 add prototype thingy to display windows we're cycling through with tab.
2001-08-19  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c: add prototype thingy to display windows we're
	cycling through with tab. Not wired up to keybindings yet.
2001-08-19 06:23:59 +00:00
Havoc Pennington
92a965b979 Make a half-hearted not-very-tested attempt to handle window resizes
2001-08-18  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request):
	(meta_window_move_resize_internal): Make a half-hearted
	not-very-tested attempt to handle window resizes correctly with
	respect to window gravity.
2001-08-19 02:45:55 +00:00
Havoc Pennington
922749e5b3 hrm, I fixed this wrong the other day. Fixes static gravity when moving
2001-08-18  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_get_gravity_position): hrm, I fixed
	this wrong the other day. Fixes static gravity when moving
	windows.
2001-08-19 02:29:38 +00:00
Havoc Pennington
9acaa50f59 oops, accidentally turned on opaque iconify 2001-08-19 02:00:26 +00:00
Havoc Pennington
60f531af35 also set the current size. Lame hack of the day.
2001-08-18  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_image_window_set_position): also set the current
	size. Lame hack of the day.

	* src/effects.c (effects_draw_box_animation_timeout): use the
	delay exposes feature to avoid the scren dirt

	* src/ui.c
	(meta_ui_push_delay_exposes):
	(meta_ui_pop_delay_exposes): feature to let us delay redraws until
	after we do server-grabbed draw-on-inferiors effects
2001-08-19 01:58:00 +00:00
Havoc Pennington
246ac5e578 use the delay exposes feature to avoid the scren dirt
2001-08-18  Havoc Pennington  <hp@pobox.com>

	* src/effects.c (effects_draw_box_animation_timeout): use the
	delay exposes feature to avoid the scren dirt

	* src/ui.c (meta_image_window_set_position): use gtk_window_move()
	to set the position
	(meta_ui_push_delay_exposes):
	(meta_ui_pop_delay_exposes): feature to let us delay redraws until
	after we do server-grabbed draw-on-inferiors effects
2001-08-19 01:19:54 +00:00
Havoc Pennington
505282697a fix for StaticGravity
2001-08-17  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_get_gravity_position): fix for
	StaticGravity
2001-08-17 22:44:36 +00:00
Havoc Pennington
6768aefb9d Honor USPosition even post-map. I know I'll regret this.
2001-08-09  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): Honor USPosition
	even post-map. I know I'll regret this.
2001-08-10 03:32:45 +00:00
Havoc Pennington
fc8db63716 set _NET_WM_NAME hint as a UTF8_STRING not STRING. Patch from Anders.
2001-08-07 Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): set _NET_WM_NAME
	hint as a UTF8_STRING not STRING. Patch from Anders.
2001-08-07 05:52:51 +00:00
Havoc Pennington
d6bf2f5e80 disable opaque animations by default, current implementation suXors.
2001-08-06  Havoc Pennington  <hp@redhat.com>

	* src/effects.c: disable opaque animations by default, current
	implementation suXors.
2001-08-06 18:28:51 +00:00
Havoc Pennington
8c7b04edb9 Get start time after we do the pixbuf from drawable, so we don't count
2001-08-06  Havoc Pennington  <hp@pobox.com>

	* src/effects.c (meta_effects_draw_box_animation): Get start
	time after we do the pixbuf from drawable, so we don't count
	time spent getting pixbuf from drawable in the animation time.
2001-08-06 08:03:48 +00:00
Havoc Pennington
11b14d327f add opaque minimize/shade feature. The wireframe seemed kind of confusing
2001-08-06  Havoc Pennington  <hp@pobox.com>

	* src/effects.c: add opaque minimize/shade feature.  The wireframe
	seemed kind of confusing and unclear from a UI standpoint.
	I know, I know. The bloat begins here.

	Also, we don't need to grab the server during opaque min/shade,
	which has some nice implications.

	* src/ui.c: Add features to render a window with an image in it,
	and also wrap pixbuf_from_drawable

	* src/effects.c (meta_effects_draw_box_animation):
	modify to be smoother (at least theoretically) by
	syncing to current time and "dropping frames"
	as appropriate.

	* src/window.c (meta_window_shade): draw animation
	for shading too
2001-08-06 07:58:49 +00:00
Havoc Pennington
d8561cb4c3 modify to be smoother (at least theoretically) by syncing to current time
2001-08-06  Havoc Pennington  <hp@pobox.com>

	* src/effects.c (meta_effects_draw_box_animation):
	modify to be smoother (at least theoretically) by
	syncing to current time and "dropping frames"
	as appropriate. A precursor to flashier animations
	that take more CPU to do.

	* src/window.c (meta_window_shade): draw animation
	for shading too
2001-08-06 05:12:22 +00:00
Havoc Pennington
47ce823aa5 draw animation for shading too
2001-08-06  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_shade): draw animation
	for shading too
2001-08-06 04:43:31 +00:00
Anders Carlsson
971419c880 Add _NET_WM_ICON_GEOMETRY atom.
2001-08-05  Anders Carlsson  <andersca@gnu.org>

	* src/display.h, src/display.c: Add _NET_WM_ICON_GEOMETRY atom.

	* src/window.c (meta_window_calc_showing): See if the window has
	an icon geometry and show a morphing animation from the window's
	coordinates to the icon's coordinates.
	(meta_window_get_icon_geometry): New function that fetches a
	window's icon geometry.

	* src/Makefile.am: Add effects.[ch].

        * src/effects.c: New file with cool effects.
2001-08-05 16:04:52 +00:00
Havoc Pennington
0ee26a5168 Add Alt + left/right arrow to move between workspaces.
2001-08-03  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: Add Alt + left/right arrow to
	move between workspaces.

	* src/screen.c (set_wm_check_hint): put property pointing back to
	itself on the _WIN_SUPPORTING_WM_CHECK window.
2001-08-03 13:56:39 +00:00
Havoc Pennington
204cf63805 push error trap around configure of withdrawn window, fixes a crash caused
2001-08-03  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): push error trap around configure
	of withdrawn window, fixes a crash caused by rapidly
	creating/destroying a window.

	* src/window.c (recalc_window_features): don't allow shading
	undecorated windows.

	* src/wm-tester/main.c: add a program to torture window managers.
2001-08-03 04:20:27 +00:00
rhp
1f1e706aae ... 2001-07-31 03:59:55 +00:00
rhp
b1d438922a ... 2001-07-28 06:35:19 +00:00
rhp
46d224f5ae ... 2001-07-28 06:11:15 +00:00
rhp
b88cece213 ... 2001-07-27 04:36:44 +00:00
rhp
b6d07e70a4 ... 2001-07-27 04:22:18 +00:00
rhp
5c2ac489f1 ... 2001-07-26 05:10:01 +00:00
rhp
c18a8137ce ... 2001-07-26 03:58:24 +00:00
rhp
b6e4c8bc41 ... 2001-07-26 03:14:45 +00:00
rhp
46edcc4832 ... 2001-07-26 02:55:35 +00:00
rhp
93b7bd2c81 ... 2001-07-12 05:53:56 +00:00
rhp
71d3333d4d ... 2001-07-11 06:22:00 +00:00
rhp
8a2841a8ab ... 2001-07-07 18:43:19 +00:00
rhp
944d730cd1 ... 2001-07-07 18:36:50 +00:00
rhp
8ae357db8a ... 2001-07-07 17:08:42 +00:00
rhp
fad52ff90c ... 2001-07-07 16:50:01 +00:00
rhp
482640b831 ... 2001-07-05 05:22:00 +00:00
rhp
90829a15cc ... 2001-07-05 05:10:00 +00:00
rhp
73b7323d84 ... 2001-07-04 04:33:31 +00:00
rhp
ec00c9852d ... 2001-07-04 02:10:54 +00:00
rhp
3650c23055 ... 2001-07-03 18:37:18 +00:00
rhp
7d79a37c9d ... 2001-07-03 01:45:43 +00:00
rhp
43f807c5e1 ... 2001-06-30 23:17:52 +00:00
rhp
ed2af7d22f ... 2001-06-29 15:33:21 +00:00
rhp
4b2fbbb2f6 ... 2001-06-24 16:37:18 +00:00
rhp
bca589280c ... 2001-06-24 08:09:10 +00:00
rhp
8025ecea02 ... 2001-06-24 06:47:54 +00:00
rhp
1b3a58c951 ... 2001-06-24 03:41:44 +00:00
rhp
beaac99991 ... 2001-06-24 03:18:10 +00:00
rhp
41a817f11a ... 2001-06-24 02:22:10 +00:00
rhp
f3d61bf7b0 ... 2001-06-23 18:30:27 +00:00
rhp
f9c2652e0d ... 2001-06-23 06:54:28 +00:00
rhp
c1251f5d9c ... 2001-06-23 06:50:37 +00:00
rhp
bf64e719a1 ... 2001-06-23 05:49:35 +00:00
rhp
7ecf21af70 ... 2001-06-23 05:26:28 +00:00
rhp
043b048c55 ... 2001-06-22 06:21:44 +00:00
rhp
67d9ca1d9f ... 2001-06-22 03:20:21 +00:00
rhp
9e9ffdca42 ... 2001-06-21 06:08:35 +00:00
rhp
5611d75a11 ... 2001-06-21 05:23:24 +00:00
rhp
f845819c1d ... 2001-06-21 03:40:14 +00:00
rhp
12f01149dd ... 2001-06-20 05:47:44 +00:00
rhp
5fee634121 ... 2001-06-20 04:29:28 +00:00
rhp
ca69bef032 ... 2001-06-20 03:01:26 +00:00
rhp
5fd26a273d ... 2001-06-18 06:11:53 +00:00
rhp
d090d9f284 ... 2001-06-18 03:24:25 +00:00
rhp
59513231a5 ... 2001-06-17 19:53:45 +00:00
rhp
e84267ed3c ... 2001-06-15 04:33:21 +00:00
rhp
ed4225fd52 ... 2001-06-13 05:29:14 +00:00
rhp
d5914732d2 ... 2001-06-13 04:58:55 +00:00
rhp
e188d3c4f6 ... 2001-06-13 00:56:08 +00:00
rhp
29c0947f3c ... 2001-06-12 04:38:24 +00:00
rhp
073a5d4ea9 ... 2001-06-11 06:39:12 +00:00
rhp
99f53856f6 ... 2001-06-11 05:47:51 +00:00
rhp
d46d6830b5 ... 2001-06-11 05:16:24 +00:00
rhp
9cb0dc3d65 ... 2001-06-11 03:24:20 +00:00
rhp
f14221e842 ... 2001-06-10 19:23:28 +00:00
rhp
b46ab7cab3 ... 2001-06-10 18:46:46 +00:00
rhp
2f29ba4f39 ... 2001-06-10 07:52:35 +00:00
rhp
7f55a13291 ... 2001-06-10 07:27:11 +00:00
rhp
b5e506ce9d ... 2001-06-10 03:17:15 +00:00
rhp
146361b6f5 ... 2001-06-09 21:58:30 +00:00
rhp
c533bc838e ... 2001-06-09 06:08:44 +00:00
rhp
d0f6283cf5 workspace menu 2001-06-09 05:14:43 +00:00
rhp
6631763c96 ... 2001-06-08 06:39:38 +00:00
rhp
a6b2edc467 ... 2001-06-08 02:17:48 +00:00
rhp
0feac37c5b ... 2001-06-07 05:18:10 +00:00
rhp
834452ca2c ... 2001-06-07 02:42:24 +00:00
rhp
0f5fdeb1b1 ... 2001-06-06 04:47:37 +00:00
rhp
ad6efc61b5 ... 2001-06-04 06:17:52 +00:00
rhp
1cd2915ba3 ... 2001-06-04 04:58:22 +00:00
rhp
c506b48624 ... 2001-06-03 21:39:57 +00:00
rhp
4ae250ae97 ... 2001-06-03 18:33:59 +00:00
rhp
11fde3a11a ... 2001-06-03 07:41:36 +00:00
rhp
c82a582a94 .. 2001-06-03 05:39:43 +00:00
rhp
ce7c53bf1a ... 2001-06-03 01:33:27 +00:00
rhp
e47c4d16a2 ... 2001-06-02 04:14:18 +00:00
rhp
31d6e2dca0 ... 2001-06-01 03:00:01 +00:00
rhp
85bd843b01 ... 2001-05-31 16:18:40 +00:00
rhp
ebb2b489b0 ... 2001-05-31 06:42:58 +00:00
rhp
1785975f38 ... 2001-05-31 03:30:58 +00:00
rhp
287b6b15d3 ... 2001-05-30 15:36:31 +00:00