| Summary: | NEWT: Support 'Continue Drag on Exit' | ||
|---|---|---|---|
| Product: | [JogAmp] Newt | Reporter: | Sven Gothel <sgothel> |
| Component: | core | Assignee: | Sven Gothel <sgothel> |
| Status: | RESOLVED FIXED | ||
| Severity: | enhancement | ||
| Priority: | --- | ||
| Version: | 1 | ||
| Hardware: | All | ||
| OS: | all | ||
| Type: | --- | SCM Refs: |
88f6e0012b36ca69dedaadb4e403e2a424b20cbf
|
| Workaround: | --- | ||
|
Description
Sven Gothel
2013-11-13 19:15:36 CET
On X11 no extra native code was required, i.e. drag events are received even if pointer is in exterior of the window. Windows behaves different: - Native code for touch processing is required to deal w/ exterior dragging - Mouse move/release when exterior of the window is not 'just' received. OSX: TBD .. (In reply to comment #1) > On X11 no extra native code was required, i.e. drag events are received > even if pointer is in exterior of the window. > > Windows behaves different: > - Native code for touch processing is required to deal w/ exterior dragging > - Mouse move/release when exterior of the window is not 'just' received. We have to SetCapture(HWND) on MOUSE_MOVE if BUTTON is PRESSED and ReleaseCapture() when no more buttons are pressed or leaving focus. > > OSX: TBD .. (In reply to comment #2) > > > > OSX: TBD .. On OSX no extra native code was required either, i.e. drag events are received even if pointer is in exterior of the window. - Support 'Continue Drag on Exit'
- Track dragging operation, allow exterior dragging
- Hence track EXIT (see below)
- Windows:
- Capture mouse for exterior dragging
- Only 'NewtWindows_trackPointerLeave' if 'entering'
- Simplify touch: No 'inside' check - Not required.
- Consistent Mouse ENTER/EXIT
- Track ENTER/EXIT and synthesize if required, drop duplicate
- OSX benefits, since it never produced ENTER/EXIT events
- AWT (or other TK) translated events beahve equal now.
- Required for EXIT event after ending exterior dragging and final RELEASE
Tests: Passed unit tests 'junit.run.newt.event' on
- GNU/Linux
- Windows7
- OSX 10.7
Tested exterior tracking manually w/ NEWT TestGearsES2NEWT and TestGearsES2NewtCanvasAWT:
- GNU/Linux
- Windows7 (mouse)
- Windows8.1 (touch)
- OSX 10.7
|