diff options
author | Eli Zaretskii <eliz@gnu.org> | 2017-11-10 10:35:31 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2017-11-10 10:35:31 +0200 |
commit | f3e69a80abc04d72d446763bda6859c064233c5d (patch) | |
tree | 03cb2239622dcfcdf93cd0172356ae7830d2f3bb | |
parent | e6f1fd40916afb692bd25e845ee87e73549201f4 (diff) | |
download | emacs-f3e69a80abc04d72d446763bda6859c064233c5d.tar.gz |
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.
-rw-r--r-- | src/dispextern.h | 7 | ||||
-rw-r--r-- | src/xdisp.c | 8 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/dispextern.h b/src/dispextern.h index 2f55d8cbc87..430afbf09a3 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 5fdd39b0c94..4c82737e410 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 |