Top |
Functions
Description
At a high-level, a window is not-visible or visible. When a
window is added (with meta_compositor_add_window()
) it is not visible.
meta_compositor_show_window()
indicates a transition from not-visible to
visible. Some of the reasons for this:
Window newly created
Window is unminimized
Window is moved to the current desktop
Window was made sticky
meta_compositor_hide_window() indicates that the window has transitioned from visible to not-visible. Some reasons include:
Window was destroyed
Window is minimized
Window is moved to a different desktop
Window no longer sticky.
Note that combinations are possible - a window might have first
been minimized and then moved to a different desktop. The 'effect' parameter
to meta_compositor_show_window()
and meta_compositor_hide_window()
is a hint
as to the appropriate effect to show the user and should not
be considered to be indicative of a state change.
When the active workspace is changed, meta_compositor_switch_workspace()
is
called first, then meta_compositor_show_window()
and
meta_compositor_hide_window()
are called individually for each window
affected, with an effect of META_COMP_EFFECT_NONE.
If hiding windows will affect the switch workspace animation, the
compositor needs to delay hiding the windows until the switch
workspace animation completes.
meta_compositor_maximize_window() and meta_compositor_unmaximize_window()
are transitions within the visible state. The window is resized __before__
the call, so it may be necessary to readjust the display based on the
old_rect to start the animation.
Containers
There's two containers in the stage that are used to place window actors, here are listed in the order in which they are painted:
window group, accessible with
meta_get_window_group_for_screen()
top window group, accessible with
meta_get_top_window_group_for_screen()
Mutter will place actors representing windows in the window group, except for override-redirect windows (ie. popups and menus) which will be placed in the top window group.
Functions
meta_compositor_window_shape_changed ()
void meta_compositor_window_shape_changed (MetaCompositor *compositor
,MetaWindow *window
);
meta_compositor_process_event ()
gboolean meta_compositor_process_event (MetaCompositor *compositor
,XEvent *event
,MetaWindow *window
);
meta_compositor_filter_keybinding ()
gboolean meta_compositor_filter_keybinding (MetaCompositor *compositor
,MetaKeyBinding *binding
);
meta_compositor_add_window ()
void meta_compositor_add_window (MetaCompositor *compositor
,MetaWindow *window
);
meta_compositor_remove_window ()
void meta_compositor_remove_window (MetaCompositor *compositor
,MetaWindow *window
);
meta_compositor_show_window ()
void meta_compositor_show_window (MetaCompositor *compositor
,MetaWindow *window
,MetaCompEffect effect
);
meta_compositor_hide_window ()
void meta_compositor_hide_window (MetaCompositor *compositor
,MetaWindow *window
,MetaCompEffect effect
);
meta_compositor_switch_workspace ()
void meta_compositor_switch_workspace (MetaCompositor *compositor
,MetaWorkspace *from
,MetaWorkspace *to
,MetaMotionDirection direction
);
meta_compositor_maximize_window ()
void meta_compositor_maximize_window (MetaCompositor *compositor
,MetaWindow *window
,MetaRectangle *old_rect
,MetaRectangle *new_rect
);
meta_compositor_unmaximize_window ()
void meta_compositor_unmaximize_window (MetaCompositor *compositor
,MetaWindow *window
,MetaRectangle *old_rect
,MetaRectangle *new_rect
);
meta_compositor_sync_window_geometry ()
void meta_compositor_sync_window_geometry (MetaCompositor *compositor
,MetaWindow *window
,gboolean did_placement
);
meta_compositor_queue_frame_drawn ()
void meta_compositor_queue_frame_drawn (MetaCompositor *compositor
,MetaWindow *window
,gboolean no_delay_frame
);
meta_compositor_sync_stack ()
void meta_compositor_sync_stack (MetaCompositor *compositor
,GList *stack
);
meta_compositor_flash_screen ()
void meta_compositor_flash_screen (MetaCompositor *compositor
,MetaScreen *screen
);
meta_get_window_group_for_screen ()
ClutterActor *
meta_get_window_group_for_screen (MetaScreen *screen
);
meta_get_top_window_group_for_screen ()
ClutterActor *
meta_get_top_window_group_for_screen (MetaScreen *screen
);
meta_disable_unredirect_for_screen ()
void
meta_disable_unredirect_for_screen (MetaScreen *screen
);
Disables unredirection, can be usefull in situations where having unredirected windows is undesireable like when recording a video.
meta_enable_unredirect_for_screen ()
void
meta_enable_unredirect_for_screen (MetaScreen *screen
);
Enables unredirection which reduces the overhead for apps like games.
meta_set_stage_input_region ()
void meta_set_stage_input_region (MetaScreen *screen
,XserverRegion region
);
Types and Values
enum MetaCompEffect
Indicates the appropriate effect to show the user for
meta_compositor_show_window()
and meta_compositor_hide_window()
Members
The window is newly created (also used for a window that was previously on a different workspace and is changed to become visible on the active workspace.) |
||
The window should be shown as unminimizing from its icon geometry. |
||
The window is being destroyed |
||
The window should be shown as minimizing to its icon geometry. |
||
No effect, the window should be shown or hidden immediately. |