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