summaryrefslogtreecommitdiff
path: root/emu/Nt/win.c
diff options
context:
space:
mode:
authorCharles Forsyth <charles.forsyth@gmail.com>2017-02-21 14:18:10 +0000
committerCharles Forsyth <charles.forsyth@gmail.com>2017-02-21 14:18:10 +0000
commit6e6ec18053fc212e0a58124162dbafc2c2c30aed (patch)
tree73b386481006d60687bf42c211c629b9c97bbd3c /emu/Nt/win.c
parent2fd8fca57f985a360d40d2d10e99fcda2a1d99c4 (diff)
parent322254a191e29f4eabbe5dd05962f1212937a6d8 (diff)
Merged in yk/inferno-os (pull request #13)
emu: windows scroll wheel + 21-bit rune fixes Approved-by: Charles Forsyth
Diffstat (limited to 'emu/Nt/win.c')
-rw-r--r--emu/Nt/win.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/emu/Nt/win.c b/emu/Nt/win.c
index c1bccfa7..b1480fd7 100644
--- a/emu/Nt/win.c
+++ b/emu/Nt/win.c
@@ -308,6 +308,7 @@ WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
LPMINMAXINFO mmi;
LONG x, y, w, h, b;
HCURSOR dcurs;
+ POINT m;
switch(msg) {
case WM_SETCURSOR:
@@ -320,6 +321,15 @@ WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
dcurs = LoadCursor(NULL, IDC_ARROW);
SetCursor(dcurs);
break;
+ case WM_MOUSEWHEEL:
+ if((int)wparam>0)
+ b = 8;
+ else
+ b = 16;
+ m.x = LOWORD(lparam);
+ m.y = HIWORD(lparam);
+ ScreenToClient(hwnd, &m);
+ goto mok;
case WM_LBUTTONDBLCLK:
b = (1<<8) | 1;
goto process;
@@ -338,8 +348,9 @@ WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
case WM_RBUTTONDOWN:
b = 0;
process:
- x = LOWORD(lparam);
- y = HIWORD(lparam);
+ m.x = LOWORD(lparam);
+ m.y = HIWORD(lparam);
+ mok:
if(wparam & MK_LBUTTON)
b |= 1;
if(wparam & MK_MBUTTON)
@@ -350,7 +361,7 @@ WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
else
b |= 4; //right button
}
- mousetrack(b, x, y, 0);
+ mousetrack(b, m.x, m.y, 0);
break;
case WM_SYSKEYDOWN:
if(gkscanq)
@@ -446,10 +457,6 @@ WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
gkbdputc(gkbdq, wparam);
break;
case WM_CLOSE:
- // no longer used?
- //m.b = 128;
- //m.modify = 1;
- //mousetrack(128, 0, 0, 1);
DestroyWindow(hwnd);
break;
case WM_DESTROY: