Work around an Ubuntu 11.10 bug where Emacs loops forever when started.
authorJan Djärv <jan.h.d@swipnet.se>
Sun, 27 Nov 2011 18:33:17 +0000 (19:33 +0100)
committerJan Djärv <jan.h.d@swipnet.se>
Sun, 27 Nov 2011 18:33:17 +0000 (19:33 +0100)
* configure.in: Check for gtk_window_set_has_resize_grip.

* src/gtkutil.c (xg_create_frame_widgets): Call
gtk_window_set_has_resize_grip (FALSE) if that function is
present with Gtk+ 2.0.

ChangeLog
configure.in
src/ChangeLog
src/gtkutil.c

index 90af252..63826ab 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-11-27  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * configure.in: Check for gtk_window_set_has_resize_grip.
+
 2011-11-24  Juanma Barranquero  <lekktu@gmail.com>
 
        * configure.in (HAVE_XPM): Fix typo.
index 8b70ed5..7a9bd0b 100644 (file)
@@ -1990,8 +1990,8 @@ if test "${HAVE_GTK}" = "yes"; then
   AC_CHECK_FUNCS(gtk_widget_get_window gtk_widget_set_has_window \
                  gtk_dialog_get_action_area gtk_widget_get_sensitive \
                  gtk_widget_get_mapped gtk_adjustment_get_page_size \
-                 gtk_orientable_set_orientation)
-
+                 gtk_orientable_set_orientation \
+                gtk_window_set_has_resize_grip)
 fi
 
 dnl D-Bus has been tested under GNU/Linux only.  Must be adapted for
index dd7b715..5b1d5aa 100644 (file)
@@ -1,3 +1,9 @@
+2011-11-27  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (xg_create_frame_widgets): Call
+       gtk_window_set_has_resize_grip (FALSE) if that function is
+       present with Gtk+ 2.0.
+
 2011-11-26  Paul Eggert  <eggert@cs.ucla.edu>
 
        * fileio.c (Finsert_file_contents): Undo previous change; see
index 7e6f5c3..bc71685 100644 (file)
@@ -1100,6 +1100,14 @@ xg_create_frame_widgets (FRAME_PTR f)
   else
     wtop = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 
+  /* gtk_window_set_has_resize_grip is a Gtk+ 3.0 function but Ubuntu
+     has backported it to Gtk+ 2.0 and they add the resize grip for
+     Gtk+ 2.0 applications also.  But it has a bug that makes Emacs loop
+     forever, so disable the grip.  */
+#if GTK_MAJOR_VERSION < 3 && defined (HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP)
+  gtk_window_set_has_resize_grip (GTK_WINDOW (wtop), FALSE);
+#endif
+
   xg_set_screen (wtop, f);
 
   wvbox = gtk_vbox_new (FALSE, 0);