summaryrefslogtreecommitdiff
path: root/src/gtkutil.c
diff options
context:
space:
mode:
authorJan Djärv <jan.h.d@swipnet.se>2011-07-08 19:57:55 +0200
committerJan Djärv <jan.h.d@swipnet.se>2011-07-08 19:57:55 +0200
commit1b85461891d3354aef97bec97fab891ddb24e06e (patch)
treee6c3dbe4062367b62fba122f93641b918a8ed967 /src/gtkutil.c
parent0ce7e563da9e0063363d0735dec72c033eefaac4 (diff)
downloademacs-1b85461891d3354aef97bec97fab891ddb24e06e.tar.gz
Better fix that keeps corret margins in tooltip.
* gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget. (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was wrong. Fixes: debbugs:8591
Diffstat (limited to 'src/gtkutil.c')
-rw-r--r--src/gtkutil.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c
index b11500bf860..dfc5b63f375 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -633,6 +633,9 @@ qttip_cb (GtkWidget *widget,
struct x_output *x = f->output_data.x;
if (x->ttip_widget == NULL)
{
+ GtkWidget *p;
+ GList *list, *iter;
+
g_object_set (G_OBJECT (widget), "has-tooltip", FALSE, NULL);
x->ttip_widget = tooltip;
g_object_ref (G_OBJECT (tooltip));
@@ -640,6 +643,19 @@ qttip_cb (GtkWidget *widget,
g_object_ref (G_OBJECT (x->ttip_lbl));
gtk_tooltip_set_custom (tooltip, x->ttip_lbl);
x->ttip_window = GTK_WINDOW (gtk_widget_get_toplevel (x->ttip_lbl));
+
+ /* Change stupid Gtk+ default line wrapping. */
+ p = gtk_widget_get_parent (x->ttip_lbl);
+ list = gtk_container_get_children (GTK_CONTAINER (p));
+ iter;
+ for (iter = list; iter; iter = g_list_next (iter))
+ {
+ GtkWidget *w = GTK_WIDGET (iter->data);
+ if (GTK_IS_LABEL (w))
+ gtk_label_set_line_wrap (GTK_LABEL (w), FALSE);
+ }
+ g_list_free (list);
+
/* ATK needs an empty title for some reason. */
gtk_window_set_title (x->ttip_window, "");
/* Realize so we can safely get screen later on. */
@@ -700,9 +716,7 @@ xg_prepare_tooltip (FRAME_PTR f,
/* Put our dummy widget in so we can get callbacks for unrealize and
hierarchy-changed. */
gtk_tooltip_set_custom (x->ttip_widget, widget);
-
- gtk_tooltip_set_text (x->ttip_widget, "");
- gtk_label_set_text (GTK_LABEL (x->ttip_lbl), SSDATA (encoded_string));
+ gtk_tooltip_set_text (x->ttip_widget, SSDATA (encoded_string));
gtk_widget_get_preferred_size (GTK_WIDGET (x->ttip_window), NULL, &req);
if (width) *width = req.width;
if (height) *height = req.height;