diff --git a/Windows/GEDebugger/GEDebugger.cpp b/Windows/GEDebugger/GEDebugger.cpp index f0d881fec9..ef19a9dbae 100644 --- a/Windows/GEDebugger/GEDebugger.cpp +++ b/Windows/GEDebugger/GEDebugger.cpp @@ -129,6 +129,8 @@ void CGEDebugger::Init() { CGEDebugger::CGEDebugger(HINSTANCE _hInstance, HWND _hParent) : Dialog((LPCSTR)IDD_GEDEBUGGER, _hInstance, _hParent) , stepCountDlg(_hInstance, m_hDlg) { + SetMenu(m_hDlg, LoadMenu(_hInstance, MAKEINTRESOURCE(IDR_GEDBG_MENU))); + // minimum size = a little more than the default RECT windowRect; GetWindowRect(m_hDlg, &windowRect); @@ -185,8 +187,8 @@ CGEDebugger::CGEDebugger(HINSTANCE _hInstance, HWND _hParent) // set window position int x = g_Config.iGEWindowX == -1 ? windowRect.left : g_Config.iGEWindowX; int y = g_Config.iGEWindowY == -1 ? windowRect.top : g_Config.iGEWindowY; - int w = g_Config.iGEWindowW == -1 ? minWidth_ : g_Config.iGEWindowW; - int h = g_Config.iGEWindowH == -1 ? minHeight_ : g_Config.iGEWindowH; + int w = g_Config.iGEWindowW == -1 ? minWidth_ : std::max(minWidth_, g_Config.iGEWindowW); + int h = g_Config.iGEWindowH == -1 ? minHeight_ : std::max(minHeight_, g_Config.iGEWindowH); MoveWindow(m_hDlg,x,y,w,h,FALSE); SetTimer(m_hDlg, 1, USER_TIMER_MINIMUM, nullptr); @@ -704,11 +706,10 @@ void CGEDebugger::UpdateSize(WORD width, WORD height) { MoveWindow(tabControl,tabRect.left,tabRect.top,tabRect.right-tabRect.left,tabRect.bottom-tabRect.top,TRUE); } -void CGEDebugger::SavePosition() -{ +void CGEDebugger::SavePosition() { RECT rc; - if (GetWindowRect(m_hDlg, &rc)) - { + // Don't save while we're still loading. + if (tabs && GetWindowRect(m_hDlg, &rc)) { g_Config.iGEWindowX = rc.left; g_Config.iGEWindowY = rc.top; g_Config.iGEWindowW = rc.right - rc.left; diff --git a/Windows/ppsspp.rc b/Windows/ppsspp.rc index 6e2f2d4657..1239a147c3 100644 --- a/Windows/ppsspp.rc +++ b/Windows/ppsspp.rc @@ -662,6 +662,33 @@ BEGIN END END +IDR_GEDBG_MENU MENUEX +BEGIN + POPUP "&Actions", ID_GEDBG_ACTIONS_MENU + BEGIN + MENUITEM "Rec&ord Next Frame", IDC_GEDBG_RECORD + END + + POPUP "&Step", ID_GEDBG_STEP_MENU + BEGIN + MENUITEM "Next &Instruction", IDC_GEDBG_STEP + MENUITEM "To Cou&nter...", IDC_GEDBG_STEPCOUNT + MENUITEM "Next &Primitive", IDC_GEDBG_STEPPRIM + MENUITEM "Next &Curve", IDC_GEDBG_STEPCURVE + MENUITEM "Next &Texture", IDC_GEDBG_STEPTEX + MENUITEM "Next &Draw Flush", IDC_GEDBG_STEPDRAW + MENUITEM "Next &Frame", IDC_GEDBG_STEPFRAME + END + + POPUP "&Breakpoints", ID_GEDBG_BREAK_MENU + BEGIN + MENUITEM "&Resume", IDC_GEDBG_RESUME + MENUITEM "", 0, MFT_SEPARATOR + MENUITEM "Te&xture Pointer...", IDC_GEDBG_BREAKTEX + MENUITEM "Render Target Pointer...", IDC_GEDBG_BREAKTARGET + END +END + IDR_POPUPMENUS MENU BEGIN POPUP "memview" diff --git a/Windows/resource.h b/Windows/resource.h index ce21b3a85a..bb9fd35226 100644 --- a/Windows/resource.h +++ b/Windows/resource.h @@ -11,6 +11,7 @@ #define IDC_RAM 107 #define IDC_STEPOVER 108 #define IDC_TABDATATYPE 109 +#define IDR_GEDBG_MENU 110 #define ID_MEMVIEW_GOTOINDISASM 112 #define IDI_PPSSPP 115 #define IDI_STOPDISABLE 118 @@ -318,6 +319,9 @@ #define IDC_MEMVIEW_STATUS 40206 #define ID_MEMVIEW_EXTENTBEGIN 40207 #define ID_MEMVIEW_EXTENTEND 40208 +#define ID_GEDBG_ACTIONS_MENU 40209 +#define ID_GEDBG_STEP_MENU 40210 +#define ID_GEDBG_BREAK_MENU 40211 // Dummy option to let the buffered rendering hotkey cycle through all the options. #define ID_OPTIONS_BUFFEREDRENDERINGDUMMY 40500 @@ -330,7 +334,7 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 256 -#define _APS_NEXT_COMMAND_VALUE 40209 +#define _APS_NEXT_COMMAND_VALUE 40212 #define _APS_NEXT_CONTROL_VALUE 1202 #define _APS_NEXT_SYMED_VALUE 101 #endif