mutter/src/core
Owen W. Taylor 6726fcd25d Simplify relationship between mapping and visibility
Previously, changes to the visibility of a window could be indicated
by meta_compositor_map_window(), meta_compositor_unminimize_window(),
meta_compositor_set_window_hidden(), etc, with the exact behavior
depending on the 'live_hidden_windows' preference.

Simplify this so that visibility is controlled by:

 meta_compositor_show_window()
 meta_compositor_hide_window()

With an 'effect' parameter provided to indicate the appropriate
effect (CREATE/UNMINIMIZE/MINIMIZE/DESTROY/NONE.)

The map state of the window is signalled separately by:

 meta_compositor_map_window()
 meta_compositor_unmap_window()

And is used only to control resource handling.

Other changes:

 * The desired effect on show/hide is explicitly stored in
   MetaWindow, avoiding the need for the was_minimized flag.
   At idle, once we calculate the window state, we pass the
   effect to the compositor if it matches the new window
   state, and then clear the effect to start over for future
   map state changes.

 * meta_compositor_switch_workspace() is called before any windows
   are hidden or shown, allowing the compositor to avoid hiding
   or showing an effect for windows involved in the switch.
   http://bugzilla.gnome.org/show_bug.cgi?id=582341

 * Handling of post-effect cleanups for MutterWindow are
   simplified - instead of trying to do different things based
   on the individual needs of different effects, we just wait until
   all effects complete and sync the window state to what it
   should be.

 * On unmap, once we destroy the pixmap, we tell ClutterX11Pixmap
   that we've done so, so it can clean up and unbind. (The
   unbinding doesn't seem to be working properly because of
   ClutterGLXPixmap or video driver issues.)

http://bugzilla.gnome.org/show_bug.cgi?id=587251
2009-07-06 00:16:23 +01:00
..
alttabhandler.c Create a MetaAltTabHandler abstraction to allow alternate implementations 2009-05-04 10:25:58 -04:00
alttabhandlerdefault.c Create a MetaAltTabHandler abstraction to allow alternate implementations 2009-05-04 10:25:58 -04:00
async-getprop.c gnome-doc-tools version doesn't need to be so high. disable the entire 2008-12-01 22:54:57 +00:00
async-getprop.h gnome-doc-tools version doesn't need to be so high. disable the entire 2008-12-01 22:54:57 +00:00
bell.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
bell.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
boxes.c Cleanup: split MetaSide from MetaDirection 2009-03-17 16:53:01 -04:00
constraints.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
constraints.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
core.c meta_display_list_windows: Exclude override-redirect 2009-06-29 22:51:32 -04:00
delete.c meta_display_list_windows: Exclude override-redirect 2009-06-29 22:51:32 -04:00
display-private.h Remove wireframe mode and old effects framework 2009-06-30 09:35:12 -04:00
display.c Remove wireframe mode and old effects framework 2009-06-30 09:35:12 -04:00
edge-resistance.c Remove wireframe mode and old effects framework 2009-06-30 09:35:12 -04:00
edge-resistance.h src/include/frame.h src/include/display.h src/include/xprops.h 2008-05-19 00:00:09 +00:00
errors.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
eventqueue.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
eventqueue.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
frame-private.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
frame.c There can be only one compositor engine 2009-06-30 09:34:03 -04:00
group-private.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
group-props.c Added curly brackets in two places to keep -pedantic happy. 2008-05-04 17:57:11 +00:00
group-props.h Exposed MetaGroup API. 2009-01-15 15:37:48 +00:00
group.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
iconcache.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
iconcache.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
keybindings-private.h Expose keybindings data types; add user_data parameter the handler signature. 2009-01-29 14:53:03 +00:00
keybindings.c Remove wireframe mode and old effects framework 2009-06-30 09:35:12 -04:00
main.c There can be only one compositor engine 2009-06-30 09:34:03 -04:00
mutter-Xatomtype.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
place.c meta_display_list_windows: Exclude override-redirect 2009-06-29 22:51:32 -04:00
place.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
prefs.c Remove wireframe mode and old effects framework 2009-06-30 09:35:12 -04:00
screen-private.h Emit signals when workspaces are added, removed or switched 2009-07-04 10:57:52 +02:00
screen.c Simplify relationship between mapping and visibility 2009-07-06 00:16:23 +01:00
session.c meta_display_list_windows: Exclude override-redirect 2009-06-29 22:51:32 -04:00
session.h Adding doxygen headers to some files. 2008-08-18 10:25:17 +00:00
stack-tracker.c Remove MetaCompositor virtualization 2009-06-30 09:34:45 -04:00
stack-tracker.h Move compositor-stack handling to MetaStackTracker 2009-06-29 23:05:11 -04:00
stack.c Don't move hidden windows to the desktop layer 2009-07-05 23:57:06 +01:00
stack.h Add a MetaScreen:restacked signal and expose MetaWindow.layer 2009-03-12 17:07:27 -04:00
testasyncgetprop.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
testboxes.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
util.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
window-private.h Simplify relationship between mapping and visibility 2009-07-06 00:16:23 +01:00
window-props.c Don't do stacking for override-redirect windows 2009-06-29 23:05:11 -04:00
window-props.h Don't read most properties for override-redirect windows 2009-06-29 22:32:19 -04:00
window.c Simplify relationship between mapping and visibility 2009-07-06 00:16:23 +01:00
workspace-private.h Make meta_workspace_list_windows public 2009-06-30 14:38:33 -04:00
workspace.c Simplify relationship between mapping and visibility 2009-07-06 00:16:23 +01:00
xprops.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00