mirror of
https://github.com/brl/mutter.git
synced 2025-02-16 13:24:09 +00:00
compositor: Remove meta_compositor_window_[un]mapped
We no longer unmap the toplevel windows during normal operation. The toplevel state is tied to the window's lifetime. Call meta_compositor_add_window / meta_compositor_remove_window instead...
This commit is contained in:
parent
1db95bc32b
commit
bb9501dbdf
@ -96,8 +96,6 @@ meta_compositor_hide_window
|
|||||||
meta_compositor_switch_workspace
|
meta_compositor_switch_workspace
|
||||||
meta_compositor_maximize_window
|
meta_compositor_maximize_window
|
||||||
meta_compositor_unmaximize_window
|
meta_compositor_unmaximize_window
|
||||||
meta_compositor_window_mapped
|
|
||||||
meta_compositor_window_unmapped
|
|
||||||
meta_compositor_sync_window_geometry
|
meta_compositor_sync_window_geometry
|
||||||
meta_compositor_set_updates_frozen
|
meta_compositor_set_updates_frozen
|
||||||
meta_compositor_queue_frame_drawn
|
meta_compositor_queue_frame_drawn
|
||||||
|
@ -42,15 +42,6 @@
|
|||||||
* the call, so it may be necessary to readjust the display based on the
|
* the call, so it may be necessary to readjust the display based on the
|
||||||
* old_rect to start the animation.
|
* old_rect to start the animation.
|
||||||
*
|
*
|
||||||
* meta_compositor_window_mapped() and meta_compositor_window_unmapped() are
|
|
||||||
* notifications when the toplevel window (frame or client window) is mapped or
|
|
||||||
* unmapped. That is, when the result of meta_window_toplevel_is_mapped()
|
|
||||||
* changes. The main use of this is to drop resources when a window is unmapped.
|
|
||||||
* A window will always be mapped before meta_compositor_show_window()
|
|
||||||
* is called and will not be unmapped until after meta_compositor_hide_window()
|
|
||||||
* is called. If the live_hidden_windows preference is set, windows will never
|
|
||||||
* be unmapped.
|
|
||||||
*
|
|
||||||
* # Containers #
|
* # Containers #
|
||||||
*
|
*
|
||||||
* There's two containers in the stage that are used to place window actors, here
|
* There's two containers in the stage that are used to place window actors, here
|
||||||
@ -1282,30 +1273,6 @@ meta_compositor_sync_stack (MetaCompositor *compositor,
|
|||||||
sync_actor_stacking (info);
|
sync_actor_stacking (info);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
meta_compositor_window_mapped (MetaCompositor *compositor,
|
|
||||||
MetaWindow *window)
|
|
||||||
{
|
|
||||||
MetaWindowActor *window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
|
|
||||||
DEBUG_TRACE ("meta_compositor_window_mapped\n");
|
|
||||||
if (!window_actor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
meta_window_actor_mapped (window_actor);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_compositor_window_unmapped (MetaCompositor *compositor,
|
|
||||||
MetaWindow *window)
|
|
||||||
{
|
|
||||||
MetaWindowActor *window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
|
|
||||||
DEBUG_TRACE ("meta_compositor_window_unmapped\n");
|
|
||||||
if (!window_actor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
meta_window_actor_unmapped (window_actor);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_compositor_sync_window_geometry (MetaCompositor *compositor,
|
meta_compositor_sync_window_geometry (MetaCompositor *compositor,
|
||||||
MetaWindow *window,
|
MetaWindow *window,
|
||||||
|
@ -109,7 +109,6 @@ struct _MetaWindowActorPrivate
|
|||||||
GList *frames;
|
GList *frames;
|
||||||
|
|
||||||
guint visible : 1;
|
guint visible : 1;
|
||||||
guint mapped : 1;
|
|
||||||
guint argb32 : 1;
|
guint argb32 : 1;
|
||||||
guint disposed : 1;
|
guint disposed : 1;
|
||||||
guint redecorating : 1;
|
guint redecorating : 1;
|
||||||
@ -940,7 +939,7 @@ meta_window_actor_damage_all (MetaWindowActor *self)
|
|||||||
|
|
||||||
texture = meta_shaped_texture_get_texture (META_SHAPED_TEXTURE (priv->actor));
|
texture = meta_shaped_texture_get_texture (META_SHAPED_TEXTURE (priv->actor));
|
||||||
|
|
||||||
if (!priv->mapped || priv->needs_pixmap)
|
if (priv->needs_pixmap)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
redraw_queued = meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor),
|
redraw_queued = meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor),
|
||||||
@ -1029,7 +1028,7 @@ meta_window_actor_queue_frame_drawn (MetaWindowActor *self,
|
|||||||
{
|
{
|
||||||
queue_send_frame_messages_timeout (self);
|
queue_send_frame_messages_timeout (self);
|
||||||
}
|
}
|
||||||
else if (priv->mapped && !priv->needs_pixmap)
|
else
|
||||||
{
|
{
|
||||||
const cairo_rectangle_int_t clip = { 0, 0, 1, 1 };
|
const cairo_rectangle_int_t clip = { 0, 0, 1, 1 };
|
||||||
clutter_actor_queue_redraw_with_clip (priv->actor, &clip);
|
clutter_actor_queue_redraw_with_clip (priv->actor, &clip);
|
||||||
@ -1061,9 +1060,6 @@ meta_window_actor_queue_create_pixmap (MetaWindowActor *self)
|
|||||||
|
|
||||||
priv->needs_pixmap = TRUE;
|
priv->needs_pixmap = TRUE;
|
||||||
|
|
||||||
if (!priv->mapped)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (is_frozen (self))
|
if (is_frozen (self))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -1573,10 +1569,6 @@ meta_window_actor_new (MetaWindow *window)
|
|||||||
priv->last_width = -1;
|
priv->last_width = -1;
|
||||||
priv->last_height = -1;
|
priv->last_height = -1;
|
||||||
|
|
||||||
priv->mapped = meta_window_toplevel_is_mapped (priv->window);
|
|
||||||
if (priv->mapped)
|
|
||||||
meta_window_actor_queue_create_pixmap (self);
|
|
||||||
|
|
||||||
meta_window_actor_set_updates_frozen (self,
|
meta_window_actor_set_updates_frozen (self,
|
||||||
meta_window_updates_are_frozen (priv->window));
|
meta_window_updates_are_frozen (priv->window));
|
||||||
|
|
||||||
@ -1610,34 +1602,6 @@ meta_window_actor_new (MetaWindow *window)
|
|||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
meta_window_actor_mapped (MetaWindowActor *self)
|
|
||||||
{
|
|
||||||
MetaWindowActorPrivate *priv = self->priv;
|
|
||||||
|
|
||||||
g_return_if_fail (!priv->mapped);
|
|
||||||
|
|
||||||
priv->mapped = TRUE;
|
|
||||||
|
|
||||||
meta_window_actor_queue_create_pixmap (self);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
meta_window_actor_unmapped (MetaWindowActor *self)
|
|
||||||
{
|
|
||||||
MetaWindowActorPrivate *priv = self->priv;
|
|
||||||
|
|
||||||
g_return_if_fail (priv->mapped);
|
|
||||||
|
|
||||||
priv->mapped = FALSE;
|
|
||||||
|
|
||||||
if (meta_window_actor_effect_in_progress (self))
|
|
||||||
return;
|
|
||||||
|
|
||||||
meta_window_actor_detach (self);
|
|
||||||
priv->needs_pixmap = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* meta_window_actor_get_obscured_region:
|
* meta_window_actor_get_obscured_region:
|
||||||
* @self: a #MetaWindowActor
|
* @self: a #MetaWindowActor
|
||||||
@ -1840,9 +1804,6 @@ check_needs_pixmap (MetaWindowActor *self)
|
|||||||
if (!priv->needs_pixmap)
|
if (!priv->needs_pixmap)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!priv->mapped)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (xwindow == meta_screen_get_xroot (screen) ||
|
if (xwindow == meta_screen_get_xroot (screen) ||
|
||||||
xwindow == clutter_x11_get_stage_window (CLUTTER_STAGE (info->stage)))
|
xwindow == clutter_x11_get_stage_window (CLUTTER_STAGE (info->stage)))
|
||||||
return;
|
return;
|
||||||
@ -1928,9 +1889,6 @@ check_needs_shadow (MetaWindowActor *self)
|
|||||||
gboolean should_have_shadow;
|
gboolean should_have_shadow;
|
||||||
gboolean appears_focused;
|
gboolean appears_focused;
|
||||||
|
|
||||||
if (!priv->mapped)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* Calling meta_window_actor_has_shadow() here at every pre-paint is cheap
|
/* Calling meta_window_actor_has_shadow() here at every pre-paint is cheap
|
||||||
* and avoids the need to explicitly handle window type changes, which
|
* and avoids the need to explicitly handle window type changes, which
|
||||||
* we would do if tried to keep track of when we might be adding or removing
|
* we would do if tried to keep track of when we might be adding or removing
|
||||||
@ -2034,7 +1992,7 @@ meta_window_actor_process_damage (MetaWindowActor *self,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!priv->mapped || priv->needs_pixmap)
|
if (priv->needs_pixmap)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
redraw_queued = meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor),
|
redraw_queued = meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor),
|
||||||
@ -2303,9 +2261,6 @@ check_needs_reshape (MetaWindowActor *self)
|
|||||||
MetaFrameBorders borders;
|
MetaFrameBorders borders;
|
||||||
cairo_rectangle_int_t client_area;
|
cairo_rectangle_int_t client_area;
|
||||||
|
|
||||||
if (!priv->mapped)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!priv->needs_reshape)
|
if (!priv->needs_reshape)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1447,9 +1447,6 @@ meta_window_new_with_attrs (MetaDisplay *display,
|
|||||||
set_net_wm_state (window);
|
set_net_wm_state (window);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (screen->display->compositor)
|
|
||||||
meta_compositor_add_window (screen->display->compositor, window);
|
|
||||||
|
|
||||||
/* Sync stack changes */
|
/* Sync stack changes */
|
||||||
meta_stack_thaw (window->screen->stack);
|
meta_stack_thaw (window->screen->stack);
|
||||||
|
|
||||||
@ -1672,8 +1669,6 @@ meta_window_unmanage (MetaWindow *window,
|
|||||||
if (window->visible_to_compositor)
|
if (window->visible_to_compositor)
|
||||||
meta_compositor_hide_window (window->display->compositor, window,
|
meta_compositor_hide_window (window->display->compositor, window,
|
||||||
META_COMP_EFFECT_DESTROY);
|
META_COMP_EFFECT_DESTROY);
|
||||||
|
|
||||||
meta_compositor_remove_window (window->display->compositor, window);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window->display->window_with_menu == window)
|
if (window->display->window_with_menu == window)
|
||||||
@ -3143,7 +3138,7 @@ meta_window_show (MetaWindow *window)
|
|||||||
if (toplevel_now_mapped != toplevel_was_mapped)
|
if (toplevel_now_mapped != toplevel_was_mapped)
|
||||||
{
|
{
|
||||||
if (window->display->compositor)
|
if (window->display->compositor)
|
||||||
meta_compositor_window_mapped (window->display->compositor, window);
|
meta_compositor_add_window (window->display->compositor, window);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!window->visible_to_compositor)
|
if (!window->visible_to_compositor)
|
||||||
@ -3292,13 +3287,7 @@ meta_window_hide (MetaWindow *window)
|
|||||||
if (toplevel_now_mapped != toplevel_was_mapped)
|
if (toplevel_now_mapped != toplevel_was_mapped)
|
||||||
{
|
{
|
||||||
if (window->display->compositor)
|
if (window->display->compositor)
|
||||||
{
|
meta_compositor_remove_window (window->display->compositor, window);
|
||||||
/* As above, we may be *mapping* live hidden windows */
|
|
||||||
if (toplevel_now_mapped)
|
|
||||||
meta_compositor_window_mapped (window->display->compositor, window);
|
|
||||||
else
|
|
||||||
meta_compositor_window_unmapped (window->display->compositor, window);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
set_net_wm_state (window);
|
set_net_wm_state (window);
|
||||||
|
@ -77,11 +77,10 @@ gboolean meta_compositor_filter_keybinding (MetaCompositor *compositor,
|
|||||||
MetaScreen *screen,
|
MetaScreen *screen,
|
||||||
MetaKeyBinding *binding);
|
MetaKeyBinding *binding);
|
||||||
|
|
||||||
void meta_compositor_add_window (MetaCompositor *compositor,
|
void meta_compositor_add_window (MetaCompositor *compositor,
|
||||||
MetaWindow *window);
|
MetaWindow *window);
|
||||||
void meta_compositor_remove_window (MetaCompositor *compositor,
|
void meta_compositor_remove_window (MetaCompositor *compositor,
|
||||||
MetaWindow *window);
|
MetaWindow *window);
|
||||||
|
|
||||||
void meta_compositor_show_window (MetaCompositor *compositor,
|
void meta_compositor_show_window (MetaCompositor *compositor,
|
||||||
MetaWindow *window,
|
MetaWindow *window,
|
||||||
MetaCompEffect effect);
|
MetaCompEffect effect);
|
||||||
@ -103,10 +102,6 @@ void meta_compositor_unmaximize_window (MetaCompositor *compositor,
|
|||||||
MetaRectangle *old_rect,
|
MetaRectangle *old_rect,
|
||||||
MetaRectangle *new_rect);
|
MetaRectangle *new_rect);
|
||||||
|
|
||||||
void meta_compositor_window_mapped (MetaCompositor *compositor,
|
|
||||||
MetaWindow *window);
|
|
||||||
void meta_compositor_window_unmapped (MetaCompositor *compositor,
|
|
||||||
MetaWindow *window);
|
|
||||||
void meta_compositor_sync_window_geometry (MetaCompositor *compositor,
|
void meta_compositor_sync_window_geometry (MetaCompositor *compositor,
|
||||||
MetaWindow *window,
|
MetaWindow *window,
|
||||||
gboolean did_placement);
|
gboolean did_placement);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user