Skip to content

Commit 955ec4c

Browse files
committed
Enable with settings and touch mode, squash to initial osk manager
1 parent bfc3ab7 commit 955ec4c

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

src/OSK/OSKManager.vala

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@ public class Gala.OSKManager : Object {
1212
private const string OSK_BUS_NAME = "io.elementary.OSK";
1313
private const string OSK_OBJECT_PATH = "/io/elementary/OSK";
1414

15+
private const string OSK_SETTINGS_KEY = "screen-keyboard-enabled";
16+
1517
public Meta.Display display { private get; construct; }
1618
public InputMethod im { private get; construct; }
1719

1820
public int monitor { get; private set; default = 0; }
1921
public bool visible { get; private set; default = false; }
2022

23+
private static Settings settings = new Settings ("org.gnome.desktop.a11y.applications");
24+
2125
private OSKProxy? osk;
2226
private OSKReceiver? receiver;
2327

@@ -28,6 +32,9 @@ public class Gala.OSKManager : Object {
2832
}
2933

3034
construct {
35+
settings.changed[OSK_SETTINGS_KEY].connect (sync_enabled);
36+
Clutter.get_default_backend ().get_default_seat ().notify["touch-mode"].connect (sync_enabled);
37+
3138
Bus.watch_name (SESSION, OSK_BUS_NAME, NONE, () => osk_appeared.begin (), osk_lost);
3239

3340
im.input_panel_state.connect (on_input_panel_state_changed);
@@ -54,7 +61,10 @@ public class Gala.OSKManager : Object {
5461
}
5562

5663
private void sync_enabled () {
57-
enabled = true;
64+
var manually_enabled = settings.get_boolean (OSK_SETTINGS_KEY);
65+
var auto_enabled = Clutter.get_default_backend ().get_default_seat ().touch_mode;
66+
67+
enabled = manually_enabled || auto_enabled;
5868

5969
if (osk != null) {
6070
osk.set_enabled.begin (enabled);

0 commit comments

Comments
 (0)