@@ -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