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;
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));
{
#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))
/* 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,