diff options
-rw-r--r-- | gdk/x11/gdkasync.c | 4 | ||||
-rw-r--r-- | gdk/x11/gdkdevice-xi.c | 4 | ||||
-rw-r--r-- | gdk/x11/gdkdisplay-x11.c | 32 | ||||
-rw-r--r-- | gdk/x11/gdkdnd-x11.c | 157 | ||||
-rw-r--r-- | gdk/x11/gdkmain-x11.c | 4 | ||||
-rw-r--r-- | gdk/x11/gdkproperty-x11.c | 4 | ||||
-rw-r--r-- | gdk/x11/gdkscreen-x11.c | 22 | ||||
-rw-r--r-- | gdk/x11/gdktestutils-x11.c | 8 | ||||
-rw-r--r-- | gdk/x11/gdkwindow-x11.c | 29 |
9 files changed, 135 insertions, 129 deletions
diff --git a/gdk/x11/gdkasync.c b/gdk/x11/gdkasync.c index 2f591b0906..795438b411 100644 --- a/gdk/x11/gdkasync.c +++ b/gdk/x11/gdkasync.c @@ -653,12 +653,12 @@ _gdk_x11_get_window_child_info (GdkDisplay *display, state.children = NULL; state.nchildren = 0; - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); result = list_children_and_wm_state (dpy, window, win_has_wm_state ? wm_state_atom : None, &has_wm_state, &state.children, &state.nchildren); - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_pop_ignored (display); if (!result) { g_free (state.children); diff --git a/gdk/x11/gdkdevice-xi.c b/gdk/x11/gdkdevice-xi.c index e7dfb0ca6a..19e8ff1177 100644 --- a/gdk/x11/gdkdevice-xi.c +++ b/gdk/x11/gdkdevice-xi.c @@ -151,11 +151,11 @@ gdk_device_xi_constructed (GObject *object) device = GDK_DEVICE_XI (object); display = gdk_device_get_display (GDK_DEVICE (object)); - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); device->xdevice = XOpenDevice (GDK_DISPLAY_XDISPLAY (display), device->device_id); - if (gdk_error_trap_pop ()) + if (gdk_x11_display_error_trap_pop (display)) g_warning ("Device %s can't be opened", gdk_device_get_name (GDK_DEVICE (device))); diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 8dfb40aaf4..11b3ebe843 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -255,14 +255,14 @@ gdk_check_wm_desktop_changed (GdkWindow *window) gulong *desktop; type = None; - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XID (window), gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_DESKTOP"), 0, G_MAXLONG, False, XA_CARDINAL, &type, &format, &nitems, &bytes_after, &data); - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_pop_ignored (display); if (type != None) { @@ -298,12 +298,12 @@ gdk_check_wm_state_changed (GdkWindow *window) toplevel->have_fullscreen = FALSE; type = None; - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XID (window), gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_STATE"), 0, G_MAXLONG, False, XA_ATOM, &type, &format, &nitems, &bytes_after, &data); - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_pop_ignored (display); if (type != None) { @@ -709,7 +709,7 @@ gdk_display_x11_translate_event (GdkEventTranslator *translator, gint ty = 0; Window child_window = 0; - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); if (XTranslateCoordinates (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window), screen_x11->xroot_window, @@ -720,7 +720,7 @@ gdk_display_x11_translate_event (GdkEventTranslator *translator, event->configure.x = tx; event->configure.y = ty; } - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_pop_ignored (display); } else { @@ -1346,11 +1346,11 @@ _gdk_x11_display_open (const gchar *display_name) int rootx, rooty, winx, winy; unsigned int xmask; - gdk_error_trap_push (); - XQueryPointer (display_x11->xdisplay, + gdk_x11_display_error_trap_push (display); + XQueryPointer (display_x11->xdisplay, GDK_SCREEN_X11 (display_x11->default_screen)->xroot_window, &root, &child, &rootx, &rooty, &winx, &winy, &xmask); - if (G_UNLIKELY (gdk_error_trap_pop () == BadWindow)) + if (G_UNLIKELY (gdk_x11_display_error_trap_pop (display) == BadWindow)) { g_warning ("Connection to display %s appears to be untrusted. Pointer and keyboard grabs and inter-client communication may not work as expected.", gdk_display_get_name (display)); display_x11->trusted_client = FALSE; @@ -2144,14 +2144,14 @@ gdk_x11_display_store_clipboard (GdkDisplay *display, clipboard_manager = gdk_x11_get_xatom_by_name_for_display (display, "CLIPBOARD_MANAGER"); save_targets = gdk_x11_get_xatom_by_name_for_display (display, "SAVE_TARGETS"); - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); if (XGetSelectionOwner (display_x11->xdisplay, clipboard_manager) != None) { Atom property_name = None; Atom *xatoms; int i; - + if (n_targets > 0) { property_name = gdk_x11_atom_to_xatom_for_display (display, _gdk_selection_property); @@ -2166,13 +2166,13 @@ gdk_x11_display_store_clipboard (GdkDisplay *display, g_free (xatoms); } - + XConvertSelection (display_x11->xdisplay, - clipboard_manager, save_targets, property_name, - GDK_WINDOW_XID (clipboard_window), time_); - + clipboard_manager, save_targets, property_name, + GDK_WINDOW_XID (clipboard_window), time_); + } - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_pop_ignored (display); } diff --git a/gdk/x11/gdkdnd-x11.c b/gdk/x11/gdkdnd-x11.c index 0cba36a2fd..534f5de451 100644 --- a/gdk/x11/gdkdnd-x11.c +++ b/gdk/x11/gdkdnd-x11.c @@ -567,6 +567,7 @@ static void gdk_window_cache_destroy (GdkWindowCache *cache) { GdkWindow *root_window = gdk_screen_get_root_window (cache->screen); + GdkDisplay *display; XSelectInput (GDK_WINDOW_XDISPLAY (root_window), GDK_WINDOW_XID (root_window), @@ -574,12 +575,11 @@ gdk_window_cache_destroy (GdkWindowCache *cache) gdk_window_remove_filter (root_window, gdk_window_cache_filter, cache); gdk_window_remove_filter (NULL, gdk_window_cache_shape_filter, cache); - gdk_error_trap_push (); - - g_list_foreach (cache->children, (GFunc)free_cache_child, - gdk_screen_get_display (cache->screen)); + display = gdk_screen_get_display (cache->screen); - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_push (display); + g_list_foreach (cache->children, (GFunc)free_cache_child, display); + gdk_x11_display_error_trap_pop_ignored (display); g_list_free (cache->children); g_hash_table_destroy (cache->child_hash); @@ -682,7 +682,7 @@ get_client_window_at_coords_recurse (GdkDisplay *display, return None; } -static Window +static Window get_client_window_at_coords (GdkWindowCache *cache, Window ignore, gint x_root, @@ -690,9 +690,12 @@ get_client_window_at_coords (GdkWindowCache *cache, { GList *tmp_list; Window retval = None; + GdkDisplay *display; + + display = gdk_screen_get_display (cache->screen); + + gdk_x11_display_error_trap_push (display); - gdk_error_trap_push (); - tmp_list = cache->children; while (tmp_list && !retval) @@ -704,8 +707,6 @@ get_client_window_at_coords (GdkWindowCache *cache, if ((x_root >= child->x) && (x_root < child->x + child->width) && (y_root >= child->y) && (y_root < child->y + child->height)) { - GdkDisplay *display = gdk_screen_get_display (cache->screen); - if (!is_pointer_within_shape (display, child, x_root - child->x, y_root - child->y)) @@ -725,7 +726,7 @@ get_client_window_at_coords (GdkWindowCache *cache, tmp_list = tmp_list->next; } - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_pop_ignored (display); if (retval) return retval; @@ -1028,36 +1029,38 @@ motif_read_target_table (GdkDisplay *display) guchar *p; gboolean success = FALSE; - gdk_error_trap_push (); - XGetWindowProperty (display_x11->xdisplay, - display_x11->motif_drag_window, - motif_drag_targets_atom, - 0, (sizeof(MotifTargetTableHeader)+3)/4, FALSE, - motif_drag_targets_atom, - &type, &format, &nitems, &bytes_after, - &data); + gdk_x11_display_error_trap_push (display); + XGetWindowProperty (display_x11->xdisplay, + display_x11->motif_drag_window, + motif_drag_targets_atom, + 0, (sizeof(MotifTargetTableHeader)+3)/4, FALSE, + motif_drag_targets_atom, + &type, &format, &nitems, &bytes_after, + &data); - if (gdk_error_trap_pop () || (format != 8) || (nitems < sizeof (MotifTargetTableHeader))) - goto error; + if (gdk_x11_display_error_trap_pop (display) || + (format != 8) || (nitems < sizeof (MotifTargetTableHeader))) + goto error; header = (MotifTargetTableHeader *)data; header->n_lists = card16_to_host (header->n_lists, header->byte_order); header->total_size = card32_to_host (header->total_size, header->byte_order); - gdk_error_trap_push (); - XGetWindowProperty (display_x11->xdisplay, - display_x11->motif_drag_window, - motif_drag_targets_atom, - (sizeof(MotifTargetTableHeader)+3)/4, - (header->total_size + 3)/4 - (sizeof(MotifTargetTableHeader) + 3)/4, - FALSE, - motif_drag_targets_atom, &type, &format, &nitems, - &bytes_after, &target_bytes); - - if (gdk_error_trap_pop () || (format != 8) || (bytes_after != 0) || - (nitems != header->total_size - sizeof(MotifTargetTableHeader))) - goto error; + gdk_x11_display_error_trap_push (display); + XGetWindowProperty (display_x11->xdisplay, + display_x11->motif_drag_window, + motif_drag_targets_atom, + (sizeof(MotifTargetTableHeader)+3)/4, + (header->total_size + 3)/4 - (sizeof(MotifTargetTableHeader) + 3)/4, + FALSE, + motif_drag_targets_atom, &type, &format, &nitems, + &bytes_after, &target_bytes); + + if (gdk_x11_display_error_trap_pop (display) || + (format != 8) || (bytes_after != 0) || + (nitems != header->total_size - sizeof(MotifTargetTableHeader))) + goto error; display_x11->motif_n_target_lists = header->n_lists; display_x11->motif_target_lists = g_new0 (GList *, display_x11->motif_n_target_lists); @@ -1067,7 +1070,7 @@ motif_read_target_table (GdkDisplay *display) { gint n_targets; guint32 *targets; - + if (p + sizeof(guint16) - target_bytes > nitems) goto error; @@ -1384,14 +1387,14 @@ motif_check_dest (GdkDisplay *display, unsigned long nitems, after; Atom motif_drag_receiver_info_atom = gdk_x11_get_xatom_by_name_for_display (display, "_MOTIF_DRAG_RECEIVER_INFO"); - gdk_error_trap_push (); - XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), win, - motif_drag_receiver_info_atom, - 0, (sizeof(*info)+3)/4, False, AnyPropertyType, - &type, &format, &nitems, &after, - &data); + gdk_x11_display_error_trap_push (display); + XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), win, + motif_drag_receiver_info_atom, + 0, (sizeof(*info)+3)/4, False, AnyPropertyType, + &type, &format, &nitems, &after, + &data); - if (gdk_error_trap_pop() == 0) + if (gdk_x11_display_error_trap_pop (display) == 0) { if (type != None) { @@ -1583,17 +1586,19 @@ motif_read_initiator_info (GdkDisplay *display, gulong bytes_after; guchar *data; MotifDragInitiatorInfo *initiator_info; - + GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (display); - - gdk_error_trap_push (); + + gdk_x11_display_error_trap_push (display); XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), source_window, atom, - 0, sizeof(*initiator_info), FALSE, - gdk_x11_get_xatom_by_name_for_display (display, "_MOTIF_DRAG_INITIATOR_INFO"), - &type, &format, &nitems, &bytes_after, - &data); + 0, sizeof(*initiator_info), FALSE, + gdk_x11_get_xatom_by_name_for_display (display, "_MOTIF_DRAG_INITIATOR_INFO"), + &type, &format, &nitems, &bytes_after, + &data); - if (gdk_error_trap_pop () || (format != 8) || (nitems != sizeof (MotifDragInitiatorInfo)) || (bytes_after != 0)) + if (gdk_x11_display_error_trap_pop (display) || + (format != 8) || (nitems != sizeof (MotifDragInitiatorInfo)) || + (bytes_after != 0)) { g_warning ("Error reading initiator info\n"); return FALSE; @@ -2533,13 +2538,12 @@ xdnd_check_dest (GdkDisplay *display, proxy = None; - gdk_error_trap_push (); - + gdk_x11_display_error_trap_push (display); if (XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), win, - xdnd_proxy_atom, 0, - 1, False, AnyPropertyType, - &type, &format, &nitems, &after, - &data) == Success) + xdnd_proxy_atom, 0, + 1, False, AnyPropertyType, + &type, &format, &nitems, &after, + &data) == Success) { if (type != None) { @@ -2582,7 +2586,7 @@ xdnd_check_dest (GdkDisplay *display, } } - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_pop_ignored (display); return retval ? (proxy ? proxy : win) : None; } @@ -2607,20 +2611,19 @@ xdnd_read_actions (GdkDragContextX11 *context_x11) { /* Get the XdndActionList, if set */ - gdk_error_trap_push (); - + gdk_x11_display_error_trap_push (display); if (XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), - GDK_WINDOW_XID (context->source_window), - gdk_x11_get_xatom_by_name_for_display (display, "XdndActionList"), - 0, 65536, - False, XA_ATOM, &type, &format, &nitems, - &after, &data) == Success && - type == XA_ATOM) - { - atoms = (Atom *)data; - - context->actions = 0; - + GDK_WINDOW_XID (context->source_window), + gdk_x11_get_xatom_by_name_for_display (display, "XdndActionList"), + 0, 65536, + False, XA_ATOM, &type, &format, &nitems, + &after, &data) == Success && + type == XA_ATOM) + { + atoms = (Atom *)data; + + context->actions = 0; + for (i = 0; i < nitems; i++) context->actions |= xdnd_action_from_atom (display, atoms[i]); @@ -2647,9 +2650,9 @@ xdnd_read_actions (GdkDragContextX11 *context_x11) } if (data) - XFree (data); - - gdk_error_trap_pop_ignored (); + XFree (data); + + gdk_x11_display_error_trap_pop_ignored (display); } else { @@ -2703,7 +2706,7 @@ xdnd_manage_source_filter (GdkDragContext *context, if (!GDK_WINDOW_DESTROYED (window) && gdk_window_get_window_type (window) == GDK_WINDOW_FOREIGN) { - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (GDK_WINDOW_DISPLAY (window)); if (add_filter) { @@ -2723,7 +2726,7 @@ xdnd_manage_source_filter (GdkDragContext *context, */ } - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_pop_ignored (GDK_WINDOW_DISPLAY (window)); } } @@ -2861,7 +2864,7 @@ xdnd_enter_filter (GdkXEvent *xev, context->targets = NULL; if (get_types) { - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); XGetWindowProperty (GDK_WINDOW_XDISPLAY (event->any.window), source_window, gdk_x11_get_xatom_by_name_for_display (display, "XdndTypeList"), @@ -2869,7 +2872,7 @@ xdnd_enter_filter (GdkXEvent *xev, False, XA_ATOM, &type, &format, &nitems, &after, &data); - if (gdk_error_trap_pop () || (format != 32) || (type != XA_ATOM)) + if (gdk_x11_display_error_trap_pop (display) || (format != 32) || (type != XA_ATOM)) { g_object_unref (context); diff --git a/gdk/x11/gdkmain-x11.c b/gdk/x11/gdkmain-x11.c index 31a08d4b4f..1bf9db8c52 100644 --- a/gdk/x11/gdkmain-x11.c +++ b/gdk/x11/gdkmain-x11.c @@ -488,12 +488,12 @@ _gdk_send_xevent (GdkDisplay *display, if (gdk_display_is_closed (display)) return FALSE; - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); result = XSendEvent (GDK_DISPLAY_XDISPLAY (display), window, propagate, event_mask, event_send); XSync (GDK_DISPLAY_XDISPLAY (display), False); - if (gdk_error_trap_pop ()) + if (gdk_x11_display_error_trap_pop (display)) return FALSE; return result; diff --git a/gdk/x11/gdkproperty-x11.c b/gdk/x11/gdkproperty-x11.c index 60774ed1ef..ca8a9a2e80 100644 --- a/gdk/x11/gdkproperty-x11.c +++ b/gdk/x11/gdkproperty-x11.c @@ -355,9 +355,9 @@ gdk_x11_xatom_to_atom_for_display (GdkDisplay *display, * we take precautions */ char *name; - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); name = XGetAtomName (GDK_DISPLAY_XDISPLAY (display), xatom); - if (gdk_error_trap_pop ()) + if (gdk_x11_display_error_trap_pop (display)) { g_warning (G_STRLOC " invalid X atom: %ld", xatom); } diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 8ff085960d..665138cd70 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -1104,7 +1104,7 @@ gdk_event_send_client_message_to_all_recurse (GdkDisplay *display, gboolean result = FALSE; int i; - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); if (XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), xid, gdk_x11_get_xatom_by_name_for_display (display, "WM_STATE"), @@ -1141,7 +1141,7 @@ gdk_event_send_client_message_to_all_recurse (GdkDisplay *display, result = send || found; out: - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_pop_ignored (display); return result; } @@ -1333,12 +1333,12 @@ fetch_net_wm_check_window (GdkScreen *screen) return; } - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); /* Find out if this WM goes away, so we can reset everything. */ XSelectInput (screen_x11->xdisplay, *xwindow, StructureNotifyMask); - error = gdk_error_trap_pop (); + error = gdk_x11_display_error_trap_pop (display); if (!error) { screen_x11->wmspec_check_window = *xwindow; @@ -1625,10 +1625,12 @@ const char* gdk_x11_screen_get_window_manager_name (GdkScreen *screen) { GdkScreenX11 *screen_x11; + GdkDisplay *display; screen_x11 = GDK_SCREEN_X11 (screen); + display = screen_x11->display; - if (!G_LIKELY (GDK_DISPLAY_X11 (screen_x11->display)->trusted_client)) + if (!G_LIKELY (GDK_DISPLAY_X11 (display)->trusted_client)) return screen_x11->window_manager_name; fetch_net_wm_check_window (screen); @@ -1651,20 +1653,20 @@ gdk_x11_screen_get_window_manager_name (GdkScreen *screen) name = NULL; - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (display); - XGetWindowProperty (GDK_DISPLAY_XDISPLAY (screen_x11->display), + XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), screen_x11->wmspec_check_window, - gdk_x11_get_xatom_by_name_for_display (screen_x11->display, + gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_NAME"), 0, G_MAXLONG, False, - gdk_x11_get_xatom_by_name_for_display (screen_x11->display, + gdk_x11_get_xatom_by_name_for_display (display, "UTF8_STRING"), &type, &format, &n_items, &bytes_after, (guchar **)&name); - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_pop_ignored (display); if (name != NULL) { diff --git a/gdk/x11/gdktestutils-x11.c b/gdk/x11/gdktestutils-x11.c index 960301b1e3..d21d321d81 100644 --- a/gdk/x11/gdktestutils-x11.c +++ b/gdk/x11/gdktestutils-x11.c @@ -147,7 +147,7 @@ gdk_test_simulate_key (GdkWindow *window, g_free (keys); if (!success) return FALSE; - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (GDK_WINDOW_DISPLAY (window)); xev.same_screen = XTranslateCoordinates (xev.display, xev.window, xev.root, xev.x, xev.y, &xev.x_root, &xev.y_root, &xev.subwindow); @@ -158,7 +158,7 @@ gdk_test_simulate_key (GdkWindow *window, success &= 0 != XWarpPointer (xev.display, None, xev.window, 0, 0, 0, 0, xev.x, xev.y); success &= 0 != XSendEvent (xev.display, xev.window, True, key_pressrelease == GDK_KEY_PRESS ? KeyPressMask : KeyReleaseMask, (XEvent*) &xev); XSync (xev.display, False); - success &= 0 == gdk_error_trap_pop(); + success &= 0 == gdk_x11_display_error_trap_pop (GDK_WINDOW_DISPLAY (window)); return success; } @@ -235,7 +235,7 @@ gdk_test_simulate_button (GdkWindow *window, xev.y_root = 0; xev.state = modifiers; xev.button = button; - gdk_error_trap_push (); + gdk_x11_display_error_trap_push (GDK_WINDOW_DISPLAY (window)); xev.same_screen = XTranslateCoordinates (xev.display, xev.window, xev.root, xev.x, xev.y, &xev.x_root, &xev.y_root, &xev.subwindow); @@ -245,6 +245,6 @@ gdk_test_simulate_button (GdkWindow *window, success &= 0 != XWarpPointer (xev.display, None, xev.window, 0, 0, 0, 0, xev.x, xev.y); success &= 0 != XSendEvent (xev.display, xev.window, True, button_pressrelease == GDK_BUTTON_PRESS ? ButtonPressMask : ButtonReleaseMask, (XEvent*) &xev); XSync (xev.display, False); - success &= 0 == gdk_error_trap_pop(); + success &= 0 == gdk_x11_display_error_trap_pop(GDK_WINDOW_DISPLAY (window)); return success; } diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index e7af2aa0ad..2798a58df7 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -2620,7 +2620,7 @@ gdk_x11_window_get_root_origin (GdkWindow *window, static void gdk_x11_window_get_frame_extents (GdkWindow *window, - GdkRectangle *rect) + GdkRectangle *rect) { GdkDisplay *display; GdkWindowImplX11 *impl; @@ -2641,14 +2641,14 @@ gdk_x11_window_get_frame_extents (GdkWindow *window, guint ww, wh, wb, wd; gint wx, wy; gboolean got_frame_extents = FALSE; - + g_return_if_fail (rect != NULL); - + rect->x = 0; rect->y = 0; rect->width = 1; rect->height = 1; - + while (window->parent && (window->parent)->parent) window = window->parent; @@ -2665,18 +2665,19 @@ gdk_x11_window_get_frame_extents (GdkWindow *window, nvroots = 0; vroots = NULL; - gdk_error_trap_push(); - display = gdk_window_get_display (window); + + gdk_x11_display_error_trap_push (display); + xwindow = GDK_WINDOW_XID (window); /* first try: use _NET_FRAME_EXTENTS */ if (XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), xwindow, - gdk_x11_get_xatom_by_name_for_display (display, - "_NET_FRAME_EXTENTS"), - 0, G_MAXLONG, False, XA_CARDINAL, &type_return, - &format_return, &nitems_return, &bytes_after_return, - &data) + gdk_x11_get_xatom_by_name_for_display (display, + "_NET_FRAME_EXTENTS"), + 0, G_MAXLONG, False, XA_CARDINAL, &type_return, + &format_return, &nitems_return, &bytes_after_return, + &data) == Success) { if ((type_return == XA_CARDINAL) && (format_return == 32) && @@ -2758,8 +2759,8 @@ gdk_x11_window_get_frame_extents (GdkWindow *window, } } while (xparent != root); - - if (XGetGeometry (GDK_DISPLAY_XDISPLAY (display), xwindow, + + if (XGetGeometry (GDK_DISPLAY_XDISPLAY (display), xwindow, &root, &wx, &wy, &ww, &wh, &wb, &wd)) { rect->x = wx; @@ -2772,7 +2773,7 @@ gdk_x11_window_get_frame_extents (GdkWindow *window, if (vroots) XFree (vroots); - gdk_error_trap_pop_ignored (); + gdk_x11_display_error_trap_pop_ignored (display); } static gboolean |