fix: set outer mode from delayed init if there is already an overlay mode active

This fixes starting flow with a command to initally open an overlay and then
cancelling or exiting the overlay without loading a new mode.
This commit is contained in:
CJ van den Berg 2025-08-05 12:38:12 +02:00
parent 67fc1581d3
commit e13295100b
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

View file

@ -196,7 +196,14 @@ fn init_input_namespace(self: *Self) InitError!void {
fn init_delayed(self: *Self) command.Result {
self.delayed_init_done = true;
if (self.input_mode_) |_| {} else {
if (self.input_mode_) |_| {
if (self.delayed_init_input_mode) |delayed_init_input_mode| {
if (self.input_mode_outer_ == null) {
self.input_mode_outer_ = delayed_init_input_mode;
self.delayed_init_input_mode = null;
}
}
} else {
if (self.delayed_init_input_mode) |delayed_init_input_mode| {
try enter_input_mode(self, delayed_init_input_mode);
self.delayed_init_input_mode = null;