diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-09-30 15:24:50 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-09-30 15:24:50 +0300 |
| commit | 94e5408f46dd1635004748f34ad38ae9f2bc945d (patch) | |
| tree | 018aafd7661f0e9d17797a73643a060cd7dabe4b /src/ipc | |
| parent | eb190e3f9447e4d49cfdcb5a0093443ca8b684fe (diff) | |
| download | niri-94e5408f46dd1635004748f34ad38ae9f2bc945d.tar.gz niri-94e5408f46dd1635004748f34ad38ae9f2bc945d.tar.bz2 niri-94e5408f46dd1635004748f34ad38ae9f2bc945d.zip | |
Update Smithay
Diffstat (limited to 'src/ipc')
| -rw-r--r-- | src/ipc/server.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/ipc/server.rs b/src/ipc/server.rs index bdafee2e..633707eb 100644 --- a/src/ipc/server.rs +++ b/src/ipc/server.rs @@ -16,7 +16,6 @@ use futures_util::{select_biased, AsyncBufReadExt, AsyncWrite, AsyncWriteExt, Fu use niri_config::OutputName; use niri_ipc::state::{EventStreamState, EventStreamStatePart as _}; use niri_ipc::{Event, KeyboardLayouts, OutputConfigChanged, Reply, Request, Response, Workspace}; -use smithay::input::keyboard::XkbContextHandler; use smithay::reexports::calloop::generic::Generic; use smithay::reexports::calloop::{Interest, LoopHandle, Mode, PostAction}; use smithay::reexports::rustix::fs::unlink; @@ -385,10 +384,13 @@ impl State { pub fn ipc_keyboard_layouts_changed(&mut self) { let keyboard = self.niri.seat.get_keyboard().unwrap(); let keyboard_layouts = keyboard.with_xkb_state(self, |context| { - let layouts = context.keymap().layouts(); + let xkb = context.xkb().lock().unwrap(); + let layouts = xkb.layouts(); KeyboardLayouts { - names: layouts.map(str::to_owned).collect(), - current_idx: context.active_layout().0 as u8, + names: layouts + .map(|layout| xkb.layout_name(layout).to_owned()) + .collect(), + current_idx: xkb.active_layout().0 as u8, } }); @@ -406,7 +408,10 @@ impl State { pub fn ipc_refresh_keyboard_layout_index(&mut self) { let keyboard = self.niri.seat.get_keyboard().unwrap(); - let idx = keyboard.with_xkb_state(self, |context| context.active_layout().0 as u8); + let idx = keyboard.with_xkb_state(self, |context| { + let xkb = context.xkb().lock().unwrap(); + xkb.active_layout().0 as u8 + }); let Some(server) = &self.niri.ipc_server else { return; |
