diff --git a/3rdparty/OpenAL/openal-soft b/3rdparty/OpenAL/openal-soft index 90191edd20..dc7d7054a5 160000 --- a/3rdparty/OpenAL/openal-soft +++ b/3rdparty/OpenAL/openal-soft @@ -1 +1 @@ -Subproject commit 90191edd20bb877c5cbddfdac7ec0fe49ad93727 +Subproject commit dc7d7054a5b4f3bec1dc23a42fd616a0847af948 diff --git a/rpcs3/Emu/Cell/Modules/cellSaveData.cpp b/rpcs3/Emu/Cell/Modules/cellSaveData.cpp index 7c54db0173..db57195a5c 100644 --- a/rpcs3/Emu/Cell/Modules/cellSaveData.cpp +++ b/rpcs3/Emu/Cell/Modules/cellSaveData.cpp @@ -244,7 +244,7 @@ static std::vector get_save_entries(const std::string& base_dir, continue; } - SaveDataEntry save_entry; + SaveDataEntry save_entry {}; save_entry.dirName = psf::get_string(psf, "SAVEDATA_DIRECTORY"); save_entry.listParam = psf::get_string(psf, "SAVEDATA_LIST_PARAM"); save_entry.title = psf::get_string(psf, "TITLE"); @@ -326,7 +326,7 @@ static error_code select_and_delete(ppu_thread& ppu) focused = save_entries.empty() ? -1 : selected; // Get information from the selected entry - SaveDataEntry entry = save_entries[selected]; + const SaveDataEntry& entry = ::at32(save_entries, selected); const std::string info = entry.title + "\n" + entry.subtitle + "\n" + entry.details; // Reusable display message string @@ -760,7 +760,7 @@ static NEVER_INLINE error_code savedata_op(ppu_thread& ppu, u32 operation, u32 v result->userdata = userdata; // probably should be assigned only once (allows the callback to change it) - SaveDataEntry save_entry; + SaveDataEntry save_entry {}; if (setList) { @@ -820,7 +820,7 @@ static NEVER_INLINE error_code savedata_op(ppu_thread& ppu, u32 operation, u32 v break; } - SaveDataEntry save_entry2; + SaveDataEntry save_entry2 {}; save_entry2.dirName = psf::get_string(psf, "SAVEDATA_DIRECTORY"); save_entry2.listParam = psf::get_string(psf, "SAVEDATA_LIST_PARAM"); save_entry2.title = psf::get_string(psf, "TITLE"); @@ -1214,8 +1214,7 @@ static NEVER_INLINE error_code savedata_op(ppu_thread& ppu, u32 operation, u32 v else { // Get information from the selected entry - SaveDataEntry entry = save_entries[selected]; - message = get_confirmation_message(operation, entry); + message = get_confirmation_message(operation, ::at32(save_entries, selected)); } // Yield before a blocking dialog is being spawned @@ -1345,14 +1344,14 @@ static NEVER_INLINE error_code savedata_op(ppu_thread& ppu, u32 operation, u32 v else { // Get information from the selected entry - SaveDataEntry entry = save_entries[selected]; - message = get_confirmation_message(operation, entry); + message = get_confirmation_message(operation, ::at32(save_entries, selected)); } // Yield before a blocking dialog is being spawned lv2_obj::sleep(ppu); // Get user confirmation by opening a blocking dialog + // TODO: show fixedSet->newIcon s32 return_code = CELL_MSGDIALOG_BUTTON_NONE; error_code res = open_msg_dialog(true, CELL_MSGDIALOG_TYPE_SE_TYPE_NORMAL | CELL_MSGDIALOG_TYPE_BUTTON_TYPE_YESNO, vm::make_str(message), msg_dialog_source::_cellSaveData, vm::null, vm::null, vm::null, &return_code); diff --git a/rpcs3/rpcs3qt/gs_frame.cpp b/rpcs3/rpcs3qt/gs_frame.cpp index 7b5481d2d4..46469db968 100644 --- a/rpcs3/rpcs3qt/gs_frame.cpp +++ b/rpcs3/rpcs3qt/gs_frame.cpp @@ -68,8 +68,6 @@ gs_frame::gs_frame(QScreen* screen, const QRect& geometry, const QIcon& appIcon, , m_start_games_fullscreen(force_fullscreen) , m_renderer(g_cfg.video.renderer) { - load_gui_settings(); - m_window_title = Emu.GetFormattedTitle(0); if (!g_cfg_recording.load()) @@ -121,8 +119,7 @@ gs_frame::gs_frame(QScreen* screen, const QRect& geometry, const QIcon& appIcon, create(); } - m_shortcut_handler = new shortcut_handler(gui::shortcuts::shortcut_handler_id::game_window, this, m_gui_settings); - connect(m_shortcut_handler, &shortcut_handler::shortcut_activated, this, &gs_frame::handle_shortcut); + load_gui_settings(); // Change cursor when in fullscreen. connect(this, &QWindow::visibilityChanged, this, [this](QWindow::Visibility visibility) @@ -174,6 +171,20 @@ void gs_frame::load_gui_settings() m_lock_mouse_in_fullscreen = m_gui_settings->GetValue(gui::gs_lockMouseFs).toBool(); m_hide_mouse_after_idletime = m_gui_settings->GetValue(gui::gs_hideMouseIdle).toBool(); m_hide_mouse_idletime = m_gui_settings->GetValue(gui::gs_hideMouseIdleTime).toUInt(); + + if (m_disable_kb_hotkeys) + { + if (m_shortcut_handler) + { + m_shortcut_handler->deleteLater(); + m_shortcut_handler = nullptr; + } + } + else if (!m_shortcut_handler) + { + m_shortcut_handler = new shortcut_handler(gui::shortcuts::shortcut_handler_id::game_window, this, m_gui_settings); + connect(m_shortcut_handler, &shortcut_handler::shortcut_activated, this, &gs_frame::handle_shortcut); + } } void gs_frame::update_shortcuts() @@ -1101,7 +1112,7 @@ void gs_frame::handle_cursor(QWindow::Visibility visibility, bool visibility_cha void gs_frame::mouse_hide_timeout() { - // Our idle timeout occured, so we update the cursor + // Our idle timeout occurred, so we update the cursor if (m_hide_mouse_after_idletime && m_show_mouse) { handle_cursor(visibility(), false, false, false); diff --git a/rpcs3/rpcs3qt/save_manager_dialog.cpp b/rpcs3/rpcs3qt/save_manager_dialog.cpp index 5f3302be8a..ba52bed9ff 100644 --- a/rpcs3/rpcs3qt/save_manager_dialog.cpp +++ b/rpcs3/rpcs3qt/save_manager_dialog.cpp @@ -270,13 +270,12 @@ std::vector save_manager_dialog::GetSaveEntries(const std::string return; } - SaveDataEntry save_entry2; + SaveDataEntry save_entry2 {}; save_entry2.dirName = psf::get_string(psf, "SAVEDATA_DIRECTORY"); save_entry2.listParam = psf::get_string(psf, "SAVEDATA_LIST_PARAM"); save_entry2.title = psf::get_string(psf, "TITLE"); save_entry2.subtitle = psf::get_string(psf, "SUB_TITLE"); save_entry2.details = psf::get_string(psf, "DETAIL"); - save_entry2.size = 0; for (const auto& entry2 : fs::dir(base_dir + entry.name)) { diff --git a/rpcs3/rpcs3qt/shortcut_settings.cpp b/rpcs3/rpcs3qt/shortcut_settings.cpp index bca0fd57a9..fad59342a1 100644 --- a/rpcs3/rpcs3qt/shortcut_settings.cpp +++ b/rpcs3/rpcs3qt/shortcut_settings.cpp @@ -76,9 +76,9 @@ shortcut_settings::shortcut_settings() { shortcut::gw_frame_limit, shortcut_info{ "game_window_frame_limit", tr("Toggle Framelimit"), "Ctrl+F10", shortcut_handler_id::game_window, false } }, { shortcut::gw_toggle_mouse_and_keyboard, shortcut_info{ "game_window_toggle_mouse_and_keyboard", tr("Toggle Keyboard"), "Ctrl+F11", shortcut_handler_id::game_window, false } }, { shortcut::gw_home_menu, shortcut_info{ "gw_home_menu", tr("Open Home Menu"), "Shift+F10", shortcut_handler_id::game_window, false } }, - { shortcut::gw_mute_unmute, shortcut_info{ "gw_mute_unmute", tr("Mute/Unmute Audio"), "Shift+M", shortcut_handler_id::game_window, false } }, - { shortcut::gw_volume_up, shortcut_info{ "gw_volume_up", tr("Volume Up"), "Shift++", shortcut_handler_id::game_window, true } }, - { shortcut::gw_volume_down, shortcut_info{ "gw_volume_down", tr("Volume Down"), "Shift+-", shortcut_handler_id::game_window, true } }, + { shortcut::gw_mute_unmute, shortcut_info{ "gw_mute_unmute", tr("Mute/Unmute Audio"), "Ctrl+Shift+M", shortcut_handler_id::game_window, false } }, + { shortcut::gw_volume_up, shortcut_info{ "gw_volume_up", tr("Volume Up"), "Ctrl+Shift++", shortcut_handler_id::game_window, true } }, + { shortcut::gw_volume_down, shortcut_info{ "gw_volume_down", tr("Volume Down"), "Ctrl+Shift+-", shortcut_handler_id::game_window, true } }, }) { }