| Index: chrome/browser/ui/gtk/download/download_item_gtk.cc
|
| diff --git a/chrome/browser/ui/gtk/download/download_item_gtk.cc b/chrome/browser/ui/gtk/download/download_item_gtk.cc
|
| index 31b4303ef6394962c7cf1e9ca98a3c08aaa61288..c92749499581954260ec6a06c5fa7bb2f90bb45b 100644
|
| --- a/chrome/browser/ui/gtk/download/download_item_gtk.cc
|
| +++ b/chrome/browser/ui/gtk/download/download_item_gtk.cc
|
| @@ -125,23 +125,18 @@ DownloadItemGtk::DownloadItemGtk(DownloadShelfGtk* parent_shelf,
|
| g_object_unref(no_padding_style);
|
|
|
| name_label_ = gtk_label_new(NULL);
|
| -
|
| - UpdateNameLabel();
|
| -
|
| - status_label_ = gtk_label_new(NULL);
|
| - g_signal_connect(status_label_, "destroy",
|
| - G_CALLBACK(gtk_widget_destroyed), &status_label_);
|
| // Left align and vertically center the labels.
|
| gtk_misc_set_alignment(GTK_MISC(name_label_), 0, 0.5);
|
| - gtk_misc_set_alignment(GTK_MISC(status_label_), 0, 0.5);
|
| // Until we switch to vector graphics, force the font size.
|
| gtk_util::ForceFontSizePixels(name_label_, kTextSize);
|
| - gtk_util::ForceFontSizePixels(status_label_, kTextSize);
|
| +
|
| + UpdateNameLabel();
|
| +
|
| + status_label_ = NULL;
|
|
|
| // Stack the labels on top of one another.
|
| - GtkWidget* text_stack = gtk_vbox_new(FALSE, 0);
|
| - gtk_box_pack_start(GTK_BOX(text_stack), name_label_, TRUE, TRUE, 0);
|
| - gtk_box_pack_start(GTK_BOX(text_stack), status_label_, FALSE, FALSE, 0);
|
| + text_stack_ = gtk_vbox_new(FALSE, 0);
|
| + gtk_box_pack_start(GTK_BOX(text_stack_), name_label_, TRUE, TRUE, 0);
|
|
|
| // We use a GtkFixed because we don't want it to have its own window.
|
| // This choice of widget is not critically important though.
|
| @@ -157,7 +152,7 @@ DownloadItemGtk::DownloadItemGtk(DownloadShelfGtk* parent_shelf,
|
| GtkWidget* body_hbox = gtk_hbox_new(FALSE, 0);
|
| gtk_container_add(GTK_CONTAINER(body_.get()), body_hbox);
|
| gtk_box_pack_start(GTK_BOX(body_hbox), progress_area_.get(), FALSE, FALSE, 0);
|
| - gtk_box_pack_start(GTK_BOX(body_hbox), text_stack, TRUE, TRUE, 0);
|
| + gtk_box_pack_start(GTK_BOX(body_hbox), text_stack_, TRUE, TRUE, 0);
|
|
|
| menu_button_ = gtk_button_new();
|
| gtk_widget_set_app_paintable(menu_button_, TRUE);
|
| @@ -349,19 +344,7 @@ void DownloadItemGtk::OnDownloadUpdated(DownloadItem* download) {
|
| NOTREACHED();
|
| }
|
|
|
| - // Now update the status label. We may have already removed it; if so, we
|
| - // do nothing.
|
| - if (!status_label_) {
|
| - return;
|
| - }
|
| -
|
| status_text_ = UTF16ToUTF8(download_model_->GetStatusText());
|
| - // Remove the status text label.
|
| - if (status_text_.empty()) {
|
| - gtk_widget_destroy(status_label_);
|
| - return;
|
| - }
|
| -
|
| UpdateStatusLabel(status_text_);
|
| }
|
|
|
| @@ -498,8 +481,26 @@ void DownloadItemGtk::UpdateNameLabel() {
|
| }
|
|
|
| void DownloadItemGtk::UpdateStatusLabel(const std::string& status_text) {
|
| - if (!status_label_)
|
| + // If |status_text| is empty, only |name_label_| is displayed at the
|
| + // vertical center of |text_stack_|. Otherwise, |name_label_| is displayed
|
| + // on the upper half of |text_stack_| and |status_label_| is displayed
|
| + // on the lower half of |text_stack_|.
|
| + if (status_text.empty() && status_label_) {
|
| + gtk_widget_destroy(status_label_);
|
| return;
|
| + }
|
| + if (!status_label_) {
|
| + status_label_ = gtk_label_new(NULL);
|
| + g_signal_connect(status_label_, "destroy",
|
| + G_CALLBACK(gtk_widget_destroyed), &status_label_);
|
| + // Left align and vertically center the labels.
|
| + gtk_misc_set_alignment(GTK_MISC(status_label_), 0, 0.5);
|
| + // Until we switch to vector graphics, force the font size.
|
| + gtk_util::ForceFontSizePixels(status_label_, kTextSize);
|
| +
|
| + gtk_box_pack_start(GTK_BOX(text_stack_), status_label_, FALSE, FALSE, 0);
|
| + gtk_widget_show_all(hbox_.get());
|
| + }
|
|
|
| GdkColor text_color;
|
| if (!theme_service_->UsingNativeTheme()) {
|
| @@ -785,7 +786,6 @@ gboolean DownloadItemGtk::OnButtonPress(GtkWidget* button,
|
| ShowPopupMenu(NULL, event);
|
| return TRUE;
|
| }
|
| -
|
| return FALSE;
|
| }
|
|
|
| @@ -833,7 +833,6 @@ gboolean DownloadItemGtk::OnMenuButtonPressEvent(GtkWidget* button,
|
| gtk_widget_queue_draw(button);
|
| return TRUE;
|
| }
|
| -
|
| return FALSE;
|
| }
|
|
|
|
|