Windows: Reduce focus juggling on game start.
Previously, we would activate the debugger (if enabled), and then reactivate the main window. This meant if you switched to something, PPSSPP would demand focus once the game loaded.
This commit is contained in:
parent
8d0ca1e4f1
commit
5f9dfeea86
5 changed files with 13 additions and 10 deletions
|
@ -848,14 +848,14 @@ void CDisasm::SetDebugMode(bool _bDebug, bool switchPC)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDisasm::Show(bool bShow) {
|
void CDisasm::Show(bool bShow, bool includeToTop) {
|
||||||
if (deferredSymbolFill_ && bShow) {
|
if (deferredSymbolFill_ && bShow) {
|
||||||
if (g_symbolMap) {
|
if (g_symbolMap) {
|
||||||
g_symbolMap->FillSymbolListBox(GetDlgItem(m_hDlg, IDC_FUNCTIONLIST), ST_FUNCTION);
|
g_symbolMap->FillSymbolListBox(GetDlgItem(m_hDlg, IDC_FUNCTIONLIST), ST_FUNCTION);
|
||||||
deferredSymbolFill_ = false;
|
deferredSymbolFill_ = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Dialog::Show(bShow);
|
Dialog::Show(bShow, includeToTop);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDisasm::NotifyMapLoaded() {
|
void CDisasm::NotifyMapLoaded() {
|
||||||
|
|
|
@ -49,7 +49,7 @@ public:
|
||||||
CDisasm(HINSTANCE _hInstance, HWND _hParent, DebugInterface *cpu);
|
CDisasm(HINSTANCE _hInstance, HWND _hParent, DebugInterface *cpu);
|
||||||
~CDisasm();
|
~CDisasm();
|
||||||
|
|
||||||
void Show(bool bShow) override;
|
void Show(bool bShow, bool includeToTop = true) override;
|
||||||
|
|
||||||
void Update() override {
|
void Update() override {
|
||||||
UpdateDialog(true);
|
UpdateDialog(true);
|
||||||
|
|
|
@ -540,7 +540,7 @@ namespace MainWindow
|
||||||
void CreateDebugWindows() {
|
void CreateDebugWindows() {
|
||||||
disasmWindow = new CDisasm(MainWindow::GetHInstance(), MainWindow::GetHWND(), currentDebugMIPS);
|
disasmWindow = new CDisasm(MainWindow::GetHInstance(), MainWindow::GetHWND(), currentDebugMIPS);
|
||||||
DialogManager::AddDlg(disasmWindow);
|
DialogManager::AddDlg(disasmWindow);
|
||||||
disasmWindow->Show(g_Config.bShowDebuggerOnLoad);
|
disasmWindow->Show(g_Config.bShowDebuggerOnLoad, false);
|
||||||
|
|
||||||
#if PPSSPP_API(ANY_GL)
|
#if PPSSPP_API(ANY_GL)
|
||||||
geDebuggerWindow = new CGEDebugger(MainWindow::GetHInstance(), MainWindow::GetHWND());
|
geDebuggerWindow = new CGEDebugger(MainWindow::GetHInstance(), MainWindow::GetHWND());
|
||||||
|
@ -935,8 +935,6 @@ namespace MainWindow
|
||||||
|
|
||||||
if (disasmWindow)
|
if (disasmWindow)
|
||||||
disasmWindow->UpdateDialog();
|
disasmWindow->UpdateDialog();
|
||||||
|
|
||||||
SetForegroundWindow(hwndMain);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_USER_SAVESTATE_FINISH:
|
case WM_USER_SAVESTATE_FINISH:
|
||||||
|
|
|
@ -30,11 +30,16 @@ void Dialog::Destroy()
|
||||||
DestroyWindow(m_hDlg);
|
DestroyWindow(m_hDlg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Dialog::Show(bool _bShow)
|
void Dialog::Show(bool _bShow, bool includeToTop)
|
||||||
{
|
{
|
||||||
m_bShowState = _bShow ? SW_NORMAL : SW_HIDE;
|
if (_bShow && includeToTop)
|
||||||
|
m_bShowState = SW_SHOWNORMAL;
|
||||||
|
else if (_bShow)
|
||||||
|
m_bShowState = SW_SHOWNOACTIVATE;
|
||||||
|
else
|
||||||
|
m_bShowState = SW_HIDE;
|
||||||
ShowWindow(m_hDlg, m_bShowState);
|
ShowWindow(m_hDlg, m_bShowState);
|
||||||
if (_bShow)
|
if (_bShow && includeToTop)
|
||||||
BringWindowToTop(m_hDlg);
|
BringWindowToTop(m_hDlg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ public:
|
||||||
Dialog(LPCSTR res, HINSTANCE _hInstance, HWND _hParent);
|
Dialog(LPCSTR res, HINSTANCE _hInstance, HWND _hParent);
|
||||||
virtual ~Dialog();
|
virtual ~Dialog();
|
||||||
|
|
||||||
virtual void Show(bool _bShow);
|
virtual void Show(bool _bShow, bool includeToTop = true);
|
||||||
virtual void Update() {}
|
virtual void Update() {}
|
||||||
|
|
||||||
HWND GetDlgHandle() {
|
HWND GetDlgHandle() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue