[gnome-photos] main-toolbar: The back button should always be the left-most element



commit 05f354547b7ef5544f880e8f92328909a5a92646
Author: Debarshi Ray <debarshir gnome org>
Date:   Fri Oct 23 11:31:13 2015 +0200

    main-toolbar: The back button should always be the left-most element
    
    The back button would show up after the remote display button if we
    moved to a collection while the remote display manager was active. Fix
    it by updating the remote display button (ie. destroying and re-adding
    it) after we have updated the back button on active-collection-changed.
    This matches what we were doing for selection-changed and other mode
    changes.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=732799

 src/photos-main-toolbar.c |  119 +++++++++++++++++++++++----------------------
 1 files changed, 60 insertions(+), 59 deletions(-)
---
diff --git a/src/photos-main-toolbar.c b/src/photos-main-toolbar.c
index 1cd013c..14d58a5 100644
--- a/src/photos-main-toolbar.c
+++ b/src/photos-main-toolbar.c
@@ -167,6 +167,65 @@ photos_main_toolbar_add_back_button (PhotosMainToolbar *self)
 
 
 static void
+photos_main_toolbar_remote_display_button_clicked (PhotosMainToolbar *self)
+{
+  PhotosMainToolbarPrivate *priv = self->priv;
+
+  photos_remote_display_manager_stop (priv->remote_mngr);
+}
+
+
+static void
+photos_main_toolbar_add_remote_display_button (PhotosMainToolbar *self)
+{
+  PhotosMainToolbarPrivate *priv = self->priv;
+  PhotosDlnaRenderer *renderer;
+  GtkLabel *label;
+  gchar *text;
+  const gchar *name;
+
+  if (priv->remote_display_button != NULL)
+    gtk_widget_destroy (priv->remote_display_button);
+
+  renderer = photos_remote_display_manager_get_renderer (priv->remote_mngr);
+  name = photos_dlna_renderer_get_friendly_name (renderer);
+  text = g_markup_printf_escaped ("Displaying on <b>%s</b>", name);
+
+  priv->remote_display_button = gtk_button_new_with_label (text);
+  label = GTK_LABEL (gtk_bin_get_child (GTK_BIN (priv->remote_display_button)));
+  gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_MIDDLE);
+  gtk_label_set_use_markup (label, TRUE);
+  gtk_widget_set_margin_end (priv->remote_display_button, 12);
+  gtk_header_bar_pack_start (GTK_HEADER_BAR (priv->toolbar), priv->remote_display_button);
+  gtk_widget_show_all (priv->remote_display_button);
+
+  g_signal_connect_swapped (priv->remote_display_button,
+                            "clicked",
+                            G_CALLBACK (photos_main_toolbar_remote_display_button_clicked),
+                            self);
+  g_free (text);
+}
+
+
+static void
+photos_main_toolbar_update_remote_display_button (PhotosMainToolbar *self)
+{
+  PhotosMainToolbarPrivate *priv = self->priv;
+  PhotosWindowMode window_mode;
+  gboolean selection_mode, active;
+
+  selection_mode = photos_selection_controller_get_selection_mode (priv->sel_cntrlr);
+  window_mode = photos_mode_controller_get_window_mode (priv->mode_cntrlr);
+  active = photos_remote_display_manager_is_active (priv->remote_mngr);
+
+  if (active && !selection_mode && window_mode != PHOTOS_WINDOW_MODE_PREVIEW)
+    photos_main_toolbar_add_remote_display_button (self);
+  else
+    g_clear_pointer (&priv->remote_display_button, gtk_widget_destroy);
+}
+
+
+static void
 photos_main_toolbar_coll_back_button_clicked (PhotosMainToolbar *self)
 {
   photos_item_manager_activate_previous_collection (PHOTOS_ITEM_MANAGER (self->priv->item_mngr));
@@ -204,6 +263,7 @@ photos_main_toolbar_col_active_changed (PhotosMainToolbar *self, PhotosBaseItem
     }
 
   photos_header_bar_set_mode (PHOTOS_HEADER_BAR (priv->toolbar), mode);
+  photos_main_toolbar_update_remote_display_button (self);
   photos_main_toolbar_set_toolbar_title (self);
 }
 
@@ -236,47 +296,6 @@ photos_main_toolbar_select_button_clicked (PhotosMainToolbar *self)
 }
 
 
-static void
-photos_main_toolbar_remote_display_button_clicked (PhotosMainToolbar *self)
-{
-  PhotosMainToolbarPrivate *priv = self->priv;
-
-  photos_remote_display_manager_stop (priv->remote_mngr);
-}
-
-
-static void
-photos_main_toolbar_add_remote_display_button (PhotosMainToolbar *self)
-{
-  PhotosMainToolbarPrivate *priv = self->priv;
-  PhotosDlnaRenderer *renderer;
-  GtkLabel *label;
-  gchar *text;
-  const gchar *name;
-
-  if (priv->remote_display_button != NULL)
-    gtk_widget_destroy (priv->remote_display_button);
-
-  renderer = photos_remote_display_manager_get_renderer (priv->remote_mngr);
-  name = photos_dlna_renderer_get_friendly_name (renderer);
-  text = g_markup_printf_escaped ("Displaying on <b>%s</b>", name);
-
-  priv->remote_display_button = gtk_button_new_with_label (text);
-  label = GTK_LABEL (gtk_bin_get_child (GTK_BIN (priv->remote_display_button)));
-  gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_MIDDLE);
-  gtk_label_set_use_markup (label, TRUE);
-  gtk_widget_set_margin_end (priv->remote_display_button, 12);
-  gtk_header_bar_pack_start (GTK_HEADER_BAR (priv->toolbar), priv->remote_display_button);
-  gtk_widget_show_all (priv->remote_display_button);
-
-  g_signal_connect_swapped (priv->remote_display_button,
-                            "clicked",
-                            G_CALLBACK (photos_main_toolbar_remote_display_button_clicked),
-                            self);
-  g_free (text);
-}
-
-
 static GtkWidget *
 photos_main_toolbar_add_search_button (PhotosMainToolbar *self)
 {
@@ -495,24 +514,6 @@ photos_main_toolbar_populate_for_collections (PhotosMainToolbar *self)
 
 
 static void
-photos_main_toolbar_update_remote_display_button (PhotosMainToolbar *self)
-{
-  PhotosMainToolbarPrivate *priv = self->priv;
-  PhotosWindowMode window_mode;
-  gboolean selection_mode, active;
-
-  selection_mode = photos_selection_controller_get_selection_mode (priv->sel_cntrlr);
-  window_mode = photos_mode_controller_get_window_mode (priv->mode_cntrlr);
-  active = photos_remote_display_manager_is_active (priv->remote_mngr);
-
-  if (active && !selection_mode && window_mode != PHOTOS_WINDOW_MODE_PREVIEW)
-    photos_main_toolbar_add_remote_display_button (self);
-  else
-    g_clear_pointer (&priv->remote_display_button, gtk_widget_destroy);
-}
-
-
-static void
 photos_main_toolbar_populate_for_favorites (PhotosMainToolbar *self)
 {
   PhotosMainToolbarPrivate *priv = self->priv;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]