[mutter/wayland] MetaPlugin: simplify the modal API



commit 75f3ae14b5c738976f693c6691e36562cbe5ec3f
Author: Giovanni Campagna <gcampagn redhat com>
Date:   Fri Aug 16 15:03:03 2013 +0200

    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 acb8d3c..0ebf3a4 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 2d4817f..565cb11 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 a7ee113..af50cab 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 3ea3435..8999b13 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);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]