[mutter/wip/surface-content: 5/13] compositor: Remove pending_input_region
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/surface-content: 5/13] compositor: Remove pending_input_region
- Date: Wed, 29 Jan 2014 15:31:16 +0000 (UTC)
commit 30c46b11a44b835d1e7b1088d9d7f5e6fbe53ce7
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Thu Jan 16 15:27:58 2014 -0500
compositor: Remove pending_input_region
Ever since the change to create the output window synchronously at startup,
there hasn't been any time where somebody could set a stage region the
output window was ready, so this was effectively dead code.
src/compositor/compositor-private.h | 3 -
src/compositor/compositor.c | 77 ++++++----------------------------
2 files changed, 14 insertions(+), 66 deletions(-)
---
diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
index 2e8d85f..f3b7afb 100644
--- a/src/compositor/compositor-private.h
+++ b/src/compositor/compositor-private.h
@@ -49,9 +49,6 @@ struct _MetaCompScreen
guint disable_unredirect_count;
MetaWindowActor *unredirected_window;
- /* Before we create the output window */
- XserverRegion pending_input_region;
-
gint switch_workspace_in_progress;
MetaPluginManager *plugin_mgr;
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index 0acd7d8..83072ba 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -261,25 +261,6 @@ meta_get_window_actors (MetaScreen *screen)
return info->windows;
}
-static void
-do_set_stage_input_region (MetaScreen *screen,
- XserverRegion region)
-{
- MetaCompScreen *info = meta_screen_get_compositor_data (screen);
- MetaDisplay *display = meta_screen_get_display (screen);
- Display *xdpy = meta_display_get_xdisplay (display);
- Window xstage = clutter_x11_get_stage_window (CLUTTER_STAGE (info->stage));
-
- XFixesSetWindowShapeRegion (xdpy, xstage, ShapeInput, 0, 0, region);
-
- /* It's generally a good heuristic that when a crossing event is generated because
- * we reshape the overlay, we don't want it to affect focus-follows-mouse focus -
- * it's not the user doing something, it's the environment changing under the user.
- */
- meta_display_add_ignored_crossing_serial (display, XNextRequest (xdpy));
- XFixesSetWindowShapeRegion (xdpy, info->output, ShapeInput, 0, 0, region);
-}
-
void
meta_set_stage_input_region (MetaScreen *screen,
XserverRegion region)
@@ -291,29 +272,19 @@ meta_set_stage_input_region (MetaScreen *screen,
*/
if (!meta_is_wayland_compositor ())
{
- MetaCompScreen *info = meta_screen_get_compositor_data (screen);
- MetaDisplay *display = meta_screen_get_display (screen);
- Display *xdpy = meta_display_get_xdisplay (display);
+ MetaCompScreen *info = meta_screen_get_compositor_data (screen);
+ MetaDisplay *display = meta_screen_get_display (screen);
+ Display *xdpy = meta_display_get_xdisplay (display);
+ Window xstage = clutter_x11_get_stage_window (CLUTTER_STAGE (info->stage));
- if (info->stage && info->output)
- {
- do_set_stage_input_region (screen, region);
- }
- else
- {
- /* Reset info->pending_input_region if one existed before and set the new
- * one to use it later. */
- if (info->pending_input_region)
- {
- XFixesDestroyRegion (xdpy, info->pending_input_region);
- info->pending_input_region = None;
- }
- if (region != None)
- {
- info->pending_input_region = XFixesCreateRegion (xdpy, NULL, 0);
- XFixesCopyRegion (xdpy, info->pending_input_region, region);
- }
- }
+ XFixesSetWindowShapeRegion (xdpy, xstage, ShapeInput, 0, 0, region);
+
+ /* It's generally a good heuristic that when a crossing event is generated because
+ * we reshape the overlay, we don't want it to affect focus-follows-mouse focus -
+ * it's not the user doing something, it's the environment changing under the user.
+ */
+ meta_display_add_ignored_crossing_serial (display, XNextRequest (xdpy));
+ XFixesSetWindowShapeRegion (xdpy, info->output, ShapeInput, 0, 0, region);
}
}
@@ -655,21 +626,6 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
return;
info = g_new0 (MetaCompScreen, 1);
- /*
- * We use an empty input region for Clutter as a default because that allows
- * the user to interact with all the windows displayed on the screen.
- * We have to initialize info->pending_input_region to an empty region explicitly,
- * because None value is used to mean that the whole screen is an input region.
- */
- if (!meta_is_wayland_compositor ())
- info->pending_input_region = XFixesCreateRegion (xdisplay, NULL, 0);
- else
- {
- /* Stage input region trickery isn't needed when we're running as a
- * wayland compositor. */
- info->pending_input_region = None;
- }
-
info->screen = screen;
meta_screen_set_compositor_data (screen, info);
@@ -755,6 +711,8 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
info->output = get_output_window (screen);
XReparentWindow (xdisplay, xwin, info->output, 0, 0);
+ meta_empty_stage_input_region (screen);
+
/* Make sure there isn't any left-over output shape on the
* overlay window by setting the whole screen to be an
* output region.
@@ -765,13 +723,6 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
*/
XFixesSetWindowShapeRegion (xdisplay, info->output, ShapeBounding, 0, 0, None);
- do_set_stage_input_region (screen, info->pending_input_region);
- if (info->pending_input_region != None)
- {
- XFixesDestroyRegion (xdisplay, info->pending_input_region);
- info->pending_input_region = None;
- }
-
/* Map overlay window before redirecting windows offscreen so we catch their
* contents until we show the stage.
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]