summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorerg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-24 22:04:28 +0000
committererg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-24 22:04:28 +0000
commit22e734b70f6fc6292f991132fe6ab5570acd7b02 (patch)
tree5e233b90cf58ba8676c06836d86843df8db0874d /chrome
parent2073de3cf523d1096d3416ac071b6f6968dbeb79 (diff)
downloadchromium_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.cc11
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);