| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
incl. native focus request (X11, Windows, OSX)
|
| |
|
|
|
|
| |
sendFocusLost/sendFocusGained -> focusChanged
|
|
|
|
| |
Current mode uses ScreenSize w/ dummy values if unimplemented.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
windowRepaint() callback
- act on positionChanged(..) only for realized windows,
otherwise we could end in an AWT deadlock (AWT parent window).
- add view parenting calls (addSubView/removeFromSuperview)
- attachToParent after view configuration
- allow concurrently view draw
- add windowRepaint() callback (native -> java)
- add more debug tracing
|
| |
|
|
|
|
| |
lockFocus(), deadlocks since we render separate to focus mgmt.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
behavior/tests)
- Old code was just requesting the focus and made the window upfront
and notifying a gained focus to WindowImpl. (hack)
- Using proper requestFocus impl. issuing focusAction() and utilizing native
focus gained/lost messages. This distinguish between 'makeKey' and 'orderFront'.
Also requesting and accepting (view) first responder role, which is a precursor
to proper gained/lost focus handling on OSX.
- NEWTCanvasAWT: Adding 'steal AWT focus':
+++
void requestFocus() {
super.requestFocus(); // AWT
< steal AWT focus >
NEWTChild.requestFocus()
}
+++
Helps make the focus traversal between NEWT/AWT more reliable.
Happend on OSX that AWT (NewtCanvasAWT instance) didn't release the focus
after NEWT child gained the same.
We are not able to use the 'focusAction()' here (disabled in this code path)
due to AWT-EDT blocking and recursive focus changes. The latter is also
intendend to request the AWT focus first ..
- AWT/NEWT focus test 01 passes on OSX
|
| |
|
|
|
|
| |
warp) - cleanup pos/coord translations
|
|
|
|
|
|
|
|
|
|
| |
Skip 'mouse move' event w/ same position
- On Windows, the OS sends us multiple event w/o change in position, suppress them
Add Enter/Exit events incl. synthesize 'enter' event for windows/osx
- X11: using native Enter/Leave events
- Windows: using native Leave event (tracking) and synthesized enter event
- OSX: TODO (required for the confined feature, etc)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
request-focus/warp-ptr if enabled
Dispatch mouse move events before enabled
- Allows user app listener to track to the new centered mouse position
before using the confined position. This is important for position change usage.
See simplified demo GearsES2
Only request-focus/warp-ptr if enabled
- No need to request focus and center mouse if leaving confinement
Demo GearsES2:
- No need to assume some position changes are erroneous (jumps)
due to confinement.
- Track unconfined mouse position, allowing confined navigation
to have the proper position change value
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
(client-space/top-level, child/parent)
At resizing a perent window w/ a NEWT OSX child,
the window position needs to be updated since it's absolute.
Re-adding sending *Changed notifications via the appropriate WindowImpl methods.
Turns out they are missing in some parent/child situations (fullscreen for example).
Native getLocationOnScreen0(..) queries totalHeight by it's own to have correct values.
|
| |
|
|
|
|
|
|
| |
We not only shall skip windowing system triggered repaint if another animation thread
is running, but also if the current thread is the animator thread.
This keeps the animator intervals stable while resizing.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
pos/size notifications
Newt/MacWindow
- remove redundant manual window-move/set-size code
- Use local getLocationOnScreen(..), fixes positionChanged(..)
- setFrameTopLeftPoint(..) use totalHeight (w/ insets)
- create: don't 'retain' the window reference (ref counter)
- close: release view,
- cache insets - to be used @ create
|
|
|
|
| |
MainThread Thread name[s]
|
| |
|
|
|
|
| |
transparency
|
|
|
|
| |
bottom-left to our top-left origin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Regardless whether the window is a top-level or child window,
we set it's position w/ absolut left-bottom coordinated.
To do so even for an AWT parent component, we retrieve the screen position
by traversing through the AWT tree and adding up each parent's rel. position,
since the native view only reflects the AWT frame.
Note: OSX does not use native views for each AWT component.
- In case we reparent child -> top, we cannot orderOut() the ex parent,
but need to just call orderBack(..), otherwise the whole ex-parent frame
gets hidden.
- In case we close a child window (and reparent child -> top),
we need to remove the parent/child relation and orderOut(..)
before close(..), otherwise the window artifact is left behind.
|
|
|
|
|
|
|
|
|
|
| |
InputEvent (Mouse) ; Test confined navigation w/ GearsES2
InputEvent adds new MASK values: CONFINED_MASK and INVISIBLE_MASK, set at event creation allowing
convenient testing of these mods.
GearsES2 demonstrates the confined navigation testing the CONFINED_MASK
and if having his mode acting on mouseMoved(..) and reset the mouse position.
|
|
|
|
| |
cleanup in X11
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
visibility:
- set pointer visible or invisible
confined:
- confine pointer to window, or not
warp:
- set mouse position within the window
Implemented for X11, tested manually with TestGearsES2NEWT (see code for action keys).
TODO: Windows, MaxOSX and Android (limited)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
release for a specific thread
- marked deprecated
- used to perf measure situation on omap3, ie
figuring out where the low perf. in GearsES2 comes from,
our core JOGL code or the GL usage.
Turns out it's the GL usage itself, ie the shader - good.
- calls are commented out in the demos
|
| |
|
|
|
|
| |
TODO: custom position and change position ?!
|
|
|
|
|
|
|
| |
visible=true, even if size==0
We need to earmark visible=true in case the native window could not be created,
even if the size is currently 0.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Add RedSquare ES1 + ES2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note: surface's format _is_ the nativeVisualID of EGL.
More ANativeWindow (ANW) coop:
- add acquire/release for ANW
- validate ANW format
- Add fixCaps: 'format -> GLCaps' validation
Test:
- Constructor: Start w/ surface format RGB_565 (default)
- createNative: Filter EGLConfig w/ surface format
- Move surfaceHandle fetching from surfaceCreated -> surfaceChanged,
where the format is available.
- surfaceChanged: use fixedCaps validation
|
| |
|
|
|
|
| |
launched Activity, see NewtLauncherActivity
|
|
|
|
|
|
|
|
| |
finger zoom
MouseEvent: Check array sizes at cstr. Enhance 'toString()', pointer arrays added.
GPUUISceneGLListener0A now uses 2 finger distance for zoom
|
|
|
|
|
|
|
|
|
| |
parent,
a white window rectangle remains.
.. we also need to understand the absolute screen position better,
ie. when required and when not (at window creation currently).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- MainThread:
This class no more implements EDTUtil!
This class just provides a main-thread utility, forking of a main java class
on another thread while being able to continue doing platform specific things
on the main-thread. The latter is essential for eg. MacOSX, where we continue
to run NSApp.run().
- DefaultEDTUtil:
- if Lock.DEBUG validate that no recursive locks are being hold,
where it shall not (EDT: startup and return from task execution)
- If task execution's result wasn't waited for (checked),
at least dump exeception's stack trace if i happened.
- MacDisplay: Just use DefaultEDTUtil
- MacWindow:
- No more need of special locking -> removed nsViewLock, since:
- using proper EDT
- capability to run from multiple threads (native Java thread attachment)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'defer' 1st argument
- Adapt to GlueGen's Lock ChangeSet: e4baba27507ce78e64a150ec6f69fb96f5721a34
- All java callbacks for native have 'defer' 1st argument.
This allows enqueuing resulting events to the EDT if required,
ie. the native thread may not be 'compatible' (MacOSX).
- MacOSX-Native: enqueue key/mouse events and defer:=true for all java callbacks
Since we are comming from a 3rd-party thread (AWT/NSApp-MainThread)
we shall not abuse it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Feature related:
- Added always-on-top
- Added translucency
- Child Window Position
- AWT parent: manual traverse up the tree and calc position on screen
(Problem: the parent view rect is not at the proper position,
but covers the whole frame)
EDTUtil related:
- Works now w/ AWT ot headless (again)
- OSX native JNI callbacks gathering JNIEnv properly
and attaches/detaches thread.
- AWT case: using AWT-Event which properly dispatches our cocoa events
- MainThread (headless) case: Fork off thread w/ main class
and kick off NSApp run().
This leads to same behavior as w/ AWT case.
- Using DefaultEDTUtil
- Cleanup MainThread (implements EDTUtil)
- Currently not used as EDTUtil (osx), just as launcher
- Removed EDTUtil impl code, reuse DefaultEDTUtil
- Cleanup AWTEDTUtil (implements EDTUtil)
- Currently not used as EDTUtil (osx)
|
| |
|
|
|
|
| |
MacWindow: create/visible at native creation
|