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(_)
|
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 {
|
if !self.monitors_active {
|
||||||
state.redraw_state = RedrawState::Idle;
|
reset();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if !backend.is_active() {
|
if !backend.is_active() {
|
||||||
state.redraw_state = RedrawState::Idle;
|
reset();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let Some(renderer) = backend.renderer() else {
|
let Some(renderer) = backend.renderer() else {
|
||||||
state.redraw_state = RedrawState::Idle;
|
reset();
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user