[mutter] wayland: Simplify popup grabbing API
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] wayland: Simplify popup grabbing API
- Date: Tue, 3 May 2016 02:17:56 +0000 (UTC)
commit e68b5f6655748764aa2f635f889953799009b1cc
Author: Jonas Ådahl <jadahl gmail com>
Date: Wed Jan 20 12:40:14 2016 +0800
wayland: Simplify popup grabbing API
meta_wayland_popup_grab_create() creates and begins the grab and
meta_wayland_popup_grab_destroy() both ends and destroys the grab.
https://bugzilla.gnome.org/show_bug.cgi?id=763431
src/wayland/meta-wayland-pointer.c | 8 +-------
src/wayland/meta-wayland-popup.c | 15 +++++++++++++--
src/wayland/meta-wayland-popup.h | 7 +------
3 files changed, 15 insertions(+), 15 deletions(-)
---
diff --git a/src/wayland/meta-wayland-pointer.c b/src/wayland/meta-wayland-pointer.c
index b4a36b4..6ae5754 100644
--- a/src/wayland/meta-wayland-pointer.c
+++ b/src/wayland/meta-wayland-pointer.c
@@ -885,7 +885,6 @@ meta_wayland_pointer_end_popup_grab (MetaWaylandPointer *pointer)
{
MetaWaylandPopupGrab *popup_grab = (MetaWaylandPopupGrab*)pointer->grab;
- meta_wayland_popup_grab_end (popup_grab);
meta_wayland_popup_grab_destroy (popup_grab);
}
@@ -900,12 +899,7 @@ meta_wayland_pointer_start_popup_grab (MetaWaylandPointer *pointer,
return NULL;
if (pointer->grab == &pointer->default_grab)
- {
- struct wl_client *client = wl_resource_get_client (surface->resource);
-
- grab = meta_wayland_popup_grab_create (pointer, client);
- meta_wayland_popup_grab_begin (grab, surface);
- }
+ grab = meta_wayland_popup_grab_create (pointer, surface);
else
grab = (MetaWaylandPopupGrab*)pointer->grab;
diff --git a/src/wayland/meta-wayland-popup.c b/src/wayland/meta-wayland-popup.c
index f3d47ae..174a6d8 100644
--- a/src/wayland/meta-wayland-popup.c
+++ b/src/wayland/meta-wayland-popup.c
@@ -67,6 +67,13 @@ struct _MetaWaylandPopup
};
static void
+meta_wayland_popup_grab_begin (MetaWaylandPopupGrab *grab,
+ MetaWaylandSurface *surface);
+
+static void
+meta_wayland_popup_grab_end (MetaWaylandPopupGrab *grab);
+
+static void
popup_grab_focus (MetaWaylandPointerGrab *grab,
MetaWaylandSurface *surface)
{
@@ -109,8 +116,9 @@ static MetaWaylandPointerGrabInterface popup_grab_interface = {
MetaWaylandPopupGrab *
meta_wayland_popup_grab_create (MetaWaylandPointer *pointer,
- struct wl_client *client)
+ MetaWaylandSurface *surface)
{
+ struct wl_client *client = wl_resource_get_client (surface->resource);
MetaWaylandPopupGrab *grab;
grab = g_slice_new0 (MetaWaylandPopupGrab);
@@ -119,16 +127,19 @@ meta_wayland_popup_grab_create (MetaWaylandPointer *pointer,
grab->grab_client = client;
wl_list_init (&grab->all_popups);
+ meta_wayland_popup_grab_begin (grab, surface);
+
return grab;
}
void
meta_wayland_popup_grab_destroy (MetaWaylandPopupGrab *grab)
{
+ meta_wayland_popup_grab_end (grab);
g_slice_free (MetaWaylandPopupGrab, grab);
}
-void
+static void
meta_wayland_popup_grab_begin (MetaWaylandPopupGrab *grab,
MetaWaylandSurface *surface)
{
diff --git a/src/wayland/meta-wayland-popup.h b/src/wayland/meta-wayland-popup.h
index 0bee220..7e4a3a3 100644
--- a/src/wayland/meta-wayland-popup.h
+++ b/src/wayland/meta-wayland-popup.h
@@ -28,15 +28,10 @@
#include "meta-wayland-pointer.h"
MetaWaylandPopupGrab *meta_wayland_popup_grab_create (MetaWaylandPointer *pointer,
- struct wl_client *client);
+ MetaWaylandSurface *surface);
void meta_wayland_popup_grab_destroy (MetaWaylandPopupGrab *grab);
-void meta_wayland_popup_grab_begin (MetaWaylandPopupGrab *grab,
- MetaWaylandSurface *surface);
-
-void meta_wayland_popup_grab_end (MetaWaylandPopupGrab *grab);
-
MetaWaylandSurface *meta_wayland_popup_grab_get_top_popup (MetaWaylandPopupGrab *grab);
gboolean meta_wayland_pointer_grab_is_popup_grab (MetaWaylandPointerGrab *grab);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]