2009-12-13 Jan Djärv <jan.h.d@swipnet.se>
+ * xterm.c (my_log_handler): New function.
+ (x_term_init): Set my_log_handler as log handler during gtk_init
+ so we can filter out buggy messages. (bug #5120).
+
* xterm.c (xg_scroll_callback): Parameter list changed,
use parameter GtkScrollType to determine scroll/line/page.
Only allow dragging if a button < 4 is grabbed (bug #5177).
return dpy_ok;
}
+#ifdef USE_GTK
+static void
+my_log_handler (log_domain, log_level, message, user_data)
+ const gchar *log_domain;
+ GLogLevelFlags log_level;
+ const gchar *message;
+ gpointer user_data;
+{
+ if (!strstr (message, "g_set_prgname"))
+ fprintf (stderr, "%s-WARNING **: %s\n", log_domain, message);
+}
+#endif
+
/* Open a connection to X display DISPLAY_NAME, and return
the structure that describes the open display.
If we cannot contact the display, return null. */
char *argv[NUM_ARGV];
char **argv2 = argv;
GdkAtom atom;
-
+ guint id;
#ifndef HAVE_GTK_MULTIDISPLAY
if (!EQ (Vinitial_window_system, Qx))
error ("Sorry, you cannot connect to X servers with the GTK toolkit");
XSetLocaleModifiers ("");
+ /* Work around GLib bug that outputs a faulty warning. See
+ https://bugzilla.gnome.org/show_bug.cgi?id=563627. */
+ id = g_log_set_handler ("GLib", G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL
+ | G_LOG_FLAG_RECURSION, my_log_handler, NULL);
gtk_init (&argc, &argv2);
+ g_log_remove_handler ("GLib", id);
/* gtk_init does set_locale. We must fix locale after calling it. */
fixup_locale ();