Skip to content

Commit 4bdacde

Browse files
committed
KeyboardManager: update for mutter50
1 parent d99a76c commit 4bdacde

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

compositor/KeyboardManager.vala

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,12 @@ public class GreeterCompositor.KeyboardManager : Object {
4848

4949
[CCode (instance_pos = -1)]
5050
public static bool handle_modifiers_accelerator_activated (Meta.Display display, bool backward) {
51+
#if !HAS_MUTTER50
5152
#if HAS_MUTTER46
5253
display.get_compositor ().backend.ungrab_keyboard (display.get_current_time ());
5354
#else
5455
display.ungrab_keyboard (display.get_current_time ());
56+
#endif
5557
#endif
5658

5759
var sources = settings.get_value ("sources");
@@ -79,7 +81,11 @@ public class GreeterCompositor.KeyboardManager : Object {
7981
private void set_keyboard_layout (GLib.Settings settings, string key) {
8082
unowned var backend = display.get_context ().get_backend ();
8183

84+
#if HAS_MUTTER50
85+
if (key == "sources" || key == "xkb-options" || key == "current") {
86+
#else
8287
if (key == "sources" || key == "xkb-options") {
88+
#endif
8389
string[] layouts = {}, variants = {};
8490

8591
var sources = settings.get_value ("sources");
@@ -111,7 +117,12 @@ public class GreeterCompositor.KeyboardManager : Object {
111117
cancellable = new GLib.Cancellable ();
112118
}
113119

120+
#if HAS_MUTTER50
121+
var description = new Meta.KeymapDescription.from_rules (settings.get_string ("xkb-model"), layout, variant, options, layouts, layouts);
122+
backend.set_keymap_async.begin (description, settings.get_uint("current"), cancellable, (obj, res) => {
123+
#else
114124
backend.set_keymap_async.begin (layout, variant, options, settings.get_string ("xkb-model"), cancellable, (obj, res) => {
125+
#endif
115126
try {
116127
((Meta.Backend) obj).set_keymap_async.end (res);
117128
} catch (Error e) {
@@ -128,6 +139,7 @@ public class GreeterCompositor.KeyboardManager : Object {
128139
#else
129140
backend.set_keymap (layout, variant, options);
130141
#endif
142+
#if !HAS_MUTTER50
131143
} else if (key == "current") {
132144
#if HAS_MUTTER49
133145
if (cancellable != null) {
@@ -148,6 +160,7 @@ public class GreeterCompositor.KeyboardManager : Object {
148160
});
149161
#else
150162
backend.lock_layout_group (settings.get_uint ("current"));
163+
#endif
151164
#endif
152165
}
153166
}

0 commit comments

Comments
 (0)