changeset 109615:09adf0d4c6d9

Don't use Gtk+ tooltip unless Gtk+ version => 2.14. * gtkutil.c (hierarchy_ch_cb, qttip_cb): Do not define unless USE_GTK_TOOLTIP. (xg_prepare_tooltip): Return 0 unless USE_GTK_TOOLTIP (xg_show_tooltip, xg_hide_tooltip): Do nothing unless USE_GTK_TOOLTIP. (xg_create_frame_widgets): Surrond tooltip-related code with ifdef USE_GTK_TOOLTIP. (xg_free_frame_widgets): Don't delete ttip_* unless USE_GTK_TOOLTIP. * xterm.h (USE_GTK_TOOLTIP): New define. (struct x_output): Put ttip_* inside ifdef USE_GTK_TOOLTIP.
author Jan D. <jan.h.d@swipnet.se>
date Mon, 02 Aug 2010 14:46:33 +0200
parents e20f769083f9
children 9760620de530
files src/gtkutil.c
diffstat 1 files changed, 18 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/gtkutil.c	Mon Aug 02 12:25:27 2010 +0200
+++ b/src/gtkutil.c	Mon Aug 02 14:46:33 2010 +0200
@@ -514,6 +514,8 @@
    We use that to pop down the tooltip.  This happens if Gtk+ for some
    reason wants to change or hide the tooltip.  */
 
+#ifdef USE_GTK_TOOLTIP
+
 static void
 hierarchy_ch_cb (GtkWidget *widget,
                  GtkWidget *previous_toplevel,
@@ -562,15 +564,20 @@
   return FALSE;
 }
 
+#endif /* USE_GTK_TOOLTIP */
+
 /* Prepare a tooltip to be shown, i.e. calculate WIDTH and HEIGHT.
    Return zero if no system tooltip available, non-zero otherwise.  */
 
 int
 xg_prepare_tooltip (FRAME_PTR f,
-                    Lisp_Object string,
-                    int *width,
+                      Lisp_Object string,
+                      int *width,
                     int *height)
 {
+#ifndef USE_GTK_TOOLTIP
+  return 0;
+#else
   struct x_output *x = f->output_data.x;
   GtkWidget *widget;
   GdkWindow *gwin;
@@ -614,6 +621,7 @@
   UNBLOCK_INPUT;
 
   return 1;
+#endif /* USE_GTK_TOOLTIP */
 }
 
 /* Show the tooltip at ROOT_X and ROOT_Y.
@@ -622,6 +630,7 @@
 void
 xg_show_tooltip (FRAME_PTR f, int root_x, int root_y)
 {
+#ifdef USE_GTK_TOOLTIP
   struct x_output *x = f->output_data.x;
   if (x->ttip_window)
     {
@@ -630,6 +639,7 @@
       gtk_widget_show_all (GTK_WIDGET (x->ttip_window));
       UNBLOCK_INPUT;
     }
+#endif
 }
 
 /* Hide tooltip if shown.  Do nothing if not shown.
@@ -640,6 +650,7 @@
 xg_hide_tooltip (FRAME_PTR f)
 {
   int ret = 0;
+#ifdef USE_GTK_TOOLTIP
   if (f->output_data.x->ttip_window)
     {
       GtkWindow *win = f->output_data.x->ttip_window;
@@ -657,7 +668,7 @@
 
       ret = 1;
     }
-
+#endif
   return ret;
 }
 
@@ -1002,12 +1013,14 @@
   style->bg_pixmap_name[GTK_STATE_NORMAL] = g_strdup ("<none>");
   gtk_widget_modify_style (wfixed, style);
 
+#ifdef USE_GTK_TOOLTIP
   /* Steal a tool tip window we can move ourselves.  */
   f->output_data.x->ttip_widget = 0;
   f->output_data.x->ttip_lbl = 0;
   f->output_data.x->ttip_window = 0;
   gtk_widget_set_tooltip_text (wtop, "Dummy text");  
   g_signal_connect (wtop, "query-tooltip", G_CALLBACK (qttip_cb), f);
+#endif
 
   UNBLOCK_INPUT;
 
@@ -1023,10 +1036,12 @@
       gtk_widget_destroy (FRAME_GTK_OUTER_WIDGET (f));
       FRAME_X_WINDOW (f) = 0; /* Set to avoid XDestroyWindow in xterm.c */
       FRAME_GTK_OUTER_WIDGET (f) = 0;
+#ifdef USE_GTK_TOOLTIP
       if (x->ttip_lbl)
         gtk_widget_destroy (x->ttip_lbl);
       if (x->ttip_widget)
         g_object_unref (G_OBJECT (x->ttip_widget));
+#endif
     }
 }