stack: Remember previous position during focus navigation
This commit is contained in:
parent
e6f563d04e
commit
e116f20396
6 changed files with 137 additions and 73 deletions
|
|
@ -22,7 +22,7 @@ use crate::{
|
|||
tiling::{NodeDesc, SwapWindowGrab, TilingLayout},
|
||||
},
|
||||
zoom::ZoomState,
|
||||
SeatExt, Trigger,
|
||||
LastModifierChange, SeatExt, Trigger,
|
||||
},
|
||||
utils::{float::NextDown, prelude::*, quirks::workspace_overview_is_open},
|
||||
wayland::{
|
||||
|
|
@ -219,6 +219,7 @@ impl State {
|
|||
let serial = SERIAL_COUNTER.next_serial();
|
||||
let time = Event::time_msec(&event);
|
||||
let keyboard = seat.get_keyboard().unwrap();
|
||||
let previous_modifiers = keyboard.modifier_state();
|
||||
if let Some((action, pattern)) = keyboard
|
||||
.input(
|
||||
self,
|
||||
|
|
@ -227,6 +228,15 @@ impl State {
|
|||
serial,
|
||||
time,
|
||||
|data, modifiers, handle| {
|
||||
if previous_modifiers != *modifiers {
|
||||
*seat
|
||||
.user_data()
|
||||
.get::<LastModifierChange>()
|
||||
.unwrap()
|
||||
.0
|
||||
.lock()
|
||||
.unwrap() = Some(serial);
|
||||
}
|
||||
Self::filter_keyboard_input(
|
||||
data, &event, &seat, modifiers, handle, serial,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue