[gnome-control-center/T20818: 22/54] universal-access: adapt typing dialog for small screens



commit 4237e6790818ceddecab9ad81b731d75c8c01d4e
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Sun Jan 10 11:35:37 2016 -0200

    universal-access: adapt typing dialog for small screens
    
    The Typing dialog doesn't fit well on small screens, for it
    requests more size than a composite screen can provide.
    
    To fix that, add scrollbars and use them whenever we're running
    on small screens.
    
    [endlessm/eos-shell#6226]

 panels/universal-access/cc-ua-panel.c |   37 +++++++++++++++++++++++++++++---
 panels/universal-access/uap.ui        |   16 ++++++++++++++
 2 files changed, 49 insertions(+), 4 deletions(-)
---
diff --git a/panels/universal-access/cc-ua-panel.c b/panels/universal-access/cc-ua-panel.c
index 1cf56fe..5f3575e 100644
--- a/panels/universal-access/cc-ua-panel.c
+++ b/panels/universal-access/cc-ua-panel.c
@@ -122,6 +122,9 @@ struct _CcUaPanelPrivate
   GList *sections_reverse;
 
   GSList *toplevels;
+
+  GtkWidget *typing_dialog;
+  GtkWidget *scrolled_window;
 };
 
 static void
@@ -155,6 +158,30 @@ cc_ua_panel_get_help_uri (CcPanel *panel)
 }
 
 static void
+cc_ua_panel_constructed (GObject *object)
+{
+  CcUaPanelPrivate *priv;
+  CcShell *shell;
+
+  G_OBJECT_CLASS (cc_ua_panel_parent_class)->constructed (object);
+
+  priv = CC_UA_PANEL (object)->priv;
+  shell = cc_panel_get_shell (CC_PANEL (object));
+
+  if (cc_shell_is_small_screen (shell))
+    {
+      gint width, height;
+
+      gtk_window_get_size (GTK_WINDOW (cc_shell_get_toplevel (shell)), &width, &height);
+      gtk_widget_set_size_request (GTK_WIDGET (priv->typing_dialog), width, height);
+
+      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->scrolled_window),
+                                      GTK_POLICY_AUTOMATIC,
+                                      GTK_POLICY_AUTOMATIC);
+    }
+}
+
+static void
 cc_ua_panel_class_init (CcUaPanelClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -164,6 +191,7 @@ cc_ua_panel_class_init (CcUaPanelClass *klass)
 
   panel_class->get_help_uri = cc_ua_panel_get_help_uri;
 
+  object_class->constructed = cc_ua_panel_constructed;
   object_class->dispose = cc_ua_panel_dispose;
 }
 
@@ -887,12 +915,13 @@ cc_ua_panel_init_keyboard (CcUaPanel *self)
                    G_SETTINGS_BIND_NO_SENSITIVITY);
   g_object_bind_property (sw, "active", w, "sensitive", G_BINDING_SYNC_CREATE);
 
-  dialog = WID ("typing_dialog");
-  priv->toplevels = g_slist_prepend (priv->toplevels, dialog);
+  priv->typing_dialog = WID ("typing_dialog");
+  priv->toplevels = g_slist_prepend (priv->toplevels, priv->typing_dialog);
+  priv->scrolled_window = WID ("typing-scrolledwindow");
 
-  g_object_set_data (G_OBJECT (WID ("row_accessx")), "dialog", dialog);
+  g_object_set_data (G_OBJECT (WID ("row_accessx")), "dialog", priv->typing_dialog);
 
-  g_signal_connect (dialog, "delete-event",
+  g_signal_connect (priv->typing_dialog, "delete-event",
                     G_CALLBACK (gtk_widget_hide_on_delete), NULL);
 }
 
diff --git a/panels/universal-access/uap.ui b/panels/universal-access/uap.ui
index cdb7662..3b1e094 100644
--- a/panels/universal-access/uap.ui
+++ b/panels/universal-access/uap.ui
@@ -1791,6 +1791,18 @@
         <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
         <child>
+          <object class="GtkScrolledWindow" id="typing-scrolledwindow">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hscrollbar_policy">never</property>
+            <property name="vscrollbar_policy">never</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <child>
+              <object class="GtkViewport" id="typing-viewport">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
           <object class="GtkGrid" id="grid6">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
@@ -2408,6 +2420,10 @@
               </packing>
             </child>
           </object>
+                </child>
+              </object>
+            </child>
+          </object>
           <packing>
             <property name="expand">True</property>
             <property name="fill">True</property>


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