@@ -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