From 75f3ae14b5c738976f693c6691e36562cbe5ec3f Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Fri, 16 Aug 2013 15:03:03 +0200 Subject: [PATCH] MetaPlugin: simplify the modal API Remove grab window and cursor from the API, and just grab always on the stage window with no cursor. This is mainly to remove the X11 usage in the public API, in preparation for implementing this in wayland. https://bugzilla.gnome.org/show_bug.cgi?id=705917 --- src/compositor/compositor-private.h | 2 -- src/compositor/compositor.c | 11 +++++++++-- src/compositor/meta-plugin.c | 8 +------- src/meta/meta-plugin.h | 2 -- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h index acb8d3c22..0ebf3a439 100644 --- a/src/compositor/compositor-private.h +++ b/src/compositor/compositor-private.h @@ -66,8 +66,6 @@ void meta_switch_workspace_completed (MetaScreen *screen); gboolean meta_begin_modal_for_plugin (MetaScreen *screen, MetaPlugin *plugin, - Window grab_window, - Cursor cursor, MetaModalOptions options, guint32 timestamp); void meta_end_modal_for_plugin (MetaScreen *screen, diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c index 2d4817f68..565cb1123 100644 --- a/src/compositor/compositor.c +++ b/src/compositor/compositor.c @@ -423,8 +423,6 @@ meta_stage_is_focused (MetaScreen *screen) gboolean meta_begin_modal_for_plugin (MetaScreen *screen, MetaPlugin *plugin, - Window grab_window, - Cursor cursor, MetaModalOptions options, guint32 timestamp) { @@ -435,10 +433,19 @@ meta_begin_modal_for_plugin (MetaScreen *screen, MetaDisplay *display = meta_screen_get_display (screen); Display *xdpy = meta_display_get_xdisplay (display); MetaCompositor *compositor = display->compositor; + ClutterStage *stage; + Window grab_window; + Cursor cursor = None; gboolean pointer_grabbed = FALSE; gboolean keyboard_grabbed = FALSE; int result; + stage = CLUTTER_STAGE (meta_get_stage_for_screen (screen)); + if (!stage) + return FALSE; + + grab_window = clutter_x11_get_stage_window (stage); + if (compositor->modal_plugin != NULL || display->grab_op != META_GRAB_OP_NONE) return FALSE; diff --git a/src/compositor/meta-plugin.c b/src/compositor/meta-plugin.c index a7ee1137b..af50cab47 100644 --- a/src/compositor/meta-plugin.c +++ b/src/compositor/meta-plugin.c @@ -266,10 +266,6 @@ meta_plugin_destroy_completed (MetaPlugin *plugin, /** * meta_plugin_begin_modal: * @plugin: a #MetaPlugin - * @grab_window: the X window to grab the keyboard and mouse on - * @cursor: the cursor to use for the pointer grab, or None, - * to use the normal cursor for the grab window and - * its descendants. * @options: flags that modify the behavior of the modal grab * @timestamp: the timestamp used for establishing grabs * @@ -290,15 +286,13 @@ meta_plugin_destroy_completed (MetaPlugin *plugin, */ gboolean meta_plugin_begin_modal (MetaPlugin *plugin, - Window grab_window, - Cursor cursor, MetaModalOptions options, guint32 timestamp) { MetaPluginPrivate *priv = META_PLUGIN (plugin)->priv; return meta_begin_modal_for_plugin (priv->screen, plugin, - grab_window, cursor, options, timestamp); + options, timestamp); } /** diff --git a/src/meta/meta-plugin.h b/src/meta/meta-plugin.h index 3ea3435b1..8999b133e 100644 --- a/src/meta/meta-plugin.h +++ b/src/meta/meta-plugin.h @@ -376,8 +376,6 @@ typedef enum { gboolean meta_plugin_begin_modal (MetaPlugin *plugin, - Window grab_window, - Cursor cursor, MetaModalOptions options, guint32 timestamp);