diff options
author | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-24 22:04:28 +0000 |
---|---|---|
committer | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-24 22:04:28 +0000 |
commit | 22e734b70f6fc6292f991132fe6ab5570acd7b02 (patch) | |
tree | 5e233b90cf58ba8676c06836d86843df8db0874d /chrome | |
parent | 2073de3cf523d1096d3416ac071b6f6968dbeb79 (diff) | |
download | chromium_src-22e734b70f6fc6292f991132fe6ab5570acd7b02.zip chromium_src-22e734b70f6fc6292f991132fe6ab5570acd7b02.tar.gz chromium_src-22e734b70f6fc6292f991132fe6ab5570acd7b02.tar.bz2 |
Fix word wrapping on the license label.
This uses the trick described here:
http://blog.16software.com/dynamic-label-wrapping-in-gtk
Review URL: http://codereview.chromium.org/93153
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14485 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/gtk/about_chrome_dialog.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/chrome/browser/gtk/about_chrome_dialog.cc b/chrome/browser/gtk/about_chrome_dialog.cc index 8ec471ce..0650259 100644 --- a/chrome/browser/gtk/about_chrome_dialog.cc +++ b/chrome/browser/gtk/about_chrome_dialog.cc @@ -59,6 +59,12 @@ void OnDialogResponse(GtkDialog* dialog, int response_id) { gtk_widget_destroy(GTK_WIDGET(dialog)); } +void FixLabelWrappingCallback(GtkWidget *label, + GtkAllocation *allocation, + gpointer data) { + gtk_widget_set_size_request(label, allocation->width, -1); +} + GtkWidget* MakeMarkupLabel(const char* format, const std::wstring& str) { GtkWidget* label = gtk_label_new(NULL); char* markup = g_markup_printf_escaped( @@ -151,6 +157,11 @@ void ShowAboutDialogForProfile(GtkWindow* parent, Profile* profile) { gtk_misc_set_alignment(GTK_MISC(license_label), 0, 0); gtk_box_pack_start(GTK_BOX(content_area), license_label, TRUE, TRUE, 0); + // Hack around Gtk's not-so-good label wrapping, as described here: + // http://blog.16software.com/dynamic-label-wrapping-in-gtk + g_signal_connect(G_OBJECT(license_label), "size-allocate", + G_CALLBACK(FixLabelWrappingCallback), NULL); + g_signal_connect(dialog, "response", G_CALLBACK(OnDialogResponse), NULL); gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_widget_show_all(dialog); |