[gnome-control-center/T20818: 22/54] universal-access: adapt typing dialog for small screens
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center/T20818: 22/54] universal-access: adapt typing dialog for small screens
- Date: Tue, 23 Jan 2018 21:31:53 +0000 (UTC)
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]