Subject: Re: bug#27647: 26.0.50; Line numbers implemented natively disappear momentarily when frame out of focus

From: Eli Zaretskii <[email-masked]>
Date: Tue, 14 Nov 2017 17:47:25 +0200

> Date: Tue, 14 Nov 2017 10:52:48 +0100
> From: martin rudalics <[email-masked]>
> CC: [email-masked], [email-masked], 
>  [email-masked], [email-masked]
> 
>  >> IIUC GTK doesn't need the original frame.
>  >
>  > xg_hide_tooltip needs it, because the GTK tooltip widget is stashed
>  > away in its output->data.x structure.
> 
> Because ‘tooltip-show’ implicitly uses the selected frame to decide
> where to show the tooltip and passes it as argument to ‘x-show-tip’.

No, it's because x-show-tip _needs_ a frame on which to pop up the
tooltip.  And since tooltip-show doesn't accept a frame parameter, it
uses the selected frame.  But that's not why xg_hide_tooltip needs the
frame, it needs the frame to get at the tooltip widget.

> Nowhere in the documentation of tooltips we mention that dependency.

Feel free to document that, but that's tangential to the issue being
discussed.

>  > Once again, it would be better to have the GTK code completely
>  > separated, IMO.
> 
> Still I think we should first eliminate all tooltip related global
> variables.  They are an unnecessary confusion - only think of
> last_show_tip_args impicitly also referring to a frame selected at some
> earlier time - and restriction - Emacs could easily show several native
> tooltips simultaneously, at least one for each display.

It would be better indeed to away with the global variables.  I'm just
saying that the mess with tip_frame on GTK could be solved even
without getting rid of global variables.