< prev index next >

src/java.desktop/windows/native/libawt/windows/awt_Component.cpp

Print this page

        

*** 580,589 **** --- 580,594 ---- LinkObjects(env, peer); /* Subclass the window now so that we can snoop on its messages */ SubclassHWND(); + AwtToolkit& tk = AwtToolkit::GetInstance(); + if (tk.IsWin8OrLater()) { + tk.TIEnableMouseInPointer(true); + } + /* * Fix for 4046446. */ SetWindowPos(GetHWnd(), 0, x, y, w, h, SWP_NOZORDER | SWP_NOCOPYBITS | SWP_NOACTIVATE);
*** 1711,1720 **** --- 1716,1795 ---- GET_WHEEL_DELTA_WPARAM(wParam), switchMessage == WM_MOUSEHWHEEL); break; } break; + + /* WM_POINTER is enabled for the TOUCH type 'pointer' input + This touch typed 'pointer' would map to the mouse functionality */ + case WM_POINTERENTER: + { + AwtToolkit& tk = AwtToolkit::GetInstance(); + UINT32 pointerId = GET_POINTERID_WPARAM(wParam); + POINTER_INFO pinfo; + + if(tk.TIGetPointerInfo(pointerId, &pinfo)) { + if (pinfo.pointerType == PT_TOUCH) { + POINT pdDnPoint = pinfo.ptPixelLocation; + if(::ScreenToClient(GetHWnd(), &pdDnPoint)) { + mr = WmMouseEnter(static_cast<UINT>(wParam), pdDnPoint.x, pdDnPoint.y); + } + } + } + } + break; + case WM_POINTERLEAVE: + { + AwtToolkit& tk = AwtToolkit::GetInstance(); + UINT32 pointerId = GET_POINTERID_WPARAM(wParam); + POINTER_INFO pinfo; + + if(tk.TIGetPointerInfo(pointerId, &pinfo)) { + if (pinfo.pointerType == PT_TOUCH) { + POINT pdDnPoint = pinfo.ptPixelLocation; + if(::ScreenToClient(GetHWnd(), &pdDnPoint)) { + mr = WmMouseExit(static_cast<UINT>(wParam), pdDnPoint.x, pdDnPoint.y); + } + } + } + } + break; + case WM_POINTERDOWN: + { + AwtToolkit& tk = AwtToolkit::GetInstance(); + UINT32 pointerId = GET_POINTERID_WPARAM(wParam); + POINTER_INFO pinfo; + + if(tk.TIGetPointerInfo(pointerId, &pinfo)) { + if (pinfo.pointerType == PT_TOUCH) { + POINT pdDnPoint = pinfo.ptPixelLocation; + if(::ScreenToClient(GetHWnd(), &pdDnPoint)) { + mr = WmMouseDown(static_cast<UINT>(wParam), pdDnPoint.x, pdDnPoint.y, + LEFT_BUTTON); + } + } + } + } + break; + case WM_POINTERUP: + { + AwtToolkit& tk = AwtToolkit::GetInstance(); + UINT32 pointerId = GET_POINTERID_WPARAM(wParam); + POINTER_INFO pinfo; + + if(tk.TIGetPointerInfo(pointerId, &pinfo)) { + if (pinfo.pointerType == PT_TOUCH) { + POINT pdUpPoint = pinfo.ptPixelLocation; + if(::ScreenToClient(GetHWnd(), &pdUpPoint)) { + mr = WmMouseUp(static_cast<UINT>(wParam), pdUpPoint.x, pdUpPoint.y, + LEFT_BUTTON); + } + } + } + } + break; + case WM_SETCURSOR: mr = mrDoDefault; if (LOWORD(lParam) == HTCLIENT) { if (AwtComponent* comp = AwtComponent::GetComponent((HWND)wParam)) {
< prev index next >