OpenJDK / jdk8u / jdk8u / jdk
changeset 207:ada64880c5d0
6508505: JComboBox collapses immediately if it is placed to embedded frame
Summary: XWindowPeer should translate absolute coordinates to local
Reviewed-by: son
author | dcherepanov |
---|---|
date | Mon, 31 Mar 2008 15:41:56 +0400 |
parents | 4a06c0b6fdef |
children | b0bc376a5360 |
files | src/solaris/classes/sun/awt/X11/XWindowPeer.java |
diffstat | 1 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/solaris/classes/sun/awt/X11/XWindowPeer.java Fri Mar 28 03:06:00 2008 -0700 +++ b/src/solaris/classes/sun/awt/X11/XWindowPeer.java Mon Mar 31 15:41:56 2008 +0400 @@ -1974,8 +1974,9 @@ // So, I do not want to implement complicated logic for better retargeting. target = pressTarget.isVisible() ? pressTarget : this; xme.set_window(target.getWindow()); - xme.set_x(xme.get_x_root() - target.getX()); - xme.set_y(xme.get_y_root() - target.getY()); + Point localCoord = target.toLocal(xme.get_x_root(), xme.get_y_root()); + xme.set_x(localCoord.x); + xme.set_y(localCoord.y); } grabLog.log(Level.FINER, " - Grab event target {0}", new Object[] {target}); if (target != null) { @@ -2026,8 +2027,9 @@ // see 6390326 for more information. target = pressTarget.isVisible() ? pressTarget : this; xbe.set_window(target.getWindow()); - xbe.set_x(xbe.get_x_root() - target.getX()); - xbe.set_y(xbe.get_y_root() - target.getY()); + Point localCoord = target.toLocal(xbe.get_x_root(), xbe.get_y_root()); + xbe.set_x(localCoord.x); + xbe.set_y(localCoord.y); pressTarget = this; } if (target != null && target != getContentXWindow() && target != this) {