From e96f53452ac06e6b533a30d4caad30dd0dbe46fb Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Wed, 28 Apr 2004 17:42:32 +0000 Subject: Shift-click is equivalent to middle-click. This is mostly for Windows users who may not have a middle button at all, but I've replicated it in GTK to maintain cross-platform consistency. [originally from svn r4166] --- windows.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'windows.c') diff --git a/windows.c b/windows.c index 3d9820d..29b50bc 100644 --- a/windows.c +++ b/windows.c @@ -438,12 +438,25 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, case WM_LBUTTONDOWN: case WM_RBUTTONDOWN: case WM_MBUTTONDOWN: - if (!midend_process_key(fe->me, LOWORD(lParam), HIWORD(lParam), - (message == WM_LBUTTONDOWN ? LEFT_BUTTON : - message == WM_RBUTTONDOWN ? RIGHT_BUTTON : - MIDDLE_BUTTON))) - PostQuitMessage(0); - + { + int button; + + /* + * Shift-clicks count as middle-clicks, since otherwise + * two-button Windows users won't have any kind of + * middle click to use. + */ + if (message == WM_MBUTTONDOWN || (wParam & MK_SHIFT)) + button = MIDDLE_BUTTON; + else if (message == WM_LBUTTONDOWN) + button = LEFT_BUTTON; + else + button = RIGHT_BUTTON; + + if (!midend_process_key(fe->me, LOWORD(lParam), + HIWORD(lParam), button)) + PostQuitMessage(0); + } break; case WM_CHAR: if (!midend_process_key(fe->me, 0, 0, (unsigned char)wParam)) -- cgit v1.1