From 120623d34e0cb86b4970e9744a10ba39cd5e21b7 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 10 Jul 2003 17:11:07 +0000 Subject: [PATCH] use the xerror stuff to trap errors instead of dupliacted the effort here --- openbox/screen.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/openbox/screen.c b/openbox/screen.c index a83c5710..90c874ac 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -53,30 +53,22 @@ static void sn_event_func(SnMonitorEvent *event, void *data); static void set_root_cursor(); -static gboolean running; -static int another_running(Display *d, XErrorEvent *e) -{ - (void)d;(void)e; - g_message("A window manager is already running on screen %d", - ob_screen); - running = TRUE; - return -1; -} - gboolean screen_annex() { - XErrorHandler old; pid_t pid; int i, num_support; guint32 *supported; - running = FALSE; - old = XSetErrorHandler(another_running); + xerror_set_ignore(TRUE); + xerror_occured = FALSE; XSelectInput(ob_display, ob_root, ROOT_EVENTMASK); - XSync(ob_display, FALSE); - XSetErrorHandler(old); - if (running) + xerror_set_ignore(FALSE); + if (xerror_occured) { + g_message("A window manager is already running on screen %d", + ob_screen); return FALSE; + } + g_message("Managing screen %d", ob_screen); -- 2.45.2