]> git.eshelyaron.com Git - emacs.git/commitdiff
Work around GTK bug crashing emacs GTK builds.
authorTassilo Horn <tassilo@member.fsf.org>
Fri, 18 Nov 2011 09:36:59 +0000 (10:36 +0100)
committerTassilo Horn <tassilo@member.fsf.org>
Fri, 18 Nov 2011 09:36:59 +0000 (10:36 +0100)
* frame.c (delete_frame): Don't delete the terminal when the last
X frame is closed if emacs is built with GTK toolkit.

src/ChangeLog
src/frame.c

index e1854d7ffcd6846d5546e936b07b136a6e73b5aa..81f7fbbdc29ec6ac75c9dd4e6fedd06477c559b0 100644 (file)
@@ -1,3 +1,8 @@
+2011-11-18  Tassilo Horn  <tassilo@member.fsf.org>
+
+       * frame.c (delete_frame): Don't delete the terminal when the last
+       X frame is closed if emacs is built with GTK toolkit.
+
 2011-11-17  Juanma Barranquero  <lekktu@gmail.com>
 
        * window.c (syms_of_window) <window-combination-resize>: Fix typo.
index c14f4db91da90fbda19f928507114ff95d492981..984651ae9ce1ebb1a280c45e80def01f8457b9eb 100644 (file)
@@ -1359,6 +1359,13 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
     /* If needed, delete the terminal that this frame was on.
        (This must be done after the frame is killed.) */
     terminal->reference_count--;
+#ifdef USE_GTK
+    /* FIXME: Deleting the terminal crashes emacs because of a GTK
+       bug.
+       http://lists.gnu.org/archive/html/emacs-devel/2011-10/msg00363.html */
+    if (terminal->reference_count == 0 && terminal->type == output_x_window)
+      terminal->reference_count = 1;
+#endif /* USE_GTK */
     if (terminal->reference_count == 0)
       {
        Lisp_Object tmp;