Hi Alexander,
Just to clarify some things...
On X11 Frame utilizes XFramePeer and FileDialog utilizes GtkFileDialogPeer.
These peers have common superclass XDecoratedPeer (GtkFileDialogPeer
through XDialogPeer).
For Frame the following two chains occur:
[#1]
"AWT-XAWT"
sun.awt.X11.XContentWindow.handleResize(XContentWindow.java:141)
sun.awt.X11.XContentWindow.setContentBounds(XContentWindow.java:129)
sun.awt.X11.XDecoratedPeer.reconfigureContentWindow(XDecoratedPeer.java:662)
sun.awt.X11.XDecoratedPeer.handleConfigureNotifyEvent(XDecoratedPeer.java:763)
sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1135)
sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1090)
sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:512)
sun.awt.X11.XToolkit.run(XToolkit.java:621)
sun.awt.X11.XToolkit.run(XToolkit.java:542)
java.lang.Thread.run(Thread.java:744)
This posts ComponentEvent.COMPONENT_RESIZED.
[#2]
"AWT-XAWT"
sun.awt.X11.XDecoratedPeer.handleMoved(XDecoratedPeer.java:430)
sun.awt.X11.XDecoratedPeer.handleConfigureNotifyEvent(XDecoratedPeer.java:761)
sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1135)
sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1090)
sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:512)
sun.awt.X11.XToolkit.run(XToolkit.java:621)
sun.awt.X11.XToolkit.run(XToolkit.java:542)
java.lang.Thread.run(Thread.java:744)
This posts ComponentEvent.COMPONENT_MOVED.
But these chains don't happen for FileDialog.
So the questions are:
Why?
Could we make FileDialog handle event such way too?
Maybe that would be enough and would require less code to implement.
Thanks,
Oleg
On 01/20/2014 07:16 PM, Alexander Zvegintsev wrote:
Hi Sergey,
I've updated the fix:
http://cr.openjdk.java.net/~azvegint/jdk/9/7011513/webrev.01/
Now it returns location and size of a file dialog correctly.
[1]
https://developer.gnome.org/gtk2/stable/GtkWidget.html#GtkWidget-configure-event
Thanks,
Alexander.
On 01/10/2014 04:32 PM, Sergey Bylokhov wrote:
Hi, Alexander.
The fix looks good.
On 10.01.2014 15:25, Alexander Zvegintsev wrote:
Hello AWT team,
Please review the fix
http://cr.openjdk.java.net/~azvegint/jdk/9/7011513/webrev.00/
for
https://bugs.openjdk.java.net/browse/JDK-7011513
Currently a Gtk file chooser dialog window can be obscured by its
owner window,
this happens because we do not specify a parent window for obvious
reason: our owner window in not an instance of GtkWindow.
However it can be workarounded by setting up a WM_TRANSIENT_FOR
property [1][2].
I tested this on Solaris 10/11, OEL 6, Ubuntu 13.04, all works fine
for me.
[1] http://tronche.com/gui/x/icccm/sec-4.html#WM_TRANSIENT_FOR
[2]
http://tronche.com/gui/x/xlib/ICC/client-to-window-manager/XSetTransientForHint.html
[3]
https://developer.gnome.org/gtk2/stable/GtkWidget.html#gtk-widget-realize
[4]
https://developer.gnome.org/gdk/stable/gdk-X-Window-System-Interaction.html#gdk-x11-drawable-get-xid
--
Thanks,
Alexander.
--
Best regards, Sergey.