[mutter/wip/surface-content: 4/13] compositor: Remove meta_compositor_window_[un]mapped
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/surface-content: 4/13] compositor: Remove meta_compositor_window_[un]mapped
- Date: Wed, 29 Jan 2014 15:31:11 +0000 (UTC)
commit 82728eef33bf9f8974622a90a61bfc325716b085
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Tue Jan 21 15:58:12 2014 -0500
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...
doc/reference/meta-sections.txt | 2 -
src/compositor/compositor.c | 59 ++++++-----------------------------
src/compositor/meta-window-actor.c | 61 ++----------------------------------
src/core/window.c | 24 +++++---------
src/meta/compositor.h | 13 ++-----
5 files changed, 25 insertions(+), 134 deletions(-)
---
diff --git a/doc/reference/meta-sections.txt b/doc/reference/meta-sections.txt
index 7aa8931..22d4350 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 d2598f4..0acd7d8 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
@@ -150,19 +141,6 @@ meta_compositor_destroy (MetaCompositor *compositor)
}
static void
-add_win (MetaWindow *window)
-{
- MetaScreen *screen = meta_window_get_screen (window);
- MetaCompScreen *info = meta_screen_get_compositor_data (screen);
-
- g_return_if_fail (info != NULL);
-
- meta_window_actor_new (window);
-
- sync_actor_stacking (info);
-}
-
-static void
process_damage (MetaCompositor *compositor,
XDamageNotifyEvent *event,
MetaWindow *window)
@@ -869,13 +847,20 @@ meta_compositor_add_window (MetaCompositor *compositor,
{
MetaScreen *screen = meta_window_get_screen (window);
MetaDisplay *display = meta_screen_get_display (screen);
+ MetaCompScreen *info = meta_screen_get_compositor_data (screen);
- DEBUG_TRACE ("meta_compositor_add_window\n");
- meta_error_trap_push (display);
+ g_return_if_fail (info != NULL);
- add_win (window);
+ /* Window was already added previously, probably coming
+ * back from hiding */
+ if (window->compositor_private != NULL)
+ return;
+ meta_error_trap_push (display);
+ meta_window_actor_new (window);
meta_error_trap_pop (display);
+
+ sync_actor_stacking (info);
}
void
@@ -1403,30 +1388,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 8fcb7ea..e9cecfc 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -106,7 +106,6 @@ struct _MetaWindowActorPrivate
Damage damage; /* Not used in wayland compositor mode */
guint visible : 1;
- guint mapped : 1;
guint argb32 : 1;
guint disposed : 1;
guint redecorating : 1;
@@ -984,7 +983,7 @@ meta_window_actor_damage_all (MetaWindowActor *self)
if (!priv->needs_damage_all)
return;
- if (!priv->mapped || priv->needs_pixmap)
+ if (priv->needs_pixmap)
return;
unobscured_region =
@@ -1074,7 +1073,7 @@ meta_window_actor_queue_frame_drawn (MetaWindowActor *self,
{
queue_send_frame_messages_timeout (self);
}
- else if (priv->mapped && (!meta_is_wayland_compositor () || !priv->needs_pixmap))
+ else
{
const cairo_rectangle_int_t clip = { 0, 0, 1, 1 };
clutter_actor_queue_redraw_with_clip (CLUTTER_ACTOR (priv->surface), &clip);
@@ -1106,9 +1105,6 @@ meta_window_actor_queue_create_x11_pixmap (MetaWindowActor *self)
priv->needs_pixmap = TRUE;
- if (!priv->mapped)
- return;
-
if (is_frozen (self))
return;
@@ -1206,9 +1202,6 @@ meta_window_actor_after_effects (MetaWindowActor *self)
if (!meta_is_wayland_compositor ())
{
- if (!priv->mapped)
- meta_window_actor_detach_x11_pixmap (self);
-
if (priv->needs_pixmap)
clutter_actor_queue_redraw (CLUTTER_ACTOR (priv->surface));
}
@@ -1630,18 +1623,11 @@ meta_window_actor_new (MetaWindow *window)
priv = self->priv;
- /* We know that when the compositor first adds our window, it will
- * be before the toplevel window is mapped. */
- priv->mapped = FALSE;
-
if (!meta_is_wayland_compositor ())
{
priv->last_width = -1;
priv->last_height = -1;
- if (priv->mapped)
- meta_window_actor_queue_create_x11_pixmap (self);
-
meta_window_actor_set_updates_frozen (self,
meta_window_updates_are_frozen (priv->window));
@@ -1676,38 +1662,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;
-
- if (!meta_is_wayland_compositor ())
- meta_window_actor_queue_create_x11_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;
-
- if (!meta_is_wayland_compositor ())
- {
- meta_window_actor_detach_x11_pixmap (self);
- priv->needs_pixmap = FALSE;
- }
-}
-
#if 0
/* Print out a region; useful for debugging */
static void
@@ -1860,9 +1814,6 @@ check_needs_x11_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;
@@ -1936,9 +1887,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
@@ -2043,7 +1991,7 @@ meta_window_actor_process_x11_damage (MetaWindowActor *self,
return;
}
- if (!priv->mapped || priv->needs_pixmap)
+ if (priv->needs_pixmap)
return;
unobscured_region =
@@ -2322,9 +2270,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 0ac94fa..ed55c7a 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -812,17 +812,11 @@ sync_client_window_mapped (MetaWindow *window)
if (should_be_mapped)
{
XMapWindow (window->display->xdisplay, window->xwindow);
-
- if (window->display->compositor)
- meta_compositor_window_mapped (window->display->compositor, window);
}
else
{
XUnmapWindow (window->display->xdisplay, window->xwindow);
window->unmaps_pending ++;
-
- if (window->display->compositor)
- meta_compositor_window_unmapped (window->display->compositor, window);
}
meta_error_trap_pop (window->display);
}
@@ -1322,9 +1316,6 @@ meta_window_new_shared (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);
@@ -1797,10 +1788,12 @@ meta_window_unmanage (MetaWindow *window,
if (window->display->compositor)
{
if (window->visible_to_compositor)
- meta_compositor_hide_window (window->display->compositor, window,
- META_COMP_EFFECT_DESTROY);
+ {
+ meta_compositor_hide_window (window->display->compositor, window,
+ META_COMP_EFFECT_DESTROY);
- meta_compositor_remove_window (window->display->compositor, window);
+ meta_compositor_remove_window (window->display->compositor, window);
+ }
}
if (window->display->window_with_menu == window)
@@ -3177,8 +3170,8 @@ meta_window_show (MetaWindow *window)
break;
}
- meta_compositor_show_window (window->display->compositor,
- window, effect);
+ meta_compositor_add_window (window->display->compositor, window);
+ meta_compositor_show_window (window->display->compositor, window, effect);
}
}
@@ -3270,8 +3263,7 @@ meta_window_hide (MetaWindow *window)
break;
}
- meta_compositor_hide_window (window->display->compositor,
- window, effect);
+ meta_compositor_hide_window (window->display->compositor, window, effect);
}
}
diff --git a/src/meta/compositor.h b/src/meta/compositor.h
index 42ff0dd..45c8b09 100644
--- a/src/meta/compositor.h
+++ b/src/meta/compositor.h
@@ -75,11 +75,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);
@@ -101,10 +100,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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]