changeset 16321:3ba37836d674

merge of '5227d53d05340b1c55335bc5ef30e1e63cd75b2c' and 'be425ac6aa2a108801c6b65385b40d02071bcba3'
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Mon, 23 Apr 2007 06:29:50 +0000
parents 94843d812e69 (diff) ee4ce3c4186f (current diff)
children 6349d702bab6
files
diffstat 1 files changed, 16 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/finch/plugins/gntgf.c	Mon Apr 23 03:02:37 2007 +0000
+++ b/finch/plugins/gntgf.c	Mon Apr 23 06:29:50 2007 +0000
@@ -111,6 +111,15 @@
 }
 
 #ifdef HAVE_X11
+static int
+error_handler(Display *dpy, XErrorEvent *error)
+{
+	char buffer[1024];
+	XGetErrorText(dpy, error->error_code, buffer, sizeof(buffer));
+	purple_debug_error("gntgf", "Could not set urgent to the window: %s.\n", buffer);
+	return 0;
+}
+
 static void
 urgent()
 {
@@ -130,9 +139,14 @@
 	if (dpy == NULL)
 		return;
 
+	XSetErrorHandler(error_handler);
 	hints = XGetWMHints(dpy, id);
-	hints->flags|=XUrgencyHint;
-	XSetWMHints(dpy, id, hints);
+	if (hints) {
+		hints->flags|=XUrgencyHint;
+		XSetWMHints(dpy, id, hints);
+		XFree(hints);
+	}
+	XSetErrorHandler(NULL);
 
 	XFlush(dpy);
 	XCloseDisplay(dpy);