x11: Use GDK error trapping code

This commit is contained in:
Benjamin Otte
2013-02-12 18:48:09 +01:00
parent c84e303fb5
commit e3206b9de4

View File

@ -110,12 +110,6 @@ notify_changes (XSettingsClient *client,
} }
} }
static int
ignore_errors (Display *display, XErrorEvent *event)
{
return True;
}
#define BYTES_LEFT(buffer) ((buffer)->data + (buffer)->len - (buffer)->pos) #define BYTES_LEFT(buffer) ((buffer)->data + (buffer)->len - (buffer)->pos)
static XSettingsResult static XSettingsResult
@ -370,20 +364,18 @@ read_settings (XSettingsClient *client)
unsigned char *data; unsigned char *data;
int result; int result;
int (*old_handler) (Display *, XErrorEvent *);
GHashTable *old_list = client->settings; GHashTable *old_list = client->settings;
client->settings = NULL; client->settings = NULL;
if (client->manager_window) if (client->manager_window)
{ {
old_handler = XSetErrorHandler (ignore_errors); gdk_x11_display_error_trap_push (gdk_screen_get_display (client->screen));
result = XGetWindowProperty (client->display, client->manager_window, result = XGetWindowProperty (client->display, client->manager_window,
client->xsettings_atom, 0, LONG_MAX, client->xsettings_atom, 0, LONG_MAX,
False, client->xsettings_atom, False, client->xsettings_atom,
&type, &format, &n_items, &bytes_after, &data); &type, &format, &n_items, &bytes_after, &data);
XSetErrorHandler (old_handler); gdk_x11_display_error_trap_pop_ignored (gdk_screen_get_display (client->screen));
if (result == Success && type != None) if (result == Success && type != None)
{ {