mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-22 02:01:55 +07:00
Fix redraw state resetting on redraw cancel
This commit is contained in:
+14
-3
@@ -1099,18 +1099,29 @@ impl Niri {
|
||||
RedrawState::Queued(_) | RedrawState::WaitingForEstimatedVBlankAndQueued(_)
|
||||
));
|
||||
|
||||
let mut reset = || {
|
||||
state.redraw_state =
|
||||
if let RedrawState::WaitingForEstimatedVBlankAndQueued((token, _)) =
|
||||
state.redraw_state
|
||||
{
|
||||
RedrawState::WaitingForEstimatedVBlank(token)
|
||||
} else {
|
||||
RedrawState::Idle
|
||||
}
|
||||
};
|
||||
|
||||
if !self.monitors_active {
|
||||
state.redraw_state = RedrawState::Idle;
|
||||
reset();
|
||||
return;
|
||||
}
|
||||
|
||||
if !backend.is_active() {
|
||||
state.redraw_state = RedrawState::Idle;
|
||||
reset();
|
||||
return;
|
||||
}
|
||||
|
||||
let Some(renderer) = backend.renderer() else {
|
||||
state.redraw_state = RedrawState::Idle;
|
||||
reset();
|
||||
return;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user