[gnome-photos] main-toolbar: The back button should always be the left-most element
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] main-toolbar: The back button should always be the left-most element
- Date: Fri, 23 Oct 2015 09:48:17 +0000 (UTC)
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]