[gtk+/xi2: 1168/1239] Merge together gdk_[keyboard|pointer]_grab_info_libgtk_only.
- From: Carlos Garnacho <carlosg src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+/xi2: 1168/1239] Merge together gdk_[keyboard|pointer]_grab_info_libgtk_only.
- Date: Tue, 29 Sep 2009 10:57:09 +0000 (UTC)
commit 87199cdd0f153579b9b7889bf1a2824f4739626a
Author: Carlos Garnacho <carlos gnome org>
Date: Wed Sep 16 12:26:08 2009 +0200
Merge together gdk_[keyboard|pointer]_grab_info_libgtk_only.
Now there is a single gdk_device_grab_info_libgtk_only, which GTK+ uses.
gdk/gdk.h | 10 +++-----
gdk/gdk.symbols | 3 +-
gdk/gdkdisplay.c | 65 ++++++++++--------------------------------------------
gtk/gtkmain.c | 26 ++++++++-------------
4 files changed, 27 insertions(+), 77 deletions(-)
---
diff --git a/gdk/gdk.h b/gdk/gdk.h
index 77482ef..70bca89 100644
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -132,12 +132,10 @@ GdkGrabStatus gdk_device_grab (GdkDevice *device,
GdkCursor *cursor,
guint32 time_);
-gboolean gdk_pointer_grab_info_libgtk_only (GdkDisplay *display,
- GdkWindow **grab_window,
- gboolean *owner_events);
-gboolean gdk_keyboard_grab_info_libgtk_only (GdkDisplay *display,
- GdkWindow **grab_window,
- gboolean *owner_events);
+gboolean gdk_device_grab_info_libgtk_only (GdkDisplay *display,
+ GdkDevice *device,
+ GdkWindow **grab_window,
+ gboolean *owner_events);
#ifndef GDK_MULTIHEAD_SAFE
void gdk_pointer_ungrab (guint32 time_);
diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols
index 3a6ce4e..948723d 100644
--- a/gdk/gdk.symbols
+++ b/gdk/gdk.symbols
@@ -83,8 +83,7 @@ gdk_pointer_is_grabbed
gdk_pointer_ungrab
gdk_event_send_client_message
gdk_event_send_clientmessage_toall
-gdk_keyboard_grab_info_libgtk_only
-gdk_pointer_grab_info_libgtk_only
+gdk_device_grab_info_libgtk_only
gdk_display_pointer_is_grabbed
#endif
#endif
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
index ede927e..6b8b3de 100644
--- a/gdk/gdkdisplay.c
+++ b/gdk/gdkdisplay.c
@@ -1569,72 +1569,32 @@ _gdk_display_pointer_info_foreach (GdkDisplay *display,
}
/**
- * gdk_keyboard_grab_info_libgtk_only:
+ * gdk_device_grab_info_libgtk_only:
* @display: the display for which to get the grab information
+ * @device: device to get the grab information from
* @grab_window: location to store current grab window
* @owner_events: location to store boolean indicating whether
- * the @owner_events flag to gdk_keyboard_grab() was %TRUE.
- *
+ * the @owner_events flag to gdk_keyboard_grab() or
+ * gdk_pointer_grab() was %TRUE.
+ *
* Determines information about the current keyboard grab.
* This is not public API and must not be used by applications.
- *
+ *
* Return value: %TRUE if this application currently has the
* keyboard grabbed.
**/
gboolean
-gdk_keyboard_grab_info_libgtk_only (GdkDisplay *display,
- GdkWindow **grab_window,
- gboolean *owner_events)
+gdk_device_grab_info_libgtk_only (GdkDisplay *display,
+ GdkDevice *device,
+ GdkWindow **grab_window,
+ gboolean *owner_events)
{
GdkDeviceGrabInfo *info;
- /* FIXME: merge this and the pointer function */
g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
+ g_return_val_if_fail (GDK_IS_DEVICE (device), FALSE);
- /* FIXME: which device? */
- info = _gdk_display_get_last_device_grab (display,
- gdk_device_get_relative (display->core_pointer));
-
- if (info)
- {
- if (grab_window)
- *grab_window = info->window;
- if (owner_events)
- *owner_events = info->owner_events;
-
- return TRUE;
- }
- else
- return FALSE;
-}
-
-/**
- * gdk_pointer_grab_info_libgtk_only:
- * @display: the #GdkDisplay for which to get the grab information
- * @grab_window: location to store current grab window
- * @owner_events: location to store boolean indicating whether
- * the @owner_events flag to gdk_pointer_grab() was %TRUE.
- *
- * Determines information about the current pointer grab.
- * This is not public API and must not be used by applications.
- *
- * Return value: %TRUE if this application currently has the
- * pointer grabbed.
- **/
-gboolean
-gdk_pointer_grab_info_libgtk_only (GdkDisplay *display,
- GdkWindow **grab_window,
- gboolean *owner_events)
-{
- GdkDeviceGrabInfo *info;
-
- g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
-
- /* What we're interested in is the steady state (ie last grab),
- because we're interested e.g. if we grabbed so that we
- can ungrab, even if our grab is not active just yet. */
- /* FIXME: which device? */
- info = _gdk_display_get_last_device_grab (display, display->core_pointer);
+ info = _gdk_display_get_last_device_grab (display, device);
if (info)
{
@@ -1649,7 +1609,6 @@ gdk_pointer_grab_info_libgtk_only (GdkDisplay *display,
return FALSE;
}
-
/**
* gdk_display_pointer_is_grabbed:
* @display: a #GdkDisplay
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index 11aee08..5bc077b 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -1314,12 +1314,10 @@ gtk_main_iteration_do (gboolean blocking)
/* private libgtk to libgdk interfaces
*/
-gboolean gdk_pointer_grab_info_libgtk_only (GdkDisplay *display,
- GdkWindow **grab_window,
- gboolean *owner_events);
-gboolean gdk_keyboard_grab_info_libgtk_only (GdkDisplay *display,
- GdkWindow **grab_window,
- gboolean *owner_events);
+gboolean gdk_device_grab_info_libgtk_only (GdkDisplay *display,
+ GdkDevice *device,
+ GdkWindow **grab_window,
+ gboolean *owner_events);
static void
rewrite_events_translate (GdkWindow *old_window,
@@ -1394,6 +1392,7 @@ rewrite_event_for_grabs (GdkEvent *event)
gpointer grab_widget_ptr;
gboolean owner_events;
GdkDisplay *display;
+ GdkDevice *device;
switch (event->type)
{
@@ -1405,20 +1404,15 @@ rewrite_event_for_grabs (GdkEvent *event)
case GDK_MOTION_NOTIFY:
case GDK_PROXIMITY_IN:
case GDK_PROXIMITY_OUT:
- display = gdk_drawable_get_display (event->proximity.window);
- if (!gdk_pointer_grab_info_libgtk_only (display, &grab_window, &owner_events) ||
- !owner_events)
- return NULL;
- break;
-
case GDK_KEY_PRESS:
case GDK_KEY_RELEASE:
- display = gdk_drawable_get_display (event->key.window);
- if (!gdk_keyboard_grab_info_libgtk_only (display, &grab_window, &owner_events) ||
+ display = gdk_drawable_get_display (event->any.window);
+ device = gdk_event_get_device (event);
+
+ if (!gdk_device_grab_info_libgtk_only (display, device, &grab_window, &owner_events) ||
!owner_events)
- return NULL;
+ return NULL;
break;
-
default:
return NULL;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]