mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Debugger: Handle memview select right click better.
Shouldn't reset if you click inside. Also should basically ignore modifiers, that's how it normally behaves.
This commit is contained in:
parent
a7101b128f
commit
bba748d627
2 changed files with 29 additions and 18 deletions
|
@ -118,9 +118,9 @@ LRESULT CALLBACK CtrlMemView::wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
|
||||||
break;
|
break;
|
||||||
case WM_MOUSEWHEEL:
|
case WM_MOUSEWHEEL:
|
||||||
if (GET_WHEEL_DELTA_WPARAM(wParam) > 0) {
|
if (GET_WHEEL_DELTA_WPARAM(wParam) > 0) {
|
||||||
ccp->ScrollWindow(-3, GotoModeFromModifiers());
|
ccp->ScrollWindow(-3, GotoModeFromModifiers(false));
|
||||||
} else if (GET_WHEEL_DELTA_WPARAM(wParam) < 0) {
|
} else if (GET_WHEEL_DELTA_WPARAM(wParam) < 0) {
|
||||||
ccp->ScrollWindow(3, GotoModeFromModifiers());
|
ccp->ScrollWindow(3, GotoModeFromModifiers(false));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WM_ERASEBKGND:
|
case WM_ERASEBKGND:
|
||||||
|
@ -344,16 +344,16 @@ void CtrlMemView::onPaint(WPARAM wParam, LPARAM lParam) {
|
||||||
void CtrlMemView::onVScroll(WPARAM wParam, LPARAM lParam) {
|
void CtrlMemView::onVScroll(WPARAM wParam, LPARAM lParam) {
|
||||||
switch (wParam & 0xFFFF) {
|
switch (wParam & 0xFFFF) {
|
||||||
case SB_LINEDOWN:
|
case SB_LINEDOWN:
|
||||||
ScrollWindow(1, GotoModeFromModifiers());
|
ScrollWindow(1, GotoModeFromModifiers(false));
|
||||||
break;
|
break;
|
||||||
case SB_LINEUP:
|
case SB_LINEUP:
|
||||||
ScrollWindow(-1, GotoModeFromModifiers());
|
ScrollWindow(-1, GotoModeFromModifiers(false));
|
||||||
break;
|
break;
|
||||||
case SB_PAGEDOWN:
|
case SB_PAGEDOWN:
|
||||||
ScrollWindow(visibleRows_, GotoModeFromModifiers());
|
ScrollWindow(visibleRows_, GotoModeFromModifiers(false));
|
||||||
break;
|
break;
|
||||||
case SB_PAGEUP:
|
case SB_PAGEUP:
|
||||||
ScrollWindow(-visibleRows_, GotoModeFromModifiers());
|
ScrollWindow(-visibleRows_, GotoModeFromModifiers(false));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
|
@ -384,22 +384,22 @@ void CtrlMemView::onKeyDown(WPARAM wParam, LPARAM lParam) {
|
||||||
|
|
||||||
switch (wParam & 0xFFFF) {
|
switch (wParam & 0xFFFF) {
|
||||||
case VK_DOWN:
|
case VK_DOWN:
|
||||||
ScrollCursor(rowSize_, GotoModeFromModifiers());
|
ScrollCursor(rowSize_, GotoModeFromModifiers(false));
|
||||||
break;
|
break;
|
||||||
case VK_UP:
|
case VK_UP:
|
||||||
ScrollCursor(-rowSize_, GotoModeFromModifiers());
|
ScrollCursor(-rowSize_, GotoModeFromModifiers(false));
|
||||||
break;
|
break;
|
||||||
case VK_LEFT:
|
case VK_LEFT:
|
||||||
ScrollCursor(-1, GotoModeFromModifiers());
|
ScrollCursor(-1, GotoModeFromModifiers(false));
|
||||||
break;
|
break;
|
||||||
case VK_RIGHT:
|
case VK_RIGHT:
|
||||||
ScrollCursor(1, GotoModeFromModifiers());
|
ScrollCursor(1, GotoModeFromModifiers(false));
|
||||||
break;
|
break;
|
||||||
case VK_NEXT:
|
case VK_NEXT:
|
||||||
ScrollWindow(visibleRows_, GotoModeFromModifiers());
|
ScrollWindow(visibleRows_, GotoModeFromModifiers(false));
|
||||||
break;
|
break;
|
||||||
case VK_PRIOR:
|
case VK_PRIOR:
|
||||||
ScrollWindow(-visibleRows_, GotoModeFromModifiers());
|
ScrollWindow(-visibleRows_, GotoModeFromModifiers(false));
|
||||||
break;
|
break;
|
||||||
case VK_TAB:
|
case VK_TAB:
|
||||||
SendMessage(GetParent(wnd),WM_DEB_TABPRESSED,0,0);
|
SendMessage(GetParent(wnd),WM_DEB_TABPRESSED,0,0);
|
||||||
|
@ -467,9 +467,11 @@ void CtrlMemView::redraw() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CtrlMemView::GotoMode CtrlMemView::GotoModeFromModifiers() {
|
CtrlMemView::GotoMode CtrlMemView::GotoModeFromModifiers(bool isRightClick) {
|
||||||
GotoMode mode = GotoMode::RESET;
|
GotoMode mode = GotoMode::RESET;
|
||||||
if (KeyDownAsync(VK_SHIFT)) {
|
if (isRightClick) {
|
||||||
|
mode = GotoMode::RESET_IF_OUTSIDE;
|
||||||
|
} else if (KeyDownAsync(VK_SHIFT)) {
|
||||||
if (KeyDownAsync(VK_CONTROL))
|
if (KeyDownAsync(VK_CONTROL))
|
||||||
mode = GotoMode::EXTEND;
|
mode = GotoMode::EXTEND;
|
||||||
else
|
else
|
||||||
|
@ -482,7 +484,7 @@ void CtrlMemView::onMouseDown(WPARAM wParam, LPARAM lParam, int button) {
|
||||||
int x = LOWORD(lParam);
|
int x = LOWORD(lParam);
|
||||||
int y = HIWORD(lParam);
|
int y = HIWORD(lParam);
|
||||||
|
|
||||||
GotoPoint(x, y, GotoModeFromModifiers());
|
GotoPoint(x, y, GotoModeFromModifiers(button == 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CtrlMemView::onMouseUp(WPARAM wParam, LPARAM lParam, int button) {
|
void CtrlMemView::onMouseUp(WPARAM wParam, LPARAM lParam, int button) {
|
||||||
|
@ -583,7 +585,7 @@ void CtrlMemView::onMouseUp(WPARAM wParam, LPARAM lParam, int button) {
|
||||||
int x = LOWORD(lParam);
|
int x = LOWORD(lParam);
|
||||||
int y = HIWORD(lParam);
|
int y = HIWORD(lParam);
|
||||||
ReleaseCapture();
|
ReleaseCapture();
|
||||||
GotoPoint(x, y, GotoModeFromModifiers());
|
GotoPoint(x, y, GotoModeFromModifiers(button == 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CtrlMemView::onMouseMove(WPARAM wParam, LPARAM lParam, int button) {
|
void CtrlMemView::onMouseMove(WPARAM wParam, LPARAM lParam, int button) {
|
||||||
|
@ -591,7 +593,7 @@ void CtrlMemView::onMouseMove(WPARAM wParam, LPARAM lParam, int button) {
|
||||||
int y = HIWORD(lParam);
|
int y = HIWORD(lParam);
|
||||||
|
|
||||||
if (button & 1) {
|
if (button & 1) {
|
||||||
GotoPoint(x, y, GotoModeFromModifiers());
|
GotoPoint(x, y, GotoModeFromModifiers(button == 2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -620,6 +622,14 @@ void CtrlMemView::UpdateSelectRange(uint32_t target, GotoMode mode) {
|
||||||
lastSelectReset_ = target;
|
lastSelectReset_ = target;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case GotoMode::RESET_IF_OUTSIDE:
|
||||||
|
if (target < selectRangeStart_ || target >= selectRangeEnd_) {
|
||||||
|
selectRangeStart_ = target;
|
||||||
|
selectRangeEnd_ = target + 1;
|
||||||
|
lastSelectReset_ = target;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case GotoMode::FROM_CUR:
|
case GotoMode::FROM_CUR:
|
||||||
selectRangeStart_ = lastSelectReset_ > target ? target : lastSelectReset_;
|
selectRangeStart_ = lastSelectReset_ > target ? target : lastSelectReset_;
|
||||||
selectRangeEnd_ = selectRangeStart_ == lastSelectReset_ ? target + 1 : lastSelectReset_ + 1;
|
selectRangeEnd_ = selectRangeStart_ == lastSelectReset_ ? target + 1 : lastSelectReset_ + 1;
|
||||||
|
|
|
@ -71,10 +71,11 @@ private:
|
||||||
|
|
||||||
enum class GotoMode {
|
enum class GotoMode {
|
||||||
RESET,
|
RESET,
|
||||||
|
RESET_IF_OUTSIDE,
|
||||||
FROM_CUR,
|
FROM_CUR,
|
||||||
EXTEND,
|
EXTEND,
|
||||||
};
|
};
|
||||||
static GotoMode GotoModeFromModifiers();
|
static GotoMode GotoModeFromModifiers(bool isRightClick);
|
||||||
void UpdateSelectRange(uint32_t target, GotoMode mode);
|
void UpdateSelectRange(uint32_t target, GotoMode mode);
|
||||||
void GotoPoint(int x, int y, GotoMode mode);
|
void GotoPoint(int x, int y, GotoMode mode);
|
||||||
void ScrollWindow(int lines, GotoMode mdoe);
|
void ScrollWindow(int lines, GotoMode mdoe);
|
||||||
|
|
Loading…
Add table
Reference in a new issue