[gnome-games] preferences-window: Add back button for mobile



commit d184b242b89e5d28347a908312311fd5621a3830
Author: Alexander Mikhaylenko <exalm7659 gmail com>
Date:   Thu Aug 15 15:23:58 2019 +0500

    preferences-window: Add back button for mobile
    
    Since there's no close button on mobile, it needs an alternative way to
    close the dialog.

 data/ui/preferences-window.ui  | 30 +++++++++++++++++++++++++++---
 src/ui/preferences-window.vala | 13 ++++++++++---
 2 files changed, 37 insertions(+), 6 deletions(-)
---
diff --git a/data/ui/preferences-window.ui b/data/ui/preferences-window.ui
index 32d9d711..67bce5a8 100644
--- a/data/ui/preferences-window.ui
+++ b/data/ui/preferences-window.ui
@@ -25,6 +25,30 @@
                     <property name="visible">True</property>
                     <property name="title" translatable="yes">Preferences</property>
                     <property name="show-close-button">True</property>
+                    <child>
+                      <object class="GtkButton" id="window_back_button">
+                        <property name="visible">False</property>
+                        <signal name="clicked" handler="on_back_clicked"/>
+                        <style>
+                          <class name="image-button"/>
+                        </style>
+                        <child internal-child="accessible">
+                          <object class="AtkObject">
+                            <property name="accessible-name" translatable="yes">Back</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkImage">
+                            <property name="visible">True</property>
+                            <property name="icon-name">go-previous-symbolic</property>
+                            <property name="icon-size">1</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="pack-type">start</property>
+                      </packing>
+                    </child>
                   </object>
                 </child>
                 <child>
@@ -43,19 +67,19 @@
                     <property name="hexpand">True</property>
                     <property name="show-close-button">True</property>
                     <child>
-                      <object class="GtkButton" id="back_button">
+                      <object class="GtkButton" id="page_back_button">
                         <property name="visible">False</property>
                         <signal name="clicked" handler="on_back_clicked"/>
                         <style>
                           <class name="image-button"/>
                         </style>
                         <child internal-child="accessible">
-                          <object class="AtkObject" id="a11y-back">
+                          <object class="AtkObject">
                             <property name="accessible-name" translatable="yes">Back</property>
                           </object>
                         </child>
                         <child>
-                          <object class="GtkImage" id="back_image">
+                          <object class="GtkImage">
                             <property name="visible">True</property>
                             <property name="icon-name">go-previous-symbolic</property>
                             <property name="icon-size">1</property>
diff --git a/src/ui/preferences-window.vala b/src/ui/preferences-window.vala
index bbf5755a..c51a3bd2 100644
--- a/src/ui/preferences-window.vala
+++ b/src/ui/preferences-window.vala
@@ -22,9 +22,10 @@ private class Games.PreferencesWindow : Gtk.Window {
        private Gtk.Stack stack;
        [GtkChild]
        private Hdy.HeaderGroup header_group;
-
        [GtkChild]
-       private Gtk.Button back_button;
+       private Gtk.Button page_back_button;
+       [GtkChild]
+       private Gtk.Button window_back_button;
 
        private PreferencesSubpage _subpage;
        public PreferencesSubpage subpage {
@@ -107,6 +108,11 @@ private class Games.PreferencesWindow : Gtk.Window {
 
        [GtkCallback]
        private void on_back_clicked () {
+               if (content_box.visible_child == sidebar) {
+                       close ();
+                       return;
+               }
+
                content_box.visible_child = sidebar;
                titlebar_box.visible_child = left_header_bar;
                update_header_group ();
@@ -117,7 +123,8 @@ private class Games.PreferencesWindow : Gtk.Window {
                var folded = content_box.folded;
 
                update_header_group ();
-               back_button.visible = folded;
+               page_back_button.visible = folded;
+               window_back_button.visible = folded;
                sidebar.show_selection = !folded;
 
                if (folded)


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