| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
WindowImpl initialization)
|
| |
|
|
|
|
| |
; Block insets change while toggling fullscreen mode.
|
|
|
|
|
|
|
|
|
|
|
|
| |
attempt)
Commit c8726ef04b94ad8e66e1191a06ff793b908d130c reinforced ALWAYS_ON_TOP in native reconfig code
issued at reparenting call, which might be too early for the WM.
Perform ALWAYS_ON_TOP reinforcement from java side when reparenting CHILD -> TOP was successful
and visibility is reached. X11 only!
NewtAWTReparentingKeyAdapter: Add 'a' alwaysOnTop toggle to test w/o applet code.
|
|
|
|
| |
comments)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Persistent when Reparenting (child -> top)
- X11 Fullscreen ALT-TAB regression (no task-switcher visible)
We still need the fast reconfigure path for ALWAYSONTOP only toggle.
It was removed w/ commit c9fcc8cd510abc0cbebb872dc3e457327655e778,
which disabled toggling FULLSCREEN and ALWAYSONTOP.
Note: Another bug in Unity WM's Compiz:
'Unredirect Fullscreen Windows := True' disables
the ALT-TAB taskbar/launcher HUD rendering and subsequent task-switch.
Hence it shall be disabled .. nothing we can do here.
- ALWAYS_ON_TOP not persistent when child -> top
WM removes ALWAYS_ON_TOP state when reparenting,
hence reinforce it when Child -> Top.
|
|
|
|
|
|
|
|
|
|
|
| |
- 'tempInvisible' shall be also performed for top windows, solves Unity-WM background refresh issue
- Rename local field 'fullscreen' -> '_fullscreen' to avoid confusion
- Proper insets handling: Set 'WindowImpl.this.fullscreen = _fullscreen' only before reconfiguring,
otherwise wrong position maybe used due to wrong insets value.
Tested w/ WMs: KWin + Unity
|
| |
|
|
|
|
| |
only regard custom position as a hint (X11).
|
|
|
|
|
|
| |
focusChanged(..) if isFullscreen()
.. otherwise it will be triggered by reconfigure tasks while enabling/disabling fullscreen.
|
| |
|
|
|
|
|
|
|
|
|
| |
On/Off Cycle
Unity WM keeps the _NET_WM_STATE (_NET_WM_STATE_FULLSCREEN, ..) after fullscreen-exit
even though _NET_WM_STATE_REMOVE was issued.
Add remedy: Reparent Child -> TOP: Reset _NET_WM_STATE (! _NET_WM_STATE_FULLSCREEN, ..).
|
| |
|
|
|
|
| |
REPARENT_HINT_BECOMES_VISIBLE to ensure GL State Preservation ; Add unit test !
|
|
|
|
|
|
|
|
|
|
|
|
| |
REPARENT_HINT_BECOMES_VISIBLE hint via new method variant using hints; Deprecate other reparentWindow(..) variants w/o hints.
NEWT Window.reparentWindow(..): Provide REPARENT_HINT_BECOMES_VISIBLE hint via new method variant using hints:
- Add REPARENT_HINT_FORCE_RECREATION, covering 'old' forceDestroyCreate boolean argument
- Add REPARENT_HINT_BECOMES_VISIBLE, Claim window becomes visible after reparenting, which is important for e.g. preserving the GL-states in case window is invisible while reparenting.
Deprecate other reparentWindow(..) variants w/o hints.
Use only new variant using hints w/o semantical change.
|
|
|
|
| |
considered in AWTTilePainter: 'Origin of GL image is still on Bottom'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clogged Key-Release Event by AWT Robot
Impact: Only unit test code
- TestNewtKeyCodesAWT:
Fix Bug 919 - Move mouse bacl/forth while waiting for events ..
- Use common wait for key timeout/polling using constants in NEWTKeyUtil
- InputEventCountAdapter:
'getQueued()' -> 'copyQueue()' - ensuring queue is copied while instance is locked.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Assume having focus in fullscreen-mode
- Reset NSApp's presentationOptions @ windowClose0()
Commit 69c334448cfe8af553fd97689137ecf8f996b378 started using the [NSApp setPresentationOptions: opts]
but missed to reset to defaults @ windowClose0();
- Assume having focus in fullscreen-mode
NewtMacWindow::windowDidBecomeKey()' is not always called in fullscreen-mode!
Note: OSX Fullscreen from a browser still shows the browser title-bar
until mouse-click. Don't know how to avoid this. Minor issue..
|
|
|
|
|
|
|
| |
Switching
Remedy for 'some' display drivers, i.e. Intel HD:
Explicitly push fullscreen window to BOTTOM when inactive (ALT-TAB)
|
|
|
|
| |
at last
|
|
|
|
| |
favor of proper WM incl. ALT-TAB app-switching
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
switching to other applications via ALT-TAB
As described @ <http://forum.jogamp.org/Regression-of-alwaysOnTopBug-tp4030735p4030738.html>,
we shall not steal the desktop in fullscreen mode via 'alwaysontop'.
Latest tests on X11/GNU/Linux and Windows7 - before this patch:
With default settings, i.e. alwaysontop (atop) disabled,
it works as expected here, i.e.:
- ALT-TAB triggers WM dialog, switching between apps.
- ALT-TAB can actually switch to other apps.
However, with enabled atop:
- ALT-TAB triggers WM dialog, switching between apps.
- ALT-TAB does _not_ switch to other apps. (*)
I consider this a serious issue, since we shall not steal
the desktop in fullscreen mode.
This patch disables atop in fullscreen mode,
i.e. (*) will switch to other apps again!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in RegisteredClass; Safe DDT Post/WaitForReady handling and error cases ; ...
Proper OO integration of DDT in RegisteredClass
- DDT is optional to RegisteredClass[Factory],
i.e. NEWT without DDT and DummyWindow with DDT.
- Using native type DummyThreadContext per DDT
passed as DDT handle to java referenced in RegisteredClass
- Passing DDT handle to related native methods,
if not null use DDT - otherwise work on current thread.
The latter impacts CreateDummyWindow0 and DestroyWindow0.
Safe DDT Post/WaitForReady handling and error cases ; ...
- Wait until command it complete using a 3s timeout
- Terminate thread if errors occur and throw an exception
+++
Discussion: DDT Native Implementation
Due to original code, the DDT is implemented in native code.
Usually we should favor running the DDT from a java thread.
However, since it's main purpose is _not_ to interact w/ java
and the native implementation has less footprint (performance and memory)
we shall be OK w/ it for now - as long the implementation IS SAFE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
destruction via explicit set flag.
IcedTea-Web_1.5pre+rbc73a1362e9c still issues NewtCanvasAWT.removeNotify()
before before Applet.destroy(), i.e. removes NewtCanvasAWT from the Container
ahead of time (Applet protocol destroy()).
However, it fixes the non AWT-EDT issue, i.e. calls NewtCanvasAWT.removeNotify()
from the actual AWT-EDT - good.
Since the root cause still exist, we cannot use heuristics as described in
Bug 910 comment 9, but need to set a flag in NewtCanvasAWT to skip JAWT destruction
and remove it latter within Applet.destroy().
NewtCanvasAWT.removeNotify.0 - isApplet true @ [AWT-EventQueue-0, isAWT-EDT true]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NW.getLocationOnScreen(..) for X11 and Windows ; Allow unit test to run on all platforms.
- Reuse SWTAccessor.isOS_TYPE (public now)
- Impl NW.getLocationOnScreen(..) for X11 and Windows reusing existing native code
- Allow unit test to run on all platforms.
Note: NewtCanvasSWT unit tests require a 'wait for realized' while SWT dispatching.
Otherwise the 'sash unit test' will fail since realiziation happens later, at least on X11.
Hence extended AWTRobotUtil.waitForRealized(..) to use a 'waitAction'
which is used here w/ special SWT dispatch Runnable.
AWTRobotUtil.waitForRealized(..) operates on time-delta instead of iteration-counter,
allowing above 'waitAction' Runnable.
AWTRobotUtil.waitForRealized(..) removed 2nd 'glad.isRealized()' loop ..
|
|
|
|
|
|
|
|
|
|
|
| |
The NewtCanvasSWT is now brought into place by the parent SWT Composite
and the super SWT Canvas it extends. Also added two test cases. One with
a simple SashForm and the NewtCanvasSWT in the second cell, and another
with the NewtCanvasSWT in a Composite, that Composite now in the second
cell of the SashForm. The second test is necessary because the
NewtCanvasSWT does not receive SWT.Resize events in this configuration,
but only SWT.Paint ones (a behaviour inherited from the super SWT
Canvas)
|
|
|
|
| |
destruction if removeNotify() is called from non AWT-EDT
|
| |
|
|
|
|
| |
explicit call to reparentWindow(null) @ destroy
|
|
|
|
| |
reparenting 'back to parent'
|
| |
|
|
|
|
|
|
|
|
|
| |
Follow-on to commit:
d544c839f6df10f20977c786a446833f3aa7ef13 (jogl: do the clearGlobalFocusOwner() call on the AWT EDT in NewtCanvasAWT)
Likely this won't hurt anything.
Signed-off-by: Harvey Harrison <[email protected]>
|
|
|
|
|
|
|
| |
Otherwise we can deadlock in the native focusrequest calls from the AWT thread,
see bug 879 for the details.
Signed-off-by: Harvey Harrison <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
if (isOnscreen)
else if (!isOnScreen)
change to
if (isOnscreen)
else
Signed-off-by: Harvey Harrison <[email protected]>
|
|
|
|
| |
Signed-off-by: Harvey Harrison <[email protected]>
|
|
|
|
|
|
| |
periodically)
As suggested: Employ synchronization on lifecycle actions _and_ perform destroyImpl(..) always on AWT-EDT to avoid a deadlock.
|
|
|
|
| |
easy editing/review
|
|
|
|
| |
to fix event validation for offscreen mode (OSX/CALayer)
|
|
|
|
| |
commit 5c6c11abf643013976ecbc0df463a923a1f52696
|
|
|
|
| |
Consume AWT KeyEvents in downstream mode; Test respects 'consumed' key events.
|
|
|
|
| |
for key events); Allow AWTAdapter to be lazily setup w/ downstream object.
|
|
|
|
|
|
|
|
|
| |
when in offscreen-mode (OSX/CALayer)
NewtCanvasAWT.FocusAction must take focus when in offscreen-mode (OSX/CALayer)
since the NEWT window _is_ offscreen (no input events) and AWT events are translated to NEWT.
Regression of commit 0be87f241c0f0b2f5881d9a602ce12378b8e453d
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
multiple threads; Fix Bug 892: Reduce Focus Hopping
Since we manage focus key traversal ourselves w/o requiring the AWT
component to have the focus[1],
we simply can drop requesting the focus for 'focus hopping' NEWT -> AWT -> NEWT[2].
Further more, 'MenuSelectionManager.defaultManager().clearSelectedPath()'
must be performed on AWT-EDT w/o blocking. Otherwise it may perform blocking tasks on AWT-EDT.
[1] Commit cb7118fc875b6722803e4b11d5681671962a8d3a
introduced function to query the next or previous 'to be focused' component:
AWTMisc.getNextFocus(..) .. etc.
[2] Focus hopping is also addressed in Bug 892
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
consumePointerEvent(..) impl. details
|
|
|
|
| |
not break Windows < 7 Compatibility
|
|
|
|
| |
reusing of app)
|
| |
|
|
|
|
| |
device does _not_ require locking on global shared device.
|