|Summary:||MacOSX: Newt Window Eclipse RCP Detached View Wrong Z-Order and Update|
|Product:||[JogAmp] Newt||Reporter:||Marcel Au <marcel.au>|
|Component:||swt||Assignee:||Sven Gothel <sgothel>|
|Bug Depends on:|
|Attachments:||Detach RCP View NewtCanvas SWT|
Description Marcel Au 2020-01-15 14:06:24 CET
If I detach a view on MacOSX the NewtCanvas stays behind the detached view. When I drag the detached view to another location I have to resize the view so that the canvas follows the detached view but still stands behind the detached view.
Comment 1 Sven Gothel 2020-01-16 02:02:39 CET
"If I detach a view on MacOSX" please elaborate. How can we emulate this in the unit test?
Comment 2 Sven Gothel 2020-01-16 02:04:50 CET
You also mentioned this didn't happen before .. when exactly? i.e. when was this introduced 'build, jogl git commit' ? I did change the hide/visible semantics NEWT on OSX.
Comment 3 Marcel Au 2020-01-16 08:24:20 CET
Hello Sven: For detached view, see: https://help.eclipse.org/2019-12/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Ftasks%2Ftasks-9l.htm or (search for detached views): https://help.eclipse.org/2019-12/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Ftips%2Fplatform_tips.html This did not happen in built 1498 See: https://jogamp.org/bugzilla/show_bug.cgi?id=1421#c35
Comment 4 Marcel Au 2020-01-16 08:52:11 CET
Created attachment 837 [details] Detach RCP View NewtCanvas SWT Hello Sven, here an animated *.gif which shows a detached view with the NewtCanvas correctly on Windows (also works on Linux). On MacOSX the NewtCanvas is hidden behind the view (which then appears empty). If the detached view is moved the NewtCanvas stays at the position and shows up behind the detached view. If I resize the view the NewtCanvas updates the position but then again is hidden behind the detached view.
Comment 5 Sven Gothel 2020-01-22 09:26:59 CET
(In reply to Marcel Au from comment #4) Marcel, you commented in Bug 1421 comment 48 for this Bug 1424 ... IMHO Bug 1422 and Bug 1423 should have been resolved. We need a unit test for this attach/detach view, i.e. what gets pulled from the big Shell (RCP)? Just removing a Compositor or Group from its parent and place it in its own new Shell?
Comment 6 Marcel Au 2020-01-22 14:35:51 CET
Hello Sven, it is a new window and works on Linux and Windows with NewtCanvasSWT, see: https://help.eclipse.org/2019-12/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Fconcepts%2Fconcepts-21a.htm As I already described it seems to be a possible on MacOSX, too, see my description here: https://jogamp.org/bugzilla/show_bug.cgi?id=1421#c48 So what does the fullscreen implementation call to relayout the NewtCanvas SWT (setFullscreen(false)) correctly? It might be that I can workaround this default Mac detach behaviour by installing a detach listener described here: https://eclipsesource.com/blogs/2010/06/23/tip-how-to-detect-that-a-view-was-detached/
Comment 7 Marcel Au 2020-02-04 08:23:02 CET
As already described: when I detach the window on MacOSX the NewtCanvasSWT is hidden behind the detached view. But when I now enter fullscreen and then instantly exit fullscreen the NewtCanvasSWT is attached correctly on top of the detached view and it works as expected (resizing, change location). Now when I attach the view to the perspective again I once more have to enter/exit fullscreen before I can resize the view again embedded in the perspective. If I don't use enter/exit fullscreen after I attach the view to the perspective the NewtCanvasSWT will completely hidden when I resize the view (if I don't resize the view it stays visible). So does the fullscreen function reparent the window?
Comment 8 Marcel Au 2020-02-04 09:26:10 CET
When I install a detach/attach listener which calls setFullscreen(true) and directly after it setFullscreen(false) everything works as it should. Only on rare occations (after I detached/attached the view) when I drag the view around it looses the parent window or doesn't update and I have to resize the view to reparent/update it again. So I think that maybe no events are fired to reparent or update the window when I detach/attach the view. Can I somehow call these events which are called by the fullscreen function, too?