mirror of
https://github.com/brl/mutter.git
synced 2025-08-06 08:34:41 +00:00
Switch meta_error_trap functions to MetaX11Display
They are X11 specific functions, used for X11 code. They have been improved per jadahl's suggestion to use gdk_x11_lookup_xdisplay and gdk_x11_display_error_trap_* functions, instead of current code. https://bugzilla.gnome.org/show_bug.cgi?id=759538
This commit is contained in:

committed by
Jonas Ådahl

parent
18779109de
commit
dacc041d0c
@@ -1534,7 +1534,7 @@ request_xserver_input_focus_change (MetaDisplay *display,
|
||||
if (meta_display_timestamp_too_old (display, ×tamp))
|
||||
return;
|
||||
|
||||
meta_error_trap_push (display);
|
||||
meta_error_trap_push (display->x11_display);
|
||||
|
||||
/* In order for mutter to know that the focus request succeeded, we track
|
||||
* the serial of the "focus request" we made, but if we take the serial
|
||||
@@ -1567,7 +1567,7 @@ request_xserver_input_focus_change (MetaDisplay *display,
|
||||
serial,
|
||||
TRUE);
|
||||
|
||||
meta_error_trap_pop (display);
|
||||
meta_error_trap_pop (display->x11_display);
|
||||
|
||||
display->last_focus_time = timestamp;
|
||||
|
||||
@@ -2091,13 +2091,13 @@ meta_display_update_active_window_hint (MetaDisplay *display)
|
||||
else
|
||||
data[0] = None;
|
||||
|
||||
meta_error_trap_push (display);
|
||||
meta_error_trap_push (display->x11_display);
|
||||
XChangeProperty (display->x11_display->xdisplay,
|
||||
display->x11_display->xroot,
|
||||
display->x11_display->atom__NET_ACTIVE_WINDOW,
|
||||
XA_WINDOW,
|
||||
32, PropModeReplace, (guchar*) data, 1);
|
||||
meta_error_trap_pop (display);
|
||||
meta_error_trap_pop (display->x11_display);
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -26,10 +26,10 @@
|
||||
|
||||
#include <config.h>
|
||||
#include <meta/errors.h>
|
||||
#include "display-private.h"
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <gdk/gdk.h>
|
||||
#include <gdk/gdkx.h>
|
||||
#include "x11/meta-x11-display-private.h"
|
||||
|
||||
/* In GTK+-3.0, the error trapping code was significantly rewritten. The new code
|
||||
* has some neat features (like knowing automatically if a sync is needed or not
|
||||
@@ -44,19 +44,34 @@
|
||||
*/
|
||||
|
||||
void
|
||||
meta_error_trap_push (MetaDisplay *display)
|
||||
meta_error_trap_push (MetaX11Display *x11_display)
|
||||
{
|
||||
gdk_error_trap_push ();
|
||||
GdkDisplay *gdk_display;
|
||||
|
||||
gdk_display = gdk_x11_lookup_xdisplay (x11_display->xdisplay);
|
||||
g_assert (gdk_display != NULL);
|
||||
|
||||
gdk_x11_display_error_trap_push (gdk_display);
|
||||
}
|
||||
|
||||
void
|
||||
meta_error_trap_pop (MetaDisplay *display)
|
||||
meta_error_trap_pop (MetaX11Display *x11_display)
|
||||
{
|
||||
gdk_error_trap_pop_ignored ();
|
||||
GdkDisplay *gdk_display;
|
||||
|
||||
gdk_display = gdk_x11_lookup_xdisplay (x11_display->xdisplay);
|
||||
g_assert (gdk_display != NULL);
|
||||
|
||||
gdk_x11_display_error_trap_pop_ignored (gdk_display);
|
||||
}
|
||||
|
||||
int
|
||||
meta_error_trap_pop_with_return (MetaDisplay *display)
|
||||
meta_error_trap_pop_with_return (MetaX11Display *x11_display)
|
||||
{
|
||||
return gdk_error_trap_pop ();
|
||||
GdkDisplay *gdk_display;
|
||||
|
||||
gdk_display = gdk_x11_lookup_xdisplay (x11_display->xdisplay);
|
||||
g_assert (gdk_display != NULL);
|
||||
|
||||
return gdk_x11_display_error_trap_pop (gdk_display);
|
||||
}
|
||||
|
@@ -87,7 +87,7 @@ meta_window_ensure_frame (MetaWindow *window)
|
||||
|
||||
meta_display_register_x_window (window->display, &frame->xwindow, window);
|
||||
|
||||
meta_error_trap_push (window->display);
|
||||
meta_error_trap_push (x11_display);
|
||||
if (window->mapped)
|
||||
{
|
||||
window->mapped = FALSE; /* the reparent will unmap the window,
|
||||
@@ -107,7 +107,7 @@ meta_window_ensure_frame (MetaWindow *window)
|
||||
frame->child_x,
|
||||
frame->child_y);
|
||||
/* FIXME handle this error */
|
||||
meta_error_trap_pop (window->display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
|
||||
/* stick frame to the window */
|
||||
window->frame = frame;
|
||||
@@ -174,7 +174,7 @@ meta_window_destroy_frame (MetaWindow *window)
|
||||
/* Unparent the client window; it may be destroyed,
|
||||
* thus the error trap.
|
||||
*/
|
||||
meta_error_trap_push (window->display);
|
||||
meta_error_trap_push (x11_display);
|
||||
if (window->mapped)
|
||||
{
|
||||
window->mapped = FALSE; /* Keep track of unmapping it, so we
|
||||
@@ -197,7 +197,7 @@ meta_window_destroy_frame (MetaWindow *window)
|
||||
*/
|
||||
window->frame->rect.x + borders.invisible.left,
|
||||
window->frame->rect.y + borders.invisible.top);
|
||||
meta_error_trap_pop (window->display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
|
||||
meta_ui_frame_unmanage (frame->ui_frame);
|
||||
|
||||
|
@@ -3065,7 +3065,7 @@ handle_panel (MetaDisplay *display,
|
||||
"off due to keybinding press\n", event->time);
|
||||
display->mouse_mode = FALSE;
|
||||
|
||||
meta_error_trap_push (display);
|
||||
meta_error_trap_push (x11_display);
|
||||
|
||||
/* Release the grab for the panel before sending the event */
|
||||
XUngrabKeyboard (x11_display->xdisplay, event->time);
|
||||
@@ -3076,7 +3076,7 @@ handle_panel (MetaDisplay *display,
|
||||
StructureNotifyMask,
|
||||
(XEvent*) &ev);
|
||||
|
||||
meta_error_trap_pop (display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -582,10 +582,10 @@ take_manager_selection (MetaDisplay *display,
|
||||
if (should_replace)
|
||||
{
|
||||
/* We want to find out when the current selection owner dies */
|
||||
meta_error_trap_push (display);
|
||||
meta_error_trap_push (x11_display);
|
||||
attrs.event_mask = StructureNotifyMask;
|
||||
XChangeWindowAttributes (x11_display->xdisplay, current_owner, CWEventMask, &attrs);
|
||||
if (meta_error_trap_pop_with_return (display) != Success)
|
||||
if (meta_error_trap_pop_with_return (x11_display) != Success)
|
||||
current_owner = None; /* don't wait for it to die later on */
|
||||
}
|
||||
else
|
||||
@@ -970,13 +970,13 @@ set_number_of_spaces_hint (MetaScreen *screen,
|
||||
|
||||
meta_verbose ("Setting _NET_NUMBER_OF_DESKTOPS to %lu\n", data[0]);
|
||||
|
||||
meta_error_trap_push (screen->display);
|
||||
meta_error_trap_push (x11_display);
|
||||
XChangeProperty (x11_display->xdisplay,
|
||||
x11_display->xroot,
|
||||
x11_display->atom__NET_NUMBER_OF_DESKTOPS,
|
||||
XA_CARDINAL,
|
||||
32, PropModeReplace, (guchar*) data, 1);
|
||||
meta_error_trap_pop (screen->display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -993,13 +993,13 @@ set_desktop_geometry_hint (MetaScreen *screen)
|
||||
|
||||
meta_verbose ("Setting _NET_DESKTOP_GEOMETRY to %lu, %lu\n", data[0], data[1]);
|
||||
|
||||
meta_error_trap_push (screen->display);
|
||||
meta_error_trap_push (x11_display);
|
||||
XChangeProperty (x11_display->xdisplay,
|
||||
x11_display->xroot,
|
||||
x11_display->atom__NET_DESKTOP_GEOMETRY,
|
||||
XA_CARDINAL,
|
||||
32, PropModeReplace, (guchar*) data, 2);
|
||||
meta_error_trap_pop (screen->display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1019,13 +1019,13 @@ set_desktop_viewport_hint (MetaScreen *screen)
|
||||
|
||||
meta_verbose ("Setting _NET_DESKTOP_VIEWPORT to 0, 0\n");
|
||||
|
||||
meta_error_trap_push (screen->display);
|
||||
meta_error_trap_push (x11_display);
|
||||
XChangeProperty (x11_display->xdisplay,
|
||||
x11_display->xroot,
|
||||
x11_display->atom__NET_DESKTOP_VIEWPORT,
|
||||
XA_CARDINAL,
|
||||
32, PropModeReplace, (guchar*) data, 2);
|
||||
meta_error_trap_pop (screen->display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1785,14 +1785,14 @@ set_workspace_names (MetaScreen *screen)
|
||||
++i;
|
||||
}
|
||||
|
||||
meta_error_trap_push (screen->display);
|
||||
meta_error_trap_push (x11_display);
|
||||
XChangeProperty (x11_display->xdisplay,
|
||||
x11_display->xroot,
|
||||
x11_display->atom__NET_DESKTOP_NAMES,
|
||||
x11_display->atom_UTF8_STRING,
|
||||
8, PropModeReplace,
|
||||
(unsigned char *)flattened->str, flattened->len);
|
||||
meta_error_trap_pop (screen->display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
|
||||
g_string_free (flattened, TRUE);
|
||||
}
|
||||
@@ -1860,14 +1860,14 @@ set_work_area_hint (MetaScreen *screen)
|
||||
tmp += 4;
|
||||
}
|
||||
|
||||
meta_error_trap_push (screen->display);
|
||||
meta_error_trap_push (x11_display);
|
||||
XChangeProperty (x11_display->xdisplay,
|
||||
x11_display->xroot,
|
||||
x11_display->atom__NET_WORKAREA,
|
||||
XA_CARDINAL, 32, PropModeReplace,
|
||||
(guchar*) data, num_workspaces*4);
|
||||
g_free (data);
|
||||
meta_error_trap_pop (screen->display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
|
||||
g_signal_emit (screen, screen_signals[WORKAREAS_CHANGED], 0);
|
||||
}
|
||||
@@ -2262,13 +2262,13 @@ meta_screen_update_showing_desktop_hint (MetaScreen *screen)
|
||||
|
||||
data[0] = screen->active_workspace->showing_desktop ? 1 : 0;
|
||||
|
||||
meta_error_trap_push (screen->display);
|
||||
meta_error_trap_push (x11_display);
|
||||
XChangeProperty (x11_display->xdisplay,
|
||||
x11_display->xroot,
|
||||
x11_display->atom__NET_SHOWING_DESKTOP,
|
||||
XA_CARDINAL,
|
||||
32, PropModeReplace, (guchar*) data, 1);
|
||||
meta_error_trap_pop (screen->display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2626,13 +2626,13 @@ meta_screen_set_active_workspace_hint (MetaScreen *screen)
|
||||
|
||||
meta_verbose ("Setting _NET_CURRENT_DESKTOP to %lu\n", data[0]);
|
||||
|
||||
meta_error_trap_push (screen->display);
|
||||
meta_error_trap_push (x11_display);
|
||||
XChangeProperty (x11_display->xdisplay,
|
||||
x11_display->xroot,
|
||||
x11_display->atom__NET_CURRENT_DESKTOP,
|
||||
XA_CARDINAL,
|
||||
32, PropModeReplace, (guchar*) data, 1);
|
||||
meta_error_trap_pop (screen->display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@@ -990,7 +990,7 @@ meta_stack_tracker_lower_below (MetaStackTracker *tracker,
|
||||
{
|
||||
serial = XNextRequest (x11_display->xdisplay);
|
||||
|
||||
meta_error_trap_push (tracker->screen->display);
|
||||
meta_error_trap_push (x11_display);
|
||||
|
||||
changes.stack_mode = changes.sibling ? Below : Above;
|
||||
|
||||
@@ -999,7 +999,7 @@ meta_stack_tracker_lower_below (MetaStackTracker *tracker,
|
||||
(changes.sibling ? CWSibling : 0) | CWStackMode,
|
||||
&changes);
|
||||
|
||||
meta_error_trap_pop (tracker->screen->display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1025,7 +1025,7 @@ meta_stack_tracker_raise_above (MetaStackTracker *tracker,
|
||||
{
|
||||
serial = XNextRequest (x11_display->xdisplay);
|
||||
|
||||
meta_error_trap_push (tracker->screen->display);
|
||||
meta_error_trap_push (x11_display);
|
||||
|
||||
changes.stack_mode = changes.sibling ? Above : Below;
|
||||
|
||||
@@ -1034,7 +1034,7 @@ meta_stack_tracker_raise_above (MetaStackTracker *tracker,
|
||||
(changes.sibling ? CWSibling : 0) | CWStackMode,
|
||||
&changes);
|
||||
|
||||
meta_error_trap_pop (tracker->screen->display);
|
||||
meta_error_trap_pop (x11_display);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -590,7 +590,7 @@ sn_error_trap_push (SnDisplay *sn_display,
|
||||
MetaDisplay *display;
|
||||
display = meta_display_for_x_display (xdisplay);
|
||||
if (display != NULL)
|
||||
meta_error_trap_push (display);
|
||||
meta_error_trap_push (display->x11_display);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -600,7 +600,7 @@ sn_error_trap_pop (SnDisplay *sn_display,
|
||||
MetaDisplay *display;
|
||||
display = meta_display_for_x_display (xdisplay);
|
||||
if (display != NULL)
|
||||
meta_error_trap_pop (display);
|
||||
meta_error_trap_pop (display->x11_display);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -761,7 +761,7 @@ sync_client_window_mapped (MetaWindow *window)
|
||||
|
||||
window->mapped = should_be_mapped;
|
||||
|
||||
meta_error_trap_push (window->display);
|
||||
meta_error_trap_push (window->display->x11_display);
|
||||
if (should_be_mapped)
|
||||
{
|
||||
XMapWindow (window->display->x11_display->xdisplay, window->xwindow);
|
||||
@@ -771,7 +771,7 @@ sync_client_window_mapped (MetaWindow *window)
|
||||
XUnmapWindow (window->display->x11_display->xdisplay, window->xwindow);
|
||||
window->unmaps_pending ++;
|
||||
}
|
||||
meta_error_trap_pop (window->display);
|
||||
meta_error_trap_pop (window->display->x11_display);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -6772,7 +6772,7 @@ warp_grab_pointer (MetaWindow *window,
|
||||
*x = CLAMP (*x, 0, window->screen->rect.width-1);
|
||||
*y = CLAMP (*y, 0, window->screen->rect.height-1);
|
||||
|
||||
meta_error_trap_push (display);
|
||||
meta_error_trap_push (display->x11_display);
|
||||
|
||||
meta_topic (META_DEBUG_WINDOW_OPS,
|
||||
"Warping pointer to %d,%d with window at %d,%d\n",
|
||||
@@ -6794,7 +6794,7 @@ warp_grab_pointer (MetaWindow *window,
|
||||
meta_backend_warp_pointer (backend, *x, *y);
|
||||
}
|
||||
|
||||
if (meta_error_trap_pop_with_return (display) != Success)
|
||||
if (meta_error_trap_pop_with_return (display->x11_display) != Success)
|
||||
{
|
||||
meta_verbose ("Failed to warp pointer for window %s\n",
|
||||
window->desc);
|
||||
@@ -8057,14 +8057,14 @@ window_has_pointer_x11 (MetaWindow *window)
|
||||
XIModifierState mods;
|
||||
XIGroupState group;
|
||||
|
||||
meta_error_trap_push (display);
|
||||
meta_error_trap_push (display->x11_display);
|
||||
XIQueryPointer (display->x11_display->xdisplay,
|
||||
META_VIRTUAL_CORE_POINTER_ID,
|
||||
display->x11_display->xroot,
|
||||
&root, &child,
|
||||
&root_x, &root_y, &x, &y,
|
||||
&buttons, &mods, &group);
|
||||
meta_error_trap_pop (display);
|
||||
meta_error_trap_pop (display->x11_display);
|
||||
free (buttons.mask);
|
||||
|
||||
return meta_display_lookup_x_window (display, child) == window;
|
||||
|
Reference in New Issue
Block a user