summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2013-12-09 15:42:31 -0500
committerJasper St. Pierre <jstpierre@mecheye.net>2013-12-09 15:49:50 -0500
commitbb9501dbdf857c6b326ff28e8bc213b12103c937 (patch)
tree7f0e2fb526c7996dc1403c2e896333c8ae56d25c
parent1db95bc32be97028aae5f0f9d616cfe3cbfafbf6 (diff)
downloadmutter-wip/remove-map.tar.gz
compositor: Remove meta_compositor_window_[un]mappedwip/remove-map
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...
-rw-r--r--doc/reference/meta-sections.txt2
-rw-r--r--src/compositor/compositor.c33
-rw-r--r--src/compositor/meta-window-actor.c51
-rw-r--r--src/core/window.c15
-rw-r--r--src/meta/compositor.h13
5 files changed, 9 insertions, 105 deletions
diff --git a/doc/reference/meta-sections.txt b/doc/reference/meta-sections.txt
index 7aa893177..22d435034 100644
--- a/doc/reference/meta-sections.txt
+++ b/doc/reference/meta-sections.txt
@@ -96,8 +96,6 @@ meta_compositor_hide_window
meta_compositor_switch_workspace
meta_compositor_maximize_window
meta_compositor_unmaximize_window
-meta_compositor_window_mapped
-meta_compositor_window_unmapped
meta_compositor_sync_window_geometry
meta_compositor_set_updates_frozen
meta_compositor_queue_frame_drawn
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index ef1318824..f259ba2d4 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -42,15 +42,6 @@
* the call, so it may be necessary to readjust the display based on the
* 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 #
*
* There's two containers in the stage that are used to place window actors, here
@@ -1283,30 +1274,6 @@ meta_compositor_sync_stack (MetaCompositor *compositor,
}
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
meta_compositor_sync_window_geometry (MetaCompositor *compositor,
MetaWindow *window,
gboolean did_placement)
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 8344d1052..0d101bf8e 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -109,7 +109,6 @@ struct _MetaWindowActorPrivate
GList *frames;
guint visible : 1;
- guint mapped : 1;
guint argb32 : 1;
guint disposed : 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));
- if (!priv->mapped || priv->needs_pixmap)
+ if (priv->needs_pixmap)
return;
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);
}
- else if (priv->mapped && !priv->needs_pixmap)
+ else
{
const cairo_rectangle_int_t clip = { 0, 0, 1, 1 };
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;
- if (!priv->mapped)
- return;
-
if (is_frozen (self))
return;
@@ -1573,10 +1569,6 @@ meta_window_actor_new (MetaWindow *window)
priv->last_width = -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_updates_are_frozen (priv->window));
@@ -1610,34 +1602,6 @@ meta_window_actor_new (MetaWindow *window)
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:
* @self: a #MetaWindowActor
@@ -1840,9 +1804,6 @@ check_needs_pixmap (MetaWindowActor *self)
if (!priv->needs_pixmap)
return;
- if (!priv->mapped)
- return;
-
if (xwindow == meta_screen_get_xroot (screen) ||
xwindow == clutter_x11_get_stage_window (CLUTTER_STAGE (info->stage)))
return;
@@ -1928,9 +1889,6 @@ check_needs_shadow (MetaWindowActor *self)
gboolean should_have_shadow;
gboolean appears_focused;
- if (!priv->mapped)
- return;
-
/* Calling meta_window_actor_has_shadow() here at every pre-paint is cheap
* 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
@@ -2034,7 +1992,7 @@ meta_window_actor_process_damage (MetaWindowActor *self,
return;
}
- if (!priv->mapped || priv->needs_pixmap)
+ if (priv->needs_pixmap)
return;
redraw_queued = meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor),
@@ -2303,9 +2261,6 @@ check_needs_reshape (MetaWindowActor *self)
MetaFrameBorders borders;
cairo_rectangle_int_t client_area;
- if (!priv->mapped)
- return;
-
if (!priv->needs_reshape)
return;
diff --git a/src/core/window.c b/src/core/window.c
index a3ba38575..9435a4260 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -1447,9 +1447,6 @@ meta_window_new_with_attrs (MetaDisplay *display,
set_net_wm_state (window);
}
- if (screen->display->compositor)
- meta_compositor_add_window (screen->display->compositor, window);
-
/* Sync stack changes */
meta_stack_thaw (window->screen->stack);
@@ -1672,8 +1669,6 @@ meta_window_unmanage (MetaWindow *window,
if (window->visible_to_compositor)
meta_compositor_hide_window (window->display->compositor, window,
META_COMP_EFFECT_DESTROY);
-
- meta_compositor_remove_window (window->display->compositor, 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 (window->display->compositor)
- meta_compositor_window_mapped (window->display->compositor, window);
+ meta_compositor_add_window (window->display->compositor, window);
}
if (!window->visible_to_compositor)
@@ -3292,13 +3287,7 @@ meta_window_hide (MetaWindow *window)
if (toplevel_now_mapped != toplevel_was_mapped)
{
if (window->display->compositor)
- {
- /* 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);
- }
+ meta_compositor_remove_window (window->display->compositor, window);
}
set_net_wm_state (window);
diff --git a/src/meta/compositor.h b/src/meta/compositor.h
index b0e54550d..f3f2a7d63 100644
--- a/src/meta/compositor.h
+++ b/src/meta/compositor.h
@@ -77,11 +77,10 @@ gboolean meta_compositor_filter_keybinding (MetaCompositor *compositor,
MetaScreen *screen,
MetaKeyBinding *binding);
-void meta_compositor_add_window (MetaCompositor *compositor,
- MetaWindow *window);
-void meta_compositor_remove_window (MetaCompositor *compositor,
- MetaWindow *window);
-
+void meta_compositor_add_window (MetaCompositor *compositor,
+ MetaWindow *window);
+void meta_compositor_remove_window (MetaCompositor *compositor,
+ MetaWindow *window);
void meta_compositor_show_window (MetaCompositor *compositor,
MetaWindow *window,
MetaCompEffect effect);
@@ -103,10 +102,6 @@ void meta_compositor_unmaximize_window (MetaCompositor *compositor,
MetaRectangle *old_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,
MetaWindow *window,
gboolean did_placement);