Bug 1424 - MacOSX: Newt Window Eclipse RCP Detached View Wrong Z-Order and Update
Summary: MacOSX: Newt Window Eclipse RCP Detached View Wrong Z-Order and Update
Status: IN_PROGRESS
Alias: None
Product: Newt
Classification: JogAmp
Component: swt (show other bugs)
Version: 2.4.0
Hardware: All all
: P4 normal
Assignee: Sven Gothel
URL:
Depends on:
Blocks: 674
  Show dependency treegraph
 
Reported: 2020-01-15 14:06 CET by Marcel Au
Modified: 2020-02-04 09:26 CET (History)
0 users

See Also:
Type: DEFECT
SCM Refs:
Workaround: ---


Attachments
Detach RCP View NewtCanvas SWT (1.84 MB, image/gif)
2020-01-16 08:52 CET, Marcel Au
Details

Note You need to log in before you can comment on or make changes to this bug.
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 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?