diff --git a/src/shell/focus/mod.rs b/src/shell/focus/mod.rs index 135ffe5c..c81d8b04 100644 --- a/src/shell/focus/mod.rs +++ b/src/shell/focus/mod.rs @@ -266,21 +266,21 @@ impl Common { .get::() .and_then(|x| x.take()) { - if !popup_grab.has_ended() { - if let Some(new) = popup_grab.current_grab() { - trace!("restore focus to previous popup grab"); - if let Some(keyboard) = seat.get_keyboard() { - keyboard.set_focus( - state, - Some(new.clone()), - SERIAL_COUNTER.next_serial(), - ); - } - ActiveFocus::set(&seat, Some(new)); - seat.user_data() + if !popup_grab.has_ended() { + if let Some(new) = popup_grab.current_grab() { + trace!("restore focus to previous popup grab"); + if let Some(keyboard) = seat.get_keyboard() { + keyboard.set_focus( + state, + Some(new.clone()), + SERIAL_COUNTER.next_serial(), + ); + } + ActiveFocus::set(&seat, Some(new)); + seat.user_data() .get_or_insert::(PopupGrabData::default) - .set(Some(popup_grab)); - continue; + .set(Some(popup_grab)); + continue; } } }