From 8203b69e7467f0aa5ac76c7016331727dc0d4e63 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 28 Jan 2023 13:04:01 -0500 Subject: [PATCH] tooltip: Don't play games with max-width-chars Setting max-width-chars to the number of characters in the string works ok only as long as the average char width we get from Pango matches reality. Sadly that seems not always the case, and this code was causing short Chinese tooltips to always be broken into two lines. Fixes: #4470 --- gtk/gtktooltipwindow.c | 23 ----------------------- gtk/ui/gtktooltipwindow.ui | 1 + 2 files changed, 1 insertion(+), 23 deletions(-) diff --git a/gtk/gtktooltipwindow.c b/gtk/gtktooltipwindow.c index b8658cf124..f5f8af5883 100644 --- a/gtk/gtktooltipwindow.c +++ b/gtk/gtktooltipwindow.c @@ -401,27 +401,6 @@ gtk_tooltip_window_new (void) return g_object_new (GTK_TYPE_TOOLTIP_WINDOW, NULL); } -static void -update_label_width (GtkLabel *label) -{ - const char *text; - - text = gtk_label_get_text (label); - if (strchr (text, '\n')) - { - gtk_label_set_wrap (label, FALSE); - } - else - { - int len; - - len = g_utf8_strlen (text, -1); - - gtk_label_set_max_width_chars (label, MIN (len, 50)); - gtk_label_set_wrap (label, TRUE); - } -} - void gtk_tooltip_window_set_label_markup (GtkTooltipWindow *window, const char *markup) @@ -429,7 +408,6 @@ gtk_tooltip_window_set_label_markup (GtkTooltipWindow *window, if (markup != NULL) { gtk_label_set_markup (GTK_LABEL (window->label), markup); - update_label_width (GTK_LABEL (window->label)); gtk_widget_show (window->label); } else @@ -445,7 +423,6 @@ gtk_tooltip_window_set_label_text (GtkTooltipWindow *window, if (text != NULL) { gtk_label_set_text (GTK_LABEL (window->label), text); - update_label_width (GTK_LABEL (window->label)); gtk_widget_show (window->label); } else diff --git a/gtk/ui/gtktooltipwindow.ui b/gtk/ui/gtktooltipwindow.ui index 127fa045e4..2cecd58c73 100644 --- a/gtk/ui/gtktooltipwindow.ui +++ b/gtk/ui/gtktooltipwindow.ui @@ -14,6 +14,7 @@ 1 + 50