Mercurial > emacs
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 } }