[mutter/wip/carlosg/grabs-pt3: 106/107] compositor: Remove meta_plugin_begin/end_modal
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/grabs-pt3: 106/107] compositor: Remove meta_plugin_begin/end_modal
- Date: Tue, 7 Dec 2021 21:36:59 +0000 (UTC)
commit 748dab5477da5805279814182f4db0437a2e776b
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri Nov 19 16:52:58 2021 +0100
compositor: Remove meta_plugin_begin/end_modal
Amazingly, this is no longer used. This way to let Clutter grab input
is no longer necessary.
src/compositor/compositor-private.h | 8 ---
src/compositor/compositor.c | 112 ------------------------------------
src/compositor/meta-plugin.c | 52 -----------------
src/meta/meta-plugin.h | 26 ---------
4 files changed, 198 deletions(-)
---
diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
index 4e4194f127..2916e5e4e6 100644
--- a/src/compositor/compositor-private.h
+++ b/src/compositor/compositor-private.h
@@ -44,14 +44,6 @@ void meta_compositor_remove_window_actor (MetaCompositor *compositor,
void meta_switch_workspace_completed (MetaCompositor *compositor);
-gboolean meta_begin_modal_for_plugin (MetaCompositor *compositor,
- MetaPlugin *plugin,
- MetaModalOptions options,
- guint32 timestamp);
-void meta_end_modal_for_plugin (MetaCompositor *compositor,
- MetaPlugin *plugin,
- guint32 timestamp);
-
MetaPluginManager * meta_compositor_get_plugin_manager (MetaCompositor *compositor);
int64_t meta_compositor_monotonic_to_high_res_xserver_time (MetaCompositor *compositor,
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index f33dacefcb..5e9ede88b8 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -146,12 +146,6 @@ static void
on_top_window_actor_destroyed (MetaWindowActor *window_actor,
MetaCompositor *compositor);
-static gboolean
-is_modal (MetaDisplay *display)
-{
- return display->event_route == META_EVENT_ROUTE_COMPOSITOR_GRAB;
-}
-
static void sync_actor_stacking (MetaCompositor *compositor);
static void
@@ -348,32 +342,6 @@ meta_stage_is_focused (MetaDisplay *display)
return (display->x11_display->focus_xwindow == window);
}
-static gboolean
-grab_devices (MetaModalOptions options,
- guint32 timestamp)
-{
- MetaBackend *backend = META_BACKEND (meta_get_backend ());
-
- if ((options & META_MODAL_POINTER_ALREADY_GRABBED) == 0)
- {
- if (!meta_backend_grab_device (backend, META_VIRTUAL_CORE_POINTER_ID, timestamp))
- goto fail;
- }
-
- if ((options & META_MODAL_KEYBOARD_ALREADY_GRABBED) == 0)
- {
- if (!meta_backend_grab_device (backend, META_VIRTUAL_CORE_KEYBOARD_ID, timestamp))
- goto ungrab_pointer;
- }
-
- return TRUE;
-
- ungrab_pointer:
- meta_backend_ungrab_device (backend, META_VIRTUAL_CORE_POINTER_ID, timestamp);
- fail:
- return FALSE;
-}
-
void
meta_compositor_grab_begin (MetaCompositor *compositor)
{
@@ -386,86 +354,6 @@ meta_compositor_grab_end (MetaCompositor *compositor)
META_COMPOSITOR_GET_CLASS (compositor)->grab_end (compositor);
}
-gboolean
-meta_begin_modal_for_plugin (MetaCompositor *compositor,
- MetaPlugin *plugin,
- MetaModalOptions options,
- guint32 timestamp)
-{
- /* To some extent this duplicates code in meta_display_begin_grab_op(), but there
- * are significant differences in how we handle grabs that make it difficult to
- * merge the two.
- */
- MetaCompositorPrivate *priv =
- meta_compositor_get_instance_private (compositor);
- MetaDisplay *display = priv->display;
-
-#ifdef HAVE_WAYLAND
- if (display->grab_op == META_GRAB_OP_WAYLAND_POPUP)
- {
- MetaWaylandSeat *seat = meta_wayland_compositor_get_default ()->seat;
- meta_wayland_pointer_end_popup_grab (seat->pointer);
- }
-#endif
-
- if (is_modal (display) || display->grab_op != META_GRAB_OP_NONE)
- return FALSE;
-
- if (display->x11_display)
- {
- /* XXX: why is this needed? */
- XIUngrabDevice (display->x11_display->xdisplay,
- META_VIRTUAL_CORE_POINTER_ID,
- timestamp);
- XSync (display->x11_display->xdisplay, False);
- }
-
- if (!grab_devices (options, timestamp))
- return FALSE;
-
- display->grab_op = META_GRAB_OP_COMPOSITOR;
- display->event_route = META_EVENT_ROUTE_COMPOSITOR_GRAB;
- display->grab_window = NULL;
- display->grab_have_pointer = TRUE;
- display->grab_have_keyboard = TRUE;
-
- g_signal_emit_by_name (display, "grab-op-begin",
- display->grab_window, display->grab_op);
-
- meta_compositor_grab_begin (compositor);
-
- return TRUE;
-}
-
-void
-meta_end_modal_for_plugin (MetaCompositor *compositor,
- MetaPlugin *plugin,
- guint32 timestamp)
-{
- MetaCompositorPrivate *priv =
- meta_compositor_get_instance_private (compositor);
- MetaDisplay *display = priv->display;
- MetaBackend *backend = meta_get_backend ();
- MetaWindow *grab_window = display->grab_window;
- MetaGrabOp grab_op = display->grab_op;
-
- g_return_if_fail (is_modal (display));
-
- display->grab_op = META_GRAB_OP_NONE;
- display->event_route = META_EVENT_ROUTE_NORMAL;
- display->grab_window = NULL;
- display->grab_have_pointer = FALSE;
- display->grab_have_keyboard = FALSE;
-
- meta_backend_ungrab_device (backend, META_VIRTUAL_CORE_POINTER_ID, timestamp);
- meta_backend_ungrab_device (backend, META_VIRTUAL_CORE_KEYBOARD_ID, timestamp);
-
- meta_compositor_grab_end (compositor);
-
- g_signal_emit_by_name (display, "grab-op-end",
- grab_window, grab_op);
-}
-
static void
redirect_windows (MetaX11Display *x11_display)
{
diff --git a/src/compositor/meta-plugin.c b/src/compositor/meta-plugin.c
index 188675a4d0..7f000b6537 100644
--- a/src/compositor/meta-plugin.c
+++ b/src/compositor/meta-plugin.c
@@ -135,58 +135,6 @@ meta_plugin_destroy_completed (MetaPlugin *plugin,
meta_plugin_window_effect_completed (plugin, actor, META_PLUGIN_DESTROY);
}
-/**
- * meta_plugin_begin_modal:
- * @plugin: a #MetaPlugin
- * @options: flags that modify the behavior of the modal grab
- * @timestamp: the timestamp used for establishing grabs
- *
- * This function is used to grab the keyboard and mouse for the exclusive
- * use of the plugin. Correct operation requires that both the keyboard
- * and mouse are grabbed, or thing will break. (In particular, other
- * passive X grabs in Meta can trigger but not be handled by the normal
- * keybinding handling code.) However, the plugin can establish the keyboard
- * and/or mouse grabs ahead of time and pass in the
- * %META_MODAL_POINTER_ALREADY_GRABBED and/or %META_MODAL_KEYBOARD_ALREADY_GRABBED
- * options. This facility is provided for two reasons: first to allow using
- * this function to establish modality after a passive grab, and second to
- * allow using obscure features of XGrabPointer() and XGrabKeyboard() without
- * having to add them to this API.
- *
- * Return value: whether we successfully grabbed the keyboard and
- * mouse and made the plugin modal.
- */
-gboolean
-meta_plugin_begin_modal (MetaPlugin *plugin,
- MetaModalOptions options,
- guint32 timestamp)
-{
- MetaPluginPrivate *priv = meta_plugin_get_instance_private (plugin);
-
- return meta_begin_modal_for_plugin (priv->compositor, plugin,
- options, timestamp);
-}
-
-/**
- * meta_plugin_end_modal:
- * @plugin: a #MetaPlugin
- * @timestamp: the time used for releasing grabs
- *
- * Ends the modal operation begun with meta_plugin_begin_modal(). This
- * ungrabs both the mouse and keyboard even when
- * %META_MODAL_POINTER_ALREADY_GRABBED or
- * %META_MODAL_KEYBOARD_ALREADY_GRABBED were provided as options
- * when beginnning the modal operation.
- */
-void
-meta_plugin_end_modal (MetaPlugin *plugin,
- guint32 timestamp)
-{
- MetaPluginPrivate *priv = meta_plugin_get_instance_private (plugin);
-
- meta_end_modal_for_plugin (priv->compositor, plugin, timestamp);
-}
-
/**
* meta_plugin_get_display:
* @plugin: a #MetaPlugin
diff --git a/src/meta/meta-plugin.h b/src/meta/meta-plugin.h
index 1bc19a5f0e..663a75fa9d 100644
--- a/src/meta/meta-plugin.h
+++ b/src/meta/meta-plugin.h
@@ -332,32 +332,6 @@ void
meta_plugin_complete_display_change (MetaPlugin *plugin,
gboolean ok);
-/**
- * MetaModalOptions:
- * @META_MODAL_POINTER_ALREADY_GRABBED: if set the pointer is already
- * grabbed by the plugin and should not be grabbed again.
- * @META_MODAL_KEYBOARD_ALREADY_GRABBED: if set the keyboard is already
- * grabbed by the plugin and should not be grabbed again.
- *
- * Options that can be provided when calling meta_plugin_begin_modal().
- */
-typedef enum
-{
- META_MODAL_POINTER_ALREADY_GRABBED = 1 << 0,
- META_MODAL_KEYBOARD_ALREADY_GRABBED = 1 << 1
-} MetaModalOptions;
-
-META_EXPORT
-gboolean
-meta_plugin_begin_modal (MetaPlugin *plugin,
- MetaModalOptions options,
- guint32 timestamp);
-
-META_EXPORT
-void
-meta_plugin_end_modal (MetaPlugin *plugin,
- guint32 timestamp);
-
META_EXPORT
MetaDisplay *meta_plugin_get_display (MetaPlugin *plugin);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]