Subject: Re: bug#52705: 29.0.50; Flashing popups when x-gtk-use-system-tooltips is nil in pgtk

From: Po Lu <[email-masked]>
Date: Fri, 24 Dec 2021 17:35:55 +0800

martin rudalics <[email-masked]> writes:

> I see the behavior Aleksandr describes here with a GTK3 build on X.  The
> empty tooltip frame pops up shortly at the top left corner of the
> display regardless of where the proper Emacs frame is positioned.  I
> suppose it's due to the usual delay induced by setting up the tooltip
> frame's fonts.
>
> With 'tooltip-reuse-hidden-frame' non-nil, the empty tooltip shows only
> once but unfortunately the proper tooltip is not made invisible whenever
> it is supposed to disappear (for some reason the check
>
> 	  && !FRAME_VISIBLE_P (XFRAME (tip_frame))))
>
> on line 3204 of pgtkfns.c fails, telling that the tooltip is already
> invisible although it is still visible).

Hmm, could you try putting SET_FRAME_VISIBLE (f, 1) after this line in
`x_create_tip_frame':

    gtk_window_set_attached_to (GTK_WINDOW (tip_window), FRAME_GTK_WIDGET (p));
    gtk_window_set_destroy_with_parent (GTK_WINDOW (tip_window), TRUE);
    gtk_window_set_decorated (GTK_WINDOW (tip_window), FALSE);
    gtk_window_set_type_hint (GTK_WINDOW (tip_window), GDK_WINDOW_TYPE_HINT_TOOLTIP);
    f->output_data.pgtk->current_cursor = f->output_data.pgtk->text_cursor;
->  gtk_widget_show_all (FRAME_GTK_OUTER_WIDGET (f));

The signal handler in `map_event' in pgtkterm.c should set the frame's
visibility, but it seems that for some reason it isn't being triggered,
even though we do set up event handling.

Thanks.