emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 f3e69a8: Fix display of line numbers in GTK build


From: Eli Zaretskii
Subject: [Emacs-diffs] emacs-26 f3e69a8: Fix display of line numbers in GTK builds
Date: Fri, 10 Nov 2017 03:36:56 -0500 (EST)

branch: emacs-26
commit f3e69a80abc04d72d446763bda6859c064233c5d
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix display of line numbers in GTK builds
    
    * src/xdisp.c (should_produce_line_number) [USE_GTK]: Make sure
    tip_frame is indeed a tooltip frame, before disabling line numbers
    on it.  (Bug#27647)
    
    * src/dispextern.h (tip_frame): Add commentary describing the
    kludgey usage of this variable in GTK builds.
---
 src/dispextern.h | 7 +++++++
 src/xdisp.c      | 8 +++++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/dispextern.h b/src/dispextern.h
index 2f55d8c..430afbf 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -3452,7 +3452,14 @@ void gamma_correct (struct frame *, COLORREF *);
 void x_implicitly_set_name (struct frame *, Lisp_Object, Lisp_Object);
 void x_change_tool_bar_height (struct frame *f, int);
 
+/* The frame used to display a tooltip.
+
+   Note: In a GTK build with non-zero x_gtk_use_system_tooltips, this
+   variable holds the frame that shows the tooltip, not the frame of
+   the tooltip itself, so checking whether a frame is a tooltip frame
+   cannot just compare the frame to what this variable holds.  */
 extern Lisp_Object tip_frame;
+
 extern Window tip_window;
 extern frame_parm_handler x_frame_parm_handlers[];
 
diff --git a/src/xdisp.c b/src/xdisp.c
index 5fdd39b..4c82737 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -21132,7 +21132,13 @@ should_produce_line_number (struct it *it)
 
 #ifdef HAVE_WINDOW_SYSTEM
   /* Don't display line number in tooltip frames.  */
-  if (FRAMEP (tip_frame) && EQ (WINDOW_FRAME (it->w), tip_frame))
+  if (FRAMEP (tip_frame) && EQ (WINDOW_FRAME (it->w), tip_frame)
+#ifdef USE_GTK
+      /* GTK builds store in tip_frame the frame that shows the tip,
+        so we need an additional test.  */
+      && !NILP (Fframe_parameter (tip_frame, Qtooltip))
+#endif
+      )
     return false;
 #endif
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]