+ Lisp_Object obj = Qnil;
+
+#ifdef USE_GTK
+ if (x_gtk_use_system_tooltips)
+ {
+ if (NILP (frame))
+ {
+ Lisp_Object tail, frame;
+
+ FOR_EACH_FRAME (tail, frame)
+ if (FRAME_X_P (XFRAME (frame)))
+ if (xg_hide_tooltip (XFRAME (frame)))
+ obj = Qt;
+ }
+ else
+ {
+ CHECK_FRAME (frame);
+ if (FRAME_X_P (XFRAME (frame)))
+ if (xg_hide_tooltip (XFRAME (frame)))
+ obj = Qt;
+ }
+ return obj;
+ }
+#endif /* USE_GTK */
+
+ if (NILP (frame))
+ {
+ struct x_display_info *dpyinfo;
+
+ for (dpyinfo = x_display_list; dpyinfo; dpyinfo = dpyinfo->next)
+ if (dpyinfo->x_tooltip_frame)
+ if (!NILP (x_hide_tip (dpyinfo->x_tooltip_frame,
+ !tooltip_reuse_hidden_frame)))
+ obj = Qt;
+ }
+ else
+ {
+ struct frame *f;
+
+ CHECK_FRAME (frame);
+ f = XFRAME (frame);
+ if (FRAME_DISPLAY_INFO (f)
+ && FRAME_DISPLAY_INFO (f)->x_tooltip_frame)
+ obj = x_hide_tip (FRAME_DISPLAY_INFO (f)->x_tooltip_frame,
+ !tooltip_reuse_hidden_frame);
+ }
+ return obj;