mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-02-06 18:40:36 +00:00
input/overlays: fix premature pad interception removal
shader compilation and trophy notifications shouldn't cancel the pad interception during proper dialogs
This commit is contained in:
parent
4e25daffa6
commit
3ea94c286b
@ -116,7 +116,7 @@ struct msg_dlg_thread_info
|
||||
continue;
|
||||
}
|
||||
|
||||
dlg->close();
|
||||
dlg->close(true, true);
|
||||
}
|
||||
}
|
||||
else if (const auto dlg = g_fxo->get<msg_info>()->get())
|
||||
@ -463,7 +463,7 @@ error_code cellMsgDialogAbort()
|
||||
if (auto dlg = manager->get<rsx::overlays::message_dialog>())
|
||||
{
|
||||
g_fxo->get<msg_dlg_thread>()->wait_until = 0;
|
||||
dlg->close(false);
|
||||
dlg->close(false, true);
|
||||
return CELL_OK;
|
||||
}
|
||||
}
|
||||
|
@ -50,6 +50,6 @@ namespace rsx
|
||||
void shader_loading_dialog_native::close()
|
||||
{
|
||||
dlg->return_code = CELL_OK;
|
||||
dlg->close();
|
||||
dlg->close(false, false);
|
||||
}
|
||||
}
|
||||
|
@ -159,7 +159,7 @@ namespace rsx
|
||||
default: return;
|
||||
}
|
||||
|
||||
close();
|
||||
close(true, true);
|
||||
}
|
||||
|
||||
error_code message_dialog::show(bool is_blocking, const std::string& text, const MsgDialogType& type, std::function<void(s32 status)> on_close)
|
||||
|
@ -23,7 +23,7 @@ namespace rsx
|
||||
}
|
||||
|
||||
visible = false;
|
||||
close();
|
||||
close(true, true);
|
||||
};
|
||||
|
||||
fade_animation.active = true;
|
||||
|
@ -122,7 +122,7 @@ namespace rsx
|
||||
return_code = m_list->get_selected_index();
|
||||
// Fall through
|
||||
case pad_button::circle:
|
||||
close();
|
||||
close(true, true);
|
||||
break;
|
||||
case pad_button::dpad_up:
|
||||
m_list->select_previous();
|
||||
|
@ -72,7 +72,7 @@ namespace rsx
|
||||
{
|
||||
auto current_time = get_system_time();
|
||||
if (current_time > expire_time)
|
||||
close();
|
||||
close(false, false);
|
||||
|
||||
update_animation(current_time);
|
||||
|
||||
|
@ -78,7 +78,7 @@ namespace rsx
|
||||
sliding_animation.on_finish = [this]
|
||||
{
|
||||
s_trophy_semaphore.release();
|
||||
close();
|
||||
close(false, false);
|
||||
};
|
||||
|
||||
sliding_animation.active = true;
|
||||
|
@ -181,7 +181,7 @@ namespace rsx
|
||||
return 0;
|
||||
}
|
||||
|
||||
void user_interface::close(bool use_callback)
|
||||
void user_interface::close(bool use_callback, bool stop_pad_interception)
|
||||
{
|
||||
// Force unload
|
||||
exit.release(true);
|
||||
@ -197,7 +197,10 @@ namespace rsx
|
||||
thread_bits.wait(b);
|
||||
}
|
||||
|
||||
pad::SetIntercepted(false);
|
||||
if (stop_pad_interception)
|
||||
{
|
||||
pad::SetIntercepted(false);
|
||||
}
|
||||
|
||||
if (on_close && use_callback)
|
||||
{
|
||||
|
@ -90,7 +90,7 @@ namespace rsx
|
||||
|
||||
virtual void on_button_pressed(pad_button /*button_press*/) {}
|
||||
|
||||
void close(bool use_callback = true);
|
||||
void close(bool use_callback, bool stop_pad_interception);
|
||||
|
||||
s32 run_input_loop();
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user