* Debugger: newly created Bookmarks inherit existing symbolic name by default
* Debugger, Tracer: right-clicking on an address or a symbolic name works even when there's selection
This commit is contained in:
parent
8f9e2be234
commit
9af83bb79c
|
@ -1380,7 +1380,7 @@ void LoadGameDebuggerData(HWND hwndDlg = hDebug)
|
|||
int Debugger_CheckClickingOnAnAddressOrSymbolicName(unsigned int lineNumber, bool onlyCheckWhenNothingSelected)
|
||||
{
|
||||
// debug_str contains the text in the disassembly window
|
||||
int sel_start, sel_end;
|
||||
int sel_start = 0, sel_end = 0;
|
||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_GETSEL, (WPARAM)&sel_start, (LPARAM)&sel_end);
|
||||
if (onlyCheckWhenNothingSelected)
|
||||
if (sel_end > sel_start)
|
||||
|
@ -1511,8 +1511,14 @@ BOOL CALLBACK IDC_DEBUGGER_DISASSEMBLY_WndProc(HWND hwndDlg, UINT uMsg, WPARAM w
|
|||
}
|
||||
case WM_RBUTTONUP:
|
||||
{
|
||||
// if nothing is selected, try bringing Symbolic Debug Naming dialog
|
||||
int offset = Debugger_CheckClickingOnAnAddressOrSymbolicName(GET_Y_LPARAM(lParam) / debugSystem->fixedFontHeight, true);
|
||||
// save current selection
|
||||
int sel_start = 0, sel_end = 0;
|
||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_GETSEL, (WPARAM)&sel_start, (LPARAM)&sel_end);
|
||||
// simulate a click
|
||||
CallWindowProc(IDC_DEBUGGER_DISASSEMBLY_oldWndProc, hwndDlg, WM_LBUTTONDOWN, wParam, lParam);
|
||||
CallWindowProc(IDC_DEBUGGER_DISASSEMBLY_oldWndProc, hwndDlg, WM_LBUTTONUP, wParam, lParam);
|
||||
// try bringing Symbolic Debug Naming dialog
|
||||
int offset = Debugger_CheckClickingOnAnAddressOrSymbolicName(GET_Y_LPARAM(lParam) / debugSystem->fixedFontHeight, false);
|
||||
if (offset != EOF)
|
||||
{
|
||||
if (DoSymbolicDebugNaming(offset, hDebug))
|
||||
|
@ -1524,7 +1530,16 @@ BOOL CALLBACK IDC_DEBUGGER_DISASSEMBLY_WndProc(HWND hwndDlg, UINT uMsg, WPARAM w
|
|||
CheckDlgButton(hDebug, IDC_DEBUGGER_ENABLE_SYMBOLIC, BST_CHECKED);
|
||||
}
|
||||
UpdateDebugger(false);
|
||||
} else
|
||||
{
|
||||
// then restore old selection
|
||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)sel_start, (LPARAM)sel_end);
|
||||
}
|
||||
return 0;
|
||||
} else
|
||||
{
|
||||
// then restore old selection
|
||||
SendDlgItemMessage(hDebug, IDC_DEBUGGER_DISASSEMBLY, EM_SETSEL, (WPARAM)sel_start, (LPARAM)sel_end);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -660,7 +660,14 @@ void AddDebuggerBookmark2(HWND hwnd, unsigned int addr)
|
|||
{
|
||||
int index = bookmarks_addr.size();
|
||||
bookmarks_addr.push_back(addr);
|
||||
bookmarks_name.push_back("");
|
||||
// try to find Symbolic name for this address
|
||||
Name* node = findNode(getNamesPointerForAddress(addr), addr);
|
||||
if (node && node->name)
|
||||
bookmarks_name.push_back(node->name);
|
||||
else
|
||||
bookmarks_name.push_back("");
|
||||
|
||||
// add new item to ListBox
|
||||
char buffer[256];
|
||||
sprintf(buffer, "%04X %s", bookmarks_addr[index], bookmarks_name[index].c_str());
|
||||
SendDlgItemMessage(hwnd, LIST_DEBUGGER_BOOKMARKS, LB_ADDSTRING, 0, (LPARAM)buffer);
|
||||
|
@ -676,7 +683,7 @@ void AddDebuggerBookmark2(HWND hwnd, unsigned int addr)
|
|||
**/
|
||||
void AddDebuggerBookmark(HWND hwnd)
|
||||
{
|
||||
unsigned int n;
|
||||
int n;
|
||||
char buffer[5] = {0};
|
||||
|
||||
GetDlgItemText(hwnd, IDC_DEBUGGER_BOOKMARK, buffer, 5);
|
||||
|
|
|
@ -220,8 +220,14 @@ BOOL CALLBACK IDC_TRACER_LOG_WndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPA
|
|||
}
|
||||
case WM_RBUTTONUP:
|
||||
{
|
||||
// if nothing is selected, try bringing Symbolic Debug Naming dialog
|
||||
int offset = Tracer_CheckClickingOnAnAddressOrSymbolicName(tracesi.nPos + (GET_Y_LPARAM(lParam) / debugSystem->fixedFontHeight), true);
|
||||
// save current selection
|
||||
int sel_start, sel_end;
|
||||
SendDlgItemMessage(hTracer, IDC_TRACER_LOG, EM_GETSEL, (WPARAM)&sel_start, (LPARAM)&sel_end);
|
||||
// simulate a click
|
||||
CallWindowProc(IDC_TRACER_LOG_oldWndProc, hwndDlg, WM_LBUTTONDOWN, wParam, lParam);
|
||||
CallWindowProc(IDC_TRACER_LOG_oldWndProc, hwndDlg, WM_LBUTTONUP, wParam, lParam);
|
||||
// try bringing Symbolic Debug Naming dialog
|
||||
int offset = Tracer_CheckClickingOnAnAddressOrSymbolicName(tracesi.nPos + (GET_Y_LPARAM(lParam) / debugSystem->fixedFontHeight), false);
|
||||
if (offset != EOF)
|
||||
{
|
||||
if (DoSymbolicDebugNaming(offset, hTracer))
|
||||
|
@ -230,7 +236,16 @@ BOOL CALLBACK IDC_TRACER_LOG_WndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPA
|
|||
UpdateDebugger(false);
|
||||
if (hMemView)
|
||||
UpdateCaption();
|
||||
} else
|
||||
{
|
||||
// then restore old selection
|
||||
SendDlgItemMessage(hTracer, IDC_TRACER_LOG, EM_SETSEL, (WPARAM)sel_start, (LPARAM)sel_end);
|
||||
}
|
||||
return 0;
|
||||
} else
|
||||
{
|
||||
// then restore old selection
|
||||
SendDlgItemMessage(hTracer, IDC_TRACER_LOG, EM_SETSEL, (WPARAM)sel_start, (LPARAM)sel_end);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue