Skip to content

Commit 9f2e550

Browse files
JulienMailleJulien Maille
andauthored
Add handling for non-client touch events (#211)
* Add handling for non-client touch events Implemented handling for non-client pointer events to manage touch screen interactions. * handle PR comments --------- Co-authored-by: Julien Maille <[email protected]>
1 parent b583e6e commit 9f2e550

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

src/core/contexts/win32windowcontext.cpp

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1207,6 +1207,9 @@ namespace QWK {
12071207
const auto xButtonMask = GET_XBUTTON_WPARAM(wParam);
12081208
return MAKEWPARAM(keyState, xButtonMask);
12091209
}
1210+
if (myMsg == WM_NCPOINTERDOWN) {
1211+
return keyState | MK_LBUTTON;
1212+
}
12101213
return keyState;
12111214
}();
12121215
const auto lParamNew = [myMsg, lParam, hWnd]() -> LPARAM {
@@ -1265,12 +1268,15 @@ namespace QWK {
12651268
case WM_NCXBUTTONDBLCLK:
12661269
SEND_MESSAGE(hWnd, WM_XBUTTONDBLCLK, wParamNew, lParamNew);
12671270
break;
1268-
#if 0 // ### TODO: How to handle touch events?
1269-
case WM_NCPOINTERUPDATE:
1270-
case WM_NCPOINTERDOWN:
1271-
case WM_NCPOINTERUP:
1272-
break;
1273-
#endif
1271+
case WM_NCPOINTERUPDATE:
1272+
SEND_MESSAGE(hWnd, WM_MOUSEMOVE, wParamNew, lParamNew);
1273+
break;
1274+
case WM_NCPOINTERDOWN:
1275+
SEND_MESSAGE(hWnd, WM_LBUTTONDOWN, wParamNew, lParamNew);
1276+
break;
1277+
case WM_NCPOINTERUP:
1278+
SEND_MESSAGE(hWnd, WM_LBUTTONUP, wParamNew, lParamNew);
1279+
break;
12741280
case WM_NCMOUSEHOVER:
12751281
SEND_MESSAGE(hWnd, WM_MOUSEHOVER, wParamNew, lParamNew);
12761282
break;
@@ -1353,11 +1359,9 @@ namespace QWK {
13531359
case WM_NCXBUTTONDOWN:
13541360
case WM_NCXBUTTONUP:
13551361
case WM_NCXBUTTONDBLCLK:
1356-
#if 0 // ### TODO: How to handle touch events?
1357-
case WM_NCPOINTERUPDATE:
1358-
case WM_NCPOINTERDOWN:
1359-
case WM_NCPOINTERUP:
1360-
#endif
1362+
case WM_NCPOINTERUPDATE:
1363+
case WM_NCPOINTERDOWN:
1364+
case WM_NCPOINTERUP:
13611365
case WM_NCMOUSEHOVER: {
13621366
if (message == WM_NCMOUSEMOVE) {
13631367
if (lastHitTestResult != WindowPart::ChromeButton) {

0 commit comments

Comments
 (0)