test

Junkui Zhang created

Change summary

crates/gpui/src/platform/linux/wayland/client.rs | 30 ++++++++++++++++++
1 file changed, 30 insertions(+)

Detailed changes

crates/gpui/src/platform/linux/wayland/client.rs 🔗

@@ -1216,6 +1216,24 @@ impl Dispatch<wl_keyboard::WlKeyboard, ()> for WaylandClientStatePtr {
                 };
                 state.keyboard_state = Some(KeyboardState::new(xkb::State::new(&keymap)));
                 state.compose_state = get_xkb_compose_state(&xkb_context);
+                let layout = {
+                    let layout_idx = state
+                        .keyboard_state
+                        .as_mut()
+                        .unwrap()
+                        .state
+                        .serialize_layout(xkbcommon::xkb::STATE_LAYOUT_EFFECTIVE);
+                    let id = state
+                        .keyboard_state
+                        .as_mut()
+                        .unwrap()
+                        .state
+                        .get_keymap()
+                        .layout_get_name(layout_idx)
+                        .to_string();
+                    LinuxKeyboardLayout::new(id).id().to_string()
+                };
+                println!("Wayland Keyboard layout changed to {layout}");
                 drop(state);
 
                 this.handle_keyboard_layout_change();
@@ -1267,6 +1285,18 @@ impl Dispatch<wl_keyboard::WlKeyboard, ()> for WaylandClientStatePtr {
                     0,
                     group,
                 );
+                let layout = {
+                    let layout_idx = keyboard_state
+                        .state
+                        .serialize_layout(xkbcommon::xkb::STATE_LAYOUT_EFFECTIVE);
+                    let id = keyboard_state
+                        .state
+                        .get_keymap()
+                        .layout_get_name(layout_idx)
+                        .to_string();
+                    LinuxKeyboardLayout::new(id).id().to_string()
+                };
+                println!("Wayland Keyboard layout changed to {layout}");
                 state.modifiers = Modifiers::from_xkb(&keyboard_state.state);
                 state.capslock = Capslock::from_xkb(&keyboard_state.state);
                 let keymap_state = state.keymap_state.as_mut().unwrap();