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.


Reply via email to