summaryrefslogtreecommitdiff
path: root/gdk/x11
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2000-07-06 16:20:45 +0000
committerOwen Taylor <otaylor@src.gnome.org>2000-07-06 16:20:45 +0000
commit0611f06b5ad90258d274dfb64ba07171cbd053d5 (patch)
treeae28a3757caa4dda3d0250580f287ac617992edc /gdk/x11
parentf60e216527a0972d8022ae7e1b836c3f1e96af12 (diff)
downloadgtk+-0611f06b5ad90258d274dfb64ba07171cbd053d5.tar.gz
Patch from George Liebl to add a GdkGrabStatus enumeration to use as a
Thu Jul 6 11:54:03 2000 Owen Taylor <otaylor@redhat.com> * gdk/gdk.h gdk/gdktypes.h gdk/linux-fb/gdkmain-fb.c gdk/nanox/gdkmain-nanox.c gdk/win32/gdkevents-win32.c gdk/win32/gdkinput-win32.c gdk/win32/gdkwin32.h gdk/x11/gdkmain-x11.c: Patch from George Liebl to add a GdkGrabStatus enumeration to use as a return value of gdk_*_grab(). Previously, we just returned the X11 values directly.
Diffstat (limited to 'gdk/x11')
-rw-r--r--gdk/x11/gdkinput-xfree.c2
-rw-r--r--gdk/x11/gdkmain-x11.c46
2 files changed, 36 insertions, 12 deletions
diff --git a/gdk/x11/gdkinput-xfree.c b/gdk/x11/gdkinput-xfree.c
index c0b0fe9725..64c3070cf3 100644
--- a/gdk/x11/gdkinput-xfree.c
+++ b/gdk/x11/gdkinput-xfree.c
@@ -314,7 +314,7 @@ _gdk_input_grab_pointer (GdkWindow * window,
void
_gdk_input_ungrab_pointer (guint32 time)
{
- GdkInputWindow *input_window;
+ GdkInputWindow *input_window = NULL; /* Quiet GCC */
GdkDevicePrivate *gdkdev;
GList *tmp_list;
diff --git a/gdk/x11/gdkmain-x11.c b/gdk/x11/gdkmain-x11.c
index 7b48264b60..e40866751e 100644
--- a/gdk/x11/gdkmain-x11.c
+++ b/gdk/x11/gdkmain-x11.c
@@ -202,6 +202,26 @@ gdk_get_use_xshm (void)
return gdk_use_xshm;
}
+static GdkGrabStatus
+gdk_x11_convert_grab_status (gint status)
+{
+ switch (status)
+ {
+ case GrabSuccess:
+ return GDK_GRAB_SUCCESS;
+ case AlreadyGrabbed:
+ return GDK_GRAB_ALREADY_GRABBED;
+ case GrabInvalidTime:
+ return GDK_GRAB_INVALID_TIME;
+ case GrabNotViewable:
+ return GDK_GRAB_NOT_VIEWABLE;
+ case GrabFrozen:
+ return GDK_GRAB_FROZEN;
+ }
+
+ g_assert_not_reached();
+}
+
/*
*--------------------------------------------------------------
* gdk_pointer_grab
@@ -225,7 +245,7 @@ gdk_get_use_xshm (void)
*--------------------------------------------------------------
*/
-gint
+GdkGrabStatus
gdk_pointer_grab (GdkWindow * window,
gboolean owner_events,
GdkEventMask event_mask,
@@ -273,7 +293,7 @@ gdk_pointer_grab (GdkWindow * window,
confine_to,
time);
- if (return_val == Success)
+ if (return_val == GrabSuccess)
{
if (!GDK_WINDOW_DESTROYED (window))
return_val = XGrabPointer (GDK_WINDOW_XDISPLAY (window),
@@ -290,8 +310,8 @@ gdk_pointer_grab (GdkWindow * window,
if (return_val == GrabSuccess)
gdk_xgrab_window = (GdkWindowObject *)window;
-
- return return_val;
+
+ return gdk_x11_convert_grab_status (return_val);
}
/*
@@ -359,22 +379,26 @@ gdk_pointer_is_grabbed (void)
*--------------------------------------------------------------
*/
-gint
+GdkGrabStatus
gdk_keyboard_grab (GdkWindow * window,
gboolean owner_events,
guint32 time)
{
+ gint return_val;
+
g_return_val_if_fail (window != NULL, 0);
g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
if (!GDK_WINDOW_DESTROYED (window))
- return XGrabKeyboard (GDK_WINDOW_XDISPLAY (window),
- GDK_WINDOW_XID (window),
- owner_events,
- GrabModeAsync, GrabModeAsync,
- time);
+ return_val = XGrabKeyboard (GDK_WINDOW_XDISPLAY (window),
+ GDK_WINDOW_XID (window),
+ owner_events,
+ GrabModeAsync, GrabModeAsync,
+ time);
else
- return AlreadyGrabbed;
+ return_val = AlreadyGrabbed;
+
+ return gdk_x11_convert_grab_status (return_val);
}
/*