]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix comparisons with tip_frame in GTK builds
authorEli Zaretskii <eliz@gnu.org>
Sat, 11 Nov 2017 12:42:30 +0000 (14:42 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 11 Nov 2017 12:42:30 +0000 (14:42 +0200)
* src/xterm.c (x_update_begin, x_new_font):
* src/xfns.c (Fx_display_monitor_attributes_list):
* src/frame.c (Fframe_list) [USE_GTK]: Don't consider tip_frame a
tooltip frame unless its 'tooltip' parameter is non-nil.  (Bug#26747)

src/frame.c
src/xfns.c
src/xterm.c

index fe1709e6ede6f03bea56aa22a09250d2fbc840e4..2b32751c0d3da6a485678188580284f875ba3611 100644 (file)
@@ -1472,7 +1472,11 @@ DEFUN ("frame-list", Fframe_list, Sframe_list,
   Lisp_Object frames;
   frames = Fcopy_sequence (Vframe_list);
 #ifdef HAVE_WINDOW_SYSTEM
-  if (FRAMEP (tip_frame))
+  if (FRAMEP (tip_frame)
+#ifdef USE_GTK
+      && !NILP (Fframe_parameter (tip_frame, Qtooltip))
+#endif
+      )
     frames = Fdelq (tip_frame, frames);
 #endif
   return frames;
index 9022e4a96746084e8dc3a1cd3b8f7c532740015d..83fc07dc6cb78b866dc0dbfe91173ac8594fdd00 100644 (file)
@@ -4915,7 +4915,11 @@ Internal use only, use `display-monitor-attributes-list' instead.  */)
       struct frame *f = XFRAME (frame);
 
       if (FRAME_X_P (f) && FRAME_DISPLAY_INFO (f) == dpyinfo
-         && !EQ (frame, tip_frame))
+         && !(EQ (frame, tip_frame)
+#ifdef USE_GTK
+              && !NILP (Fframe_parameter (tip_frame, Qtooltip))
+#endif
+              ))
        {
          GdkWindow *gwin = gtk_widget_get_window (FRAME_GTK_WIDGET (f));
 
index dbb8349452d001e03cad68982ea43ce9a5bf9e8a..e11cde771ab7e3d4dee6920fed3621a4ab876a2c 100644 (file)
@@ -997,7 +997,11 @@ x_update_begin (struct frame *f)
 {
 #ifdef USE_CAIRO
   if (! NILP (tip_frame) && XFRAME (tip_frame) == f
-      && ! FRAME_VISIBLE_P (f))
+      && ! FRAME_VISIBLE_P (f)
+#ifdef USE_GTK
+      && !NILP (Fframe_parameter (tip_frame, Qtooltip))
+#endif
+      )
     return;
 
   if (! FRAME_CR_SURFACE (f))
@@ -9960,7 +9964,11 @@ x_new_font (struct frame *f, Lisp_Object font_object, int fontset)
       /* Don't change the size of a tip frame; there's no point in
         doing it because it's done in Fx_show_tip, and it leads to
         problems because the tip frame has no widget.  */
-      if (NILP (tip_frame) || XFRAME (tip_frame) != f)
+      if (NILP (tip_frame) || XFRAME (tip_frame) != f
+#ifdef USE_GTK
+         || NILP (Fframe_parameter (tip_frame, Qtooltip))
+#endif
+         )
        {
          adjust_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f),
                             FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 3,