Hi Dmitry,

From my understanding JavaFX stage can't be easily integrated in JDK to support orderWindow() approach,

addChildWindow() is a native(and the simplest) way to maintain one window above other one, should be called only once.

IIUC the main concert of JDK-8080729 that child windows jumping to parent's display upon focus receiving, this is not an issue with current fix,

because addChildWindow() will be called only upon dialog creation in case of JavaFX-Swing interop.

Jump may happen if user want to create a child swing dialog on display other than JavaFX stage's one,

but such rare scenario can be easily workarounded on a user side by calling setLocation() right after setVisible() call.

So I would prefer to use addChildWindow() to make this fix as simple as possible.


Thanks,
Alexander.

On 23/09/2017 21:21, Dmitry Markov wrote:
Hi Alexander,

In CPlatformWindow class you call CWrapper.NSWindow.addChildWindow() to place a 
window above JavaFX stage. The usage of addChilWindow() or/and 
removeChildWindow() may cause ‘jumping window issue’ in multi-monitor 
environment, see JDK-8080729 for more details.

To avoid possible problems in multi monitor set-up I suggest that you should 
replace addChildWindow() with orderWindow() or use some another approach to 
locate the window above the stage.

Thanks,
Dmitry
On 22 Sep 2017, at 06:56, Alexander Zvegintsev 
<alexander.zvegint...@oracle.com> wrote:

Hi Phil,

Please review the updated fix with reflection incorporated
http://cr.openjdk.java.net/~azvegint/jdk/10/8185634/01/

New issue created JDK-8187803 
<https://bugs.openjdk.java.net/browse/JDK-8187803> as JDK counterpart of this 
issue.

Thanks,
Alexander.

On 21/09/2017 22:25, Phil Race wrote:
Some procedural comments :
Since 90% of this is in AWT code, I'd have thought awt-dev should be included 
here.
I've added that list.

And apart from needing separate bug ids, I don't see why the bug below is 
confidential.


I agree with what Kevin pointed out off-line that as in the dialog case, the FX 
side
of the code can use reflection and simply be a harmless non-functional no-op
if the SwingAccessor does not provide the new method.

BTW
264 inline HWND GetOverridenHWnd() { return m_overridenHwnd; }
should be "dd" not "d".

-phil.

On 09/21/2017 03:38 AM, Alexander Zvegintsev wrote:
Hello,

please review the fix

http://cr.openjdk.java.net/~azvegint/jdk/10/8185634/00/

for the issue

https://bugs.openjdk.java.net/browse/JDK-8185634


Reply via email to