Externalized window is sent off screen

Hi Beni,

I’ve been using DockingFrames for a pretty long time now and am completely happy with it. Thanks so much for your efforts!

I’m currently using DockingFrames 1.1.1

That said, I’ve had some users run into an issue with externalizing tabs on Windows machines. It appears that windows will allow the externalize action to place the window into negative screen coordinates (screen shot attached).

I’m guessing that the dock.x value in the xml is relative to the main window, so setting it of dock.y to a large-enough value would place the window off screen. That or if my dockable is large enough, it simply pushes the titlebar up and off the screen.

[XML]false
-100
100
-100
0
dock.single.Parameters
100
[/XML]

Is there a way to override something in the API to ensure that an externalized window is constrained to a certain limit? Linux appears to handle the window management just fine, but a couple of windows users have complained about this bit. I don’t currently have a windows machine to test this on, so I’m hoping to be able to manually clamp things.

Thanks,

-nate

It really is a bug in the framework. More specific, it is the EclipseTheme that does not ensure that the title of the Dockable is always visible.

There is a fix in version 1.1.2p12c.

If you want to continue use your outdated version 1.1.1, then you can switch the “boundary restriction”, which calculates the location where Dockables may be on the screen.

control.putProperty( ScreenDockStation.BOUNDARY_RESTRICTION, BoundaryRestriction.HARD );```

There may be some unwanted side effects by using the HARD boundary restriction... You can switch the restrictions at any time (the default is "MEDIUM"), whenever the restrictions are switched the location of all the Dockables is validated. So you may want to just switch to HARD for only a millisecond, just to make sure the Dockables are inside the screen.

Great. I’ll take a look at this solution. If nothing else I’ll just update to version 1.1.212c.

Thanks a lot for your response!

Best,

-nate