Work around an Ubuntu 11.10 bug where Emacs loops forever when started.

* 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.
This commit is contained in:
Jan Djärv 2011-11-27 19:33:17 +01:00
parent e9a452d9cd
commit 54e9e3bf84
4 changed files with 20 additions and 2 deletions

View file

@ -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.

View 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

View 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

View 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);