diff options
author | Owen Taylor <otaylor@redhat.com> | 2000-07-06 16:20:45 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2000-07-06 16:20:45 +0000 |
commit | 0611f06b5ad90258d274dfb64ba07171cbd053d5 (patch) | |
tree | ae28a3757caa4dda3d0250580f287ac617992edc /gdk | |
parent | f60e216527a0972d8022ae7e1b836c3f1e96af12 (diff) | |
download | gtk+-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')
-rw-r--r-- | gdk/gdk.h | 24 | ||||
-rw-r--r-- | gdk/gdktypes.h | 13 | ||||
-rw-r--r-- | gdk/linux-fb/gdkmain-fb.c | 8 | ||||
-rw-r--r-- | gdk/nanox/gdkmain-nanox.c | 4 | ||||
-rw-r--r-- | gdk/win32/gdkevents-win32.c | 20 | ||||
-rw-r--r-- | gdk/win32/gdkinput-win32.c | 4 | ||||
-rw-r--r-- | gdk/win32/gdkwin32.h | 9 | ||||
-rw-r--r-- | gdk/x11/gdkinput-xfree.c | 2 | ||||
-rw-r--r-- | gdk/x11/gdkmain-x11.c | 46 |
9 files changed, 79 insertions, 51 deletions
@@ -88,18 +88,18 @@ gint gdk_input_add (gint source, gpointer data); void gdk_input_remove (gint tag); -gint gdk_pointer_grab (GdkWindow *window, - gboolean owner_events, - GdkEventMask event_mask, - GdkWindow *confine_to, - GdkCursor *cursor, - guint32 time); -void gdk_pointer_ungrab (guint32 time); -gint gdk_keyboard_grab (GdkWindow *window, - gboolean owner_events, - guint32 time); -void gdk_keyboard_ungrab (guint32 time); -gboolean gdk_pointer_is_grabbed (void); +GdkGrabStatus gdk_pointer_grab (GdkWindow *window, + gboolean owner_events, + GdkEventMask event_mask, + GdkWindow *confine_to, + GdkCursor *cursor, + guint32 time); +void gdk_pointer_ungrab (guint32 time); +GdkGrabStatus gdk_keyboard_grab (GdkWindow *window, + gboolean owner_events, + guint32 time); +void gdk_keyboard_ungrab (guint32 time); +gboolean gdk_pointer_is_grabbed (void); gint gdk_screen_width (void); gint gdk_screen_height (void); diff --git a/gdk/gdktypes.h b/gdk/gdktypes.h index 91112510fb..cf68139eef 100644 --- a/gdk/gdktypes.h +++ b/gdk/gdktypes.h @@ -145,6 +145,19 @@ typedef enum GDK_ERROR_MEM = -4 } GdkStatus; +/* We define specific numeric values for these constants, + * since old application code may depend on them matching the X values + * We don't actually depend on the matchup ourselves. + */ +typedef enum +{ + GDK_GRAB_SUCCESS = 0, + GDK_GRAB_ALREADY_GRABBED = 1, + GDK_GRAB_INVALID_TIME = 2, + GDK_GRAB_NOT_VIEWABLE = 3, + GDK_GRAB_FROZEN = 4 +} GdkGrabStatus; + typedef void (*GdkInputFunction) (gpointer data, gint source, GdkInputCondition condition); diff --git a/gdk/linux-fb/gdkmain-fb.c b/gdk/linux-fb/gdkmain-fb.c index 296e9b4354..a34e852e85 100644 --- a/gdk/linux-fb/gdkmain-fb.c +++ b/gdk/linux-fb/gdkmain-fb.c @@ -155,7 +155,7 @@ _gdk_windowing_init_check (int argc, char **argv) *-------------------------------------------------------------- */ -gint +GdkGrabStatus gdk_pointer_grab (GdkWindow * window, gint owner_events, GdkEventMask event_mask, @@ -183,7 +183,7 @@ gdk_pointer_grab (GdkWindow * window, if(cursor) gdk_fb_cursor_unhide(); - return 0; + return GDK_GRAB_SUCCESS; } /* @@ -266,7 +266,7 @@ gdk_pointer_is_grabbed (void) *-------------------------------------------------------------- */ -gint +GdkGrabStatus gdk_keyboard_grab (GdkWindow * window, gint owner_events, guint32 time) @@ -280,7 +280,7 @@ gdk_keyboard_grab (GdkWindow * window, if(!owner_events) _gdk_fb_keyboard_grab_window = gdk_window_ref(window); - return 0; + return GDK_GRAB_SUCCESS; } /* diff --git a/gdk/nanox/gdkmain-nanox.c b/gdk/nanox/gdkmain-nanox.c index 2892940354..08defba480 100644 --- a/gdk/nanox/gdkmain-nanox.c +++ b/gdk/nanox/gdkmain-nanox.c @@ -42,7 +42,7 @@ gdk_get_use_xshm (void) return gdk_use_xshm; } -gint +GdkGrabStatus gdk_pointer_grab (GdkWindow * window, gboolean owner_events, GdkEventMask event_mask, @@ -68,7 +68,7 @@ gdk_pointer_is_grabbed (void) return gdk_xgrab_window != NULL; } -gint +GdkGrabStatus gdk_keyboard_grab (GdkWindow * window, gboolean owner_events, guint32 time) diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 427c06b52b..193f0cbb1d 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -472,7 +472,7 @@ event_mask_string (GdkEventMask mask) *-------------------------------------------------------------- */ -gint +GdkGrabStatus gdk_pointer_grab (GdkWindow * window, gboolean owner_events, GdkEventMask event_mask, @@ -511,9 +511,9 @@ gdk_pointer_grab (GdkWindow * window, confine_to, time); else - return_val = Success; + return_val = GDK_GRAB_SUCCESS; - if (return_val == Success) + if (return_val == GDK_GRAB_SUCCESS) { if (!GDK_DRAWABLE_DESTROYED (window)) { @@ -531,13 +531,13 @@ gdk_pointer_grab (GdkWindow * window, */ SetCapture (xwindow); #endif - return_val = GrabSuccess; + return_val = GDK_GRAB_SUCCESS; } else - return_val = AlreadyGrabbed; + return_val = GDK_GRAB_ALREADY_GRABBED; } - if (return_val == GrabSuccess) + if (return_val == GDK_GRAB_SUCCESS) { p_grab_window = window; p_grab_cursor = xcursor; @@ -616,7 +616,7 @@ gdk_pointer_is_grabbed (void) *-------------------------------------------------------------- */ -gint +GdkGrabStatus gdk_keyboard_grab (GdkWindow * window, gboolean owner_events, guint32 time) @@ -632,12 +632,12 @@ gdk_keyboard_grab (GdkWindow * window, if (!GDK_DRAWABLE_DESTROYED (window)) { k_grab_owner_events = owner_events != 0; - return_val = GrabSuccess; + return_val = GDK_GRAB_SUCCESS; } else - return_val = AlreadyGrabbed; + return_val = GDK_GRAB_ALREADY_GRABBED; - if (return_val == GrabSuccess) + if (return_val == GDK_GRAB_SUCCESS) k_grab_window = window; return return_val; diff --git a/gdk/win32/gdkinput-win32.c b/gdk/win32/gdkinput-win32.c index 30c2dd8773..005845d42a 100644 --- a/gdk/win32/gdkinput-win32.c +++ b/gdk/win32/gdkinput-win32.c @@ -1326,7 +1326,7 @@ gdk_input_win32_grab_pointer (GdkWindow *window, /* FIXME: if failure occurs on something other than the first device, things will be badly inconsistent */ - if (result != Success) + if (result != GDK_GRAB_SUCCESS) return result; #endif } @@ -1353,7 +1353,7 @@ gdk_input_win32_grab_pointer (GdkWindow *window, } } - return Success; + return GDK_GRAB_SUCCESS; } diff --git a/gdk/win32/gdkwin32.h b/gdk/win32/gdkwin32.h index cc99aa97c6..70e63f21cb 100644 --- a/gdk/win32/gdkwin32.h +++ b/gdk/win32/gdkwin32.h @@ -152,15 +152,6 @@ /* Define corresponding Windows types for some X11 types, just for laziness. */ typedef PALETTEENTRY XColor; -/* Define some of the X11 constants also here, again just for laziness */ - -/* Error codes */ -#define Success 0 - -/* Grabbing status */ -#define GrabSuccess 0 -#define AlreadyGrabbed 2 - /* Some structs are somewhat useful to emulate internally, just to * keep the code less #ifdefed. */ 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); } /* |