From 3898fe8e7cdf79c37a476c2169b4386f33a9bee3 Mon Sep 17 00:00:00 2001
From: Thomas Fitzsimmons <fitzsim@redhat.com>
Date: Wed, 5 Dec 2007 18:04:44 +0000
Subject: [PATCH] 2007-12-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
	(isWindowUnderMouse): New method.
	* include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h:
	Regenerate.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(getLocationOnScreen): Move WindowPeer section to...
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java (getLocationOnScreen):
	New method.
	* gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
	(isWindowUnderMouse): Implement.
	* java/awt/Component.java (getMousePosition): New method.
	(getMousePositionHelper): Likewise.
	(mouseOverComponent): Likewise.
	* java/awt/Container.java (getMousePosition): New method.
	(mouseOverComponent): Likewise.
	* classpath/lib/java/awt/Component.class,
	classpath/lib/java/awt/Component$BltBufferStrategy.class,
	classpath/lib/java/awt/Container$GfxPaintAllVisitor.class,
	classpath/lib/java/awt/Component$AccessibleAWTComponent
	$AccessibleAWTFocusHandler.class,
	classpath/lib/java/awt/Component$FlipBufferStrategy.class,
	classpath/lib/java/awt/Container$GfxVisitor.class,
	classpath/lib/java/awt/Component$AccessibleAWTComponent
	$AccessibleAWTComponentHandler.class,
	classpath/lib/java/awt/Container$AccessibleAWTContainer
	$AccessibleContainerHandler.class,
	classpath/lib/java/awt/Container.class,
	classpath/lib/java/awt/Container$AccessibleAWTContainer.class,
	classpath/lib/java/awt/Container$GfxPrintAllVisitor.class,
	classpath/lib/java/awt/Component$AccessibleAWTComponent.class,
	classpath/lib/java/awt/Container$GfxPaintVisitor.class,
	classpath/lib/java/awt/Container$GfxPrintVisitor.class,
	classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class,
	classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class,
	classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class,
	classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class,
	classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class,
	classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer
	$RepaintTimerTask.class:
	Regenerate.

2007-12-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h: Regenerate.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.h: Likewise.
	* java/awt/Component.h: Likewise.
	* java/awt/Container.h: Likewise.

From-SVN: r130627
---
 libjava/ChangeLog                             |   7 +++
 libjava/classpath/ChangeLog                   |  44 ++++++++++++++
 .../awt/peer/gtk/GdkGraphicsEnvironment.java  |   1 +
 .../java/awt/peer/gtk/GtkComponentPeer.java   |   6 +-
 .../java/awt/peer/gtk/GtkMouseInfoPeer.java   |  14 +----
 .../gnu/java/awt/peer/gtk/GtkWindowPeer.java  |   8 +++
 ...java_awt_peer_gtk_GdkGraphicsEnvironment.h |   5 +-
 libjava/classpath/java/awt/Component.java     |  56 ++++++++++++++++++
 libjava/classpath/java/awt/Container.java     |  27 +++++++++
 .../awt/peer/gtk/GdkGraphicsEnvironment.class | Bin 3454 -> 3526 bytes
 .../GtkComponentPeer$RepaintTimerTask.class   | Bin 1498 -> 1498 bytes
 .../java/awt/peer/gtk/GtkComponentPeer.class  | Bin 18688 -> 18625 bytes
 .../java/awt/peer/gtk/GtkMouseInfoPeer.class  | Bin 1504 -> 1154 bytes
 .../gnu/java/awt/peer/gtk/GtkWindowPeer.class | Bin 8207 -> 8439 bytes
 ...ponent$AccessibleAWTComponentHandler.class | Bin 1391 -> 1391 bytes
 ...TComponent$AccessibleAWTFocusHandler.class | Bin 1188 -> 1188 bytes
 .../Component$AccessibleAWTComponent.class    | Bin 7344 -> 7344 bytes
 .../awt/Component$BltBufferStrategy.class     | Bin 3283 -> 3283 bytes
 .../awt/Component$FlipBufferStrategy.class    | Bin 3475 -> 3475 bytes
 ...ent$HeavyweightInLightweightListener.class | Bin 1500 -> 1500 bytes
 .../classpath/lib/java/awt/Component.class    | Bin 57212 -> 58484 bytes
 ...Container$AccessibleContainerHandler.class | Bin 1195 -> 1195 bytes
 .../Container$AccessibleAWTContainer.class    | Bin 2043 -> 2043 bytes
 .../awt/Container$GfxPaintAllVisitor.class    | Bin 822 -> 822 bytes
 .../java/awt/Container$GfxPaintVisitor.class  | Bin 810 -> 810 bytes
 .../awt/Container$GfxPrintAllVisitor.class    | Bin 822 -> 822 bytes
 .../java/awt/Container$GfxPrintVisitor.class  | Bin 810 -> 810 bytes
 .../lib/java/awt/Container$GfxVisitor.class   | Bin 421 -> 421 bytes
 .../classpath/lib/java/awt/Container.class    | Bin 25778 -> 26135 bytes
 ...java_awt_peer_gtk_GdkGraphicsEnvironment.c |  34 +++++++++++
 .../awt/peer/gtk/GdkGraphicsEnvironment.h     |   2 +
 libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h |   2 +
 libjava/java/awt/Component.h                  |   5 ++
 libjava/java/awt/Container.h                  |   4 ++
 34 files changed, 196 insertions(+), 19 deletions(-)

diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 7da809b8bf42..31b06d9db983 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,10 @@
+2007-12-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h: Regenerate.
+	* gnu/java/awt/peer/gtk/GtkWindowPeer.h: Likewise.
+	* java/awt/Component.h: Likewise.
+	* java/awt/Container.h: Likewise.
+
 2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* configure.ac: Don't run config-ml.in directly.
diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog
index c24ad7b80841..4086a236ceac 100644
--- a/libjava/classpath/ChangeLog
+++ b/libjava/classpath/ChangeLog
@@ -1,3 +1,47 @@
+2007-12-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
+	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
+	(isWindowUnderMouse): New method.
+	* include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h:
+	Regenerate.
+	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
+	(getLocationOnScreen): Move WindowPeer section to...
+	* gnu/java/awt/peer/gtk/GtkWindowPeer.java (getLocationOnScreen):
+	New method.
+	* gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
+	(isWindowUnderMouse): Implement.
+	* java/awt/Component.java (getMousePosition): New method.
+	(getMousePositionHelper): Likewise.
+	(mouseOverComponent): Likewise.
+	* java/awt/Container.java (getMousePosition): New method.
+	(mouseOverComponent): Likewise.
+	* classpath/lib/java/awt/Component.class,
+	classpath/lib/java/awt/Component$BltBufferStrategy.class,
+	classpath/lib/java/awt/Container$GfxPaintAllVisitor.class,
+	classpath/lib/java/awt/Component$AccessibleAWTComponent
+	$AccessibleAWTFocusHandler.class,
+	classpath/lib/java/awt/Component$FlipBufferStrategy.class,
+	classpath/lib/java/awt/Container$GfxVisitor.class,
+	classpath/lib/java/awt/Component$AccessibleAWTComponent
+	$AccessibleAWTComponentHandler.class,
+	classpath/lib/java/awt/Container$AccessibleAWTContainer
+	$AccessibleContainerHandler.class,
+	classpath/lib/java/awt/Container.class,
+	classpath/lib/java/awt/Container$AccessibleAWTContainer.class,
+	classpath/lib/java/awt/Container$GfxPrintAllVisitor.class,
+	classpath/lib/java/awt/Component$AccessibleAWTComponent.class,
+	classpath/lib/java/awt/Container$GfxPaintVisitor.class,
+	classpath/lib/java/awt/Container$GfxPrintVisitor.class,
+	classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class,
+	classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class,
+	classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class,
+	classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class,
+	classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class,
+	classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer
+	$RepaintTimerTask.class:
+	Regenerate.
+
 2007-10-01  Alexandre Oliva  <aoliva@redhat.com>
 
 	* scripts/check_jni_methods.sh: Don't depend on diff -b ignoring
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
index 67040b82a0f5..d06af84433f3 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
@@ -155,6 +155,7 @@ public class GdkGraphicsEnvironment extends ClasspathGraphicsEnvironment
    * Used by GtkMouseInfoPeer.
    */ 
   native int[] getMouseCoordinates();
+  native boolean isWindowUnderMouse(GtkWindowPeer windowPeer);
   
   public WritableRaster createRaster(ColorModel cm, SampleModel sm)
   {
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java
index 16c20ee253f9..f658c17afbb7 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java
@@ -76,7 +76,6 @@ import java.awt.image.VolatileImage;
 import java.awt.peer.ComponentPeer;
 import java.awt.peer.ContainerPeer;
 import java.awt.peer.LightweightPeer;
-import java.awt.peer.WindowPeer;
 import java.util.Timer;
 import java.util.TimerTask;
 
@@ -251,10 +250,7 @@ public class GtkComponentPeer extends GtkGenericPeer
   public Point getLocationOnScreen () 
   { 
     int point[] = new int[2];
-    if( this instanceof WindowPeer )
-      gtkWindowGetLocationOnScreen (point);
-    else
-      gtkWidgetGetLocationOnScreen (point);
+    gtkWidgetGetLocationOnScreen (point);
     return new Point (point[0], point[1]);
   }
 
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
index 7aea50991dfa..7407744af9e8 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
@@ -60,17 +60,7 @@ public class GtkMouseInfoPeer implements MouseInfoPeer
   
   public boolean isWindowUnderMouse(Window w)
   {
-    int[] coords = gde.getMouseCoordinates();
-    GraphicsDevice[] gds = gde.getScreenDevices();
-
-    // Check if the screen  of the Window and the cursor match
-    if( gds[ coords[0] ] != w.getGraphicsConfiguration().getDevice() )
-      return false;
-
-    // Return the bounds-check.
-    Point p = w.getLocationOnScreen();
-    return (coords[1] >= p.x && coords[1] < p.x + w.getWidth() &&
-	    coords[2] >= p.y && coords[2] < p.y + w.getHeight() );
-    }
+    return gde.isWindowUnderMouse((GtkWindowPeer) w.getPeer());
+  }
 }
 
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java
index d8054150dea5..5dc4b2e5b377 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java
@@ -45,6 +45,7 @@ import java.awt.Font;
 import java.awt.Frame;
 import java.awt.Graphics;
 import java.awt.KeyboardFocusManager;
+import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.Window;
 import java.awt.event.ComponentEvent;
@@ -392,6 +393,13 @@ public class GtkWindowPeer extends GtkContainerPeer
                           clickCount, popupTrigger);
   }
 
+  public Point getLocationOnScreen()
+  {
+    int point[] = new int[2];
+    gtkWindowGetLocationOnScreen(point);
+    return new Point(point[0], point[1]);
+  }
+
   // We override this to keep it in sync with our internal
   // representation.
   public Rectangle getBounds()
diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h
index aa0bd0156899..de83f57a5979 100644
--- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h
+++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GdkGraphicsEnvironment__
 #define __gnu_java_awt_peer_gtk_GdkGraphicsEnvironment__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -17,6 +17,7 @@ JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nati
 JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetNumFontFamilies (JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetFontFamilies (JNIEnv *env, jobject, jobjectArray);
 JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_getMouseCoordinates (JNIEnv *env, jobject);
+JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_isWindowUnderMouse (JNIEnv *env, jobject, jobject);
 
 #ifdef __cplusplus
 }
diff --git a/libjava/classpath/java/awt/Component.java b/libjava/classpath/java/awt/Component.java
index f8bed17618ea..fe4fb9b8b0da 100644
--- a/libjava/classpath/java/awt/Component.java
+++ b/libjava/classpath/java/awt/Component.java
@@ -5833,6 +5833,62 @@ p   * <li>the set of backward traversal keys
     return visible;
   }
 
+  /**
+   * Returns the mouse pointer position relative to this Component's
+   * top-left corner.
+   *
+   * @return relative mouse pointer position
+   *
+   * @throws HeadlessException if in a headless environment
+   */
+  public Point getMousePosition() throws HeadlessException
+  {
+    return getMousePositionHelper(true);
+  }
+
+  Point getMousePositionHelper(boolean allowChildren) throws HeadlessException
+  {
+    if (GraphicsEnvironment.isHeadless())
+      throw new HeadlessException("can't get mouse position"
+                                  + " in headless environment");
+    if (!isShowing())
+      return null;
+
+    Component parent = this;
+    int windowRelativeXOffset = 0;
+    int windowRelativeYOffset = 0;
+    while (parent != null && !(parent instanceof Window))
+      {
+        windowRelativeXOffset += parent.getX();
+        windowRelativeYOffset += parent.getY();
+        parent = parent.getParent();
+      }
+    if (parent == null)
+      return null;
+
+    Window window = (Window) parent;
+    if (!Toolkit.getDefaultToolkit()
+        .getMouseInfoPeer().isWindowUnderMouse(window))
+      return null;
+
+    PointerInfo info = MouseInfo.getPointerInfo();
+    Point mouseLocation = info.getLocation();
+    Point windowLocation = window.getLocationOnScreen();
+
+    int x = mouseLocation.x - windowLocation.x;
+    int y = mouseLocation.y - windowLocation.y;
+
+    if (!mouseOverComponent(window.getComponentAt(x, y), allowChildren))
+      return null;
+
+    return new Point(x - windowRelativeXOffset, y - windowRelativeYOffset);
+  }
+
+  boolean mouseOverComponent(Component component, boolean allowChildren)
+  {
+    return component == this;
+  }
+
   /**
    * This method is used to implement transferFocus(). CHILD is the child
    * making the request. This is overridden by Container; when called for an
diff --git a/libjava/classpath/java/awt/Container.java b/libjava/classpath/java/awt/Container.java
index 83d9f7b78c5b..e7622f2e8396 100644
--- a/libjava/classpath/java/awt/Container.java
+++ b/libjava/classpath/java/awt/Container.java
@@ -1097,6 +1097,33 @@ public class Container extends Component
     return locate (x, y);
   }
 
+  /**
+   * Returns the mouse pointer position relative to this Container's
+   * top-left corner.  If allowChildren is false, the mouse pointer
+   * must be directly over this container.  If allowChildren is true,
+   * the mouse pointer may be over this container or any of its
+   * descendents.
+   *
+   * @param allowChildren true to allow descendents, false if pointer
+   * must be directly over Container.
+   *
+   * @return relative mouse pointer position
+   *
+   * @throws HeadlessException if in a headless environment
+   */
+  public Point getMousePosition(boolean allowChildren) throws HeadlessException
+  {
+    return super.getMousePositionHelper(allowChildren);
+  }
+
+  boolean mouseOverComponent(Component component, boolean allowChildren)
+  {
+    if (allowChildren)
+      return isAncestorOf(component);
+    else
+      return component == this;
+  }
+
   /**
    * Returns the component located at the specified point.  This is done
    * by checking whether or not a child component claims to contain this
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class
index dfb28e4bf3ece359dd067cd75655587ef1450c28..6e3a11a3cf1c30a780846a4a025ad41b7afd06ff 100644
GIT binary patch
delta 293
zcmXAjyG{aO5QV=V47*EKQ7n)(F+>|s3W=o_mNpt2L)^lO4Xh@Rz#1zH@qR<`_lCDZ
z(Hdi-L=zhm3*W$3@F9r5v6wS6XU;j9mi5`&`PF)T2U6T<_ykFr@<$&NA6g{rmeOuM
zQ&^hGXPn|>VX@>0;_+&=C*&>sU#1<WIGV8KkCqQ?m~65o=k)Qwj>#^2vaXLA6%I8H
z1eRRZtznZYg91J4cxgA|<$_d@CdYrIp~wlx&E~uyHm4^2oXHX6UUWTu8v}k@zzSvc
zsbG~gg&{T1(}rL5ShC4_4Qr^$c8%^g?Ahcq`>Kv!IBAH6()fre3@ZoRqH#wDb^3Ua
XQ|*!HIW?83lDObfX$4nm^KtzPcg07F

delta 261
zcmXAkyGjF55Qe|AE7`NlL4#IVK~}BQEt1~C(l?N#HY5={w-@iXcs<@WijYY9h@e5y
zMzHWXe2(BO4$MC@Kl9J!dwdY)e+F-#K#6+~M-khSTX>rJ@@%YEbK8a;cI|^+$n6^r
zIJCcd-fwc^ajXdKhYpK|Q)U&qR!x=~%Sk<;$+_VoBYhzktBqPc38-*snBvN=`CXNN
zE(Fu=I*JW81xMtB6^3vnMsc65lyI)kUdq@zm2&*Tk@(pwwx@d1;}8jsiUQhrbQtE5
f3A#)Q6aCMjC~svJam|fv$+BBgQ7c+fxej-K+7~wY

diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class
index 097713c014afc4df54b9ce0c14ba1f082809f87c..abf76c0d9ee15a930e5b17492d91a488995a12d5 100644
GIT binary patch
delta 75
zcmcb`eT#d83=8WT25!bxlNDKfB{wp#Fm7hxWZc5Q$GDY2gmD{#6ytUVdBz=++gYaa
f?g5JKWzb;U!=TN$Z?Yz<AM0TTF~%d4Ygpp|<){<8

delta 75
zcmcb`eT#d83=8W925!c6lNDKfCATuLFm7kyWZc2P$GDS0gmD*x6yt6NdB#1H+gYaa
f9sr6SWYAzdz@W`|XtE}&AM0@jF~$><Ygpp|?j#fU

diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class
index 9627e77665a99cadcab4a46d83cab59b5d19e4a8..45f9c47f8c6e8199373199de090d6e0cd1fbe1ed 100644
GIT binary patch
delta 7563
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
CciGAS

delta 7572
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
C+6uM+

diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class
index 35c5677f5b867b069d0e57e595bea78c4b3a725b..fc028c27fbbb5e0101ee076f6d2ca3d69b406035 100644
GIT binary patch
delta 231
zcmaFB-Neat>ff$?3=9m03^p6NESdcE7!24M^cflWvl7b^^%KiW^usgrQu51rfGUg_
z8Q9ZPO9E0;ix?T?H8g$TY6^ft`p)^e1^IcYd0++B><lK149XJ)B*h^HfOK&&@GzM1
zFlaNFGcssQc3_m|MaWreMopf@EVcPMvmv9e69W?vGBEIMVi45c#-MwE!FU^k=^CI2
p6N502WMg0ilJ*QDKvE2%5=e^!c|bi377Ug^c}4~+AdiW`8UPWyF%SR%

delta 625
zcmZ{h+fEZv6o$XunWj)DD4?iSkPry1l$Jx~P~;%3LbV(W7f4K$NjtW~#f&K<TsGkq
zd;(0o>y2P~;e`)C;yZZlLl{>(DJcowtiAU7*Z=Q-t$ot@`$qWU?~k9rB%9yD^MR^C
z!XU|n;#SG>b_x~Ca<bNuU9b)n52LZS`2+LFOq$1Da;;*1EZc=cA6^JEMJmL!;^t+`
zuI&`vV}mEmDDH`1i<5Dk4|eHO#q?~~Q4B?6zHYT$_)3%L&yfx>uNb)0zgEs*fv1X2
zdCs?{c+k>smv8gEWU$PNqIXY7dAHECwdMHZD|*`L+pg_+&1qK+GGrAULfW;9URj|<
zW4Xp6UKp%3poWQc%Py6@&wm1uL9JAjHAeos#B-&kRP`4cLHU#SXLQ$zY&4JY&GERF
zm>R1yS!ebuL9HhFVp@;uiTnC@22Po1r2;(L|H5EA*o1~pxzkDodM;2<uW2=TB0#Ui
zAvz>36Jmuf_A>O7<&jJ<!n%}lyp!{`w4{7r^l?{i;!x^2ln~z#<FUwf@tT*sk_kpg
OGfEU)@VxW}*!Tz8LzgxH

diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class
index 53b831decaf8782bd7c1a72b4759b4d75a3e9a1a..a348cf02d4ab66380c7d6d3adfc3dd7bfde58533 100644
GIT binary patch
delta 1102
zcmZvbS!|V66otQ4dRuy1JKfHuEv-mLJ0uiAsJ057C@oM*CmgQrEfnmaTv`l`RbPrm
zK{*eY7$h1E7%;Y}pdvA9qA?~Cr)rE)#Rru~6Aexg_q{a+6CeJw*Ewgez1BYGKZk0s
z)OkPr>+D-VmAYrV@5N90b_9YgBYpnh;K*>>aC_hVfxxgxE-G%><sb7`_{W14n??qQ
zgKNA<x5sIn){7-Og1b8hhx<py8~%^&De7%1-WII}5&z#RUe&89jwy}_&#2Xn3W|u{
zrrD3;k4aT-C~>7$yB87zG3`XMm1sI#a?)D$xHcQ_wlUQ`msF^MFq$`XuZv24v1$*C
z2@=a*QWztTaZ1=nH4jkBej1pdi3e$Ak~?^q0FSr}$)lbrqB!6-`&wfjH|`UpanPOc
zt<qt4$+zpeXYjBdFGtDZS=W`a&vVl9Pr132lf~0yFhf4GEaz29IZY*JSjp?G<_(%T
z%XY(ean8Mz8t}YrmELi_wBz|7o6aYu^Qmz^qm0j~V~!4sU3_8QzI0!w^(9@fZZ49@
zys3O+ncvQ~rPpcldn5l~<R2;KGBx~cq+jrJg+YF0H@`8&?~L#V_u1MQe_Fd&c}n7l
zA~>o=oKPe$Tbx!j?<$55<mJ3#`ATujTfC$MGX(?IHhgCqw^$6JEEc<j%+r}ZVwFOg
zQpr~uWlCq2GN@6eyO=q*F^6d7k)Z3z&@ys$gJmqILWNWtUZWz`shDP!(4|s(RfgYi
zzslL83MMR0s*)+KFt^q2YF58zE%B;xJF|CY)*EUdTa7GJ6NQFvR6Uhyc9*mLYI7Tw
z9Iomx&28qalOpv{s&32aWrenLv+kr;0U9+xt9G+RL*`-B#pgU7vlox{lc@>!O3pn=
zQ#Lzbvq#C%6ifA(E65G>wA&R%*h!>&&Usr(O3&!FH&x$Vx~RM~vivnQPTN+5{Ra@w
zBG5r1b%+=}89vUm1?oS?8HrEL+JNjqwP>SzDEFrHBjLO_Tf^>r;n<~CcRsg3N8L}k
zsn%c!KOe%ao3z<73oQ3m`%Dkb*sx$ADpW+r!v&WvZ2o(X(iXLcMWn6vOd`xeN4W5*
au*f#|eqKT0%r&NU4L8IHneGf}sq1g=OXcAJ

delta 837
zcmZvZSxD7s7{-5(cFLu+qsMbRX`Z8%+o?QKiIs*nT4^PNE!aj_9%#k(qP-h!m?G*U
zrX;D0qK#H(m=>6cAc!v7iy7MJVixG4i=q{xSFgJ0;?MJZ-}^l8^S<Bzef6HIq+4IE
z`~j3|>V>2mDP1#DJEf?5+rLcZF5-<PHqwh}^kKR?=&jH!_hVXyd*v<A{2o@AR-l-%
z3N3ZJ(~gy{B7xN;vj!h)39*i1)-#F?RI!nXY@&`WG_aL<Y$wJJw=jK$r;XmUyT8&K
z5`Q-DF8u6vCBAa)b&GsU`gP!;h9nL#fKK<qx50DD^rzk2jMGKu$mBe^TqK_^BK%5}
z-zejEMstaJE;HBoe6G5vKj!(<I$d)e{^PlKEa$G}+%xZehVp=F9x}tQiAOfuW49o%
z(EG%;c}jntS;})$zUX=!s8;MBGyiMm|0v>rDtTk3w>0yP#k^-JA6U*uTKU9EyIaR+
zw(*6%f?p&$6~_t1bH?zzdUIU~+*BgBmBiml=DFcZrMS((JHa%Pm5yINa+SeQ`6*X`
zN@cp10gt9;(?>a^DvwMJB1eNwF@zH3Gs^f_6;Pu>>QzLOikYJb&Bj|ajMW;>X2WeN
zp<N?vrjf2KtHm>x6jiv_S&M?T#wL)Zi44{x3XBg^Em76E71_;daQCzKl}@+J88+EW
z3N?#}noKjBk($F8&7(>!Oj3*nEum4%Y=&01f8c?{HF&g<pf<U(oCV%CJGI+sCj-?+
zSU<UwIWgB7ifWHL63Wnc_d1jp*l)iG`eILLUnS$ZQ9pFof*s$j)u`4Lhr^M>J=HMr
t-#ELy6Ku1dZnj;BIJ>FqNjm!7ZuRbLI8P_ty>KA4TQAd3wvKU{@)fBUuB!k5

diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class
index f48c922ff792d49fb88ea272c16cca4c14a50970..6c5bdeb7565acf653b2fb2ea1b17693ac629f441 100644
GIT binary patch
delta 73
zcmaFQ^`2|P4`$YF46KryC;w%3<=xM~B6)y;OL9L0ujIkW{w)5yr+^}-fg-1XB4>ai
Z@{>=oC^KH0Y{)7*nVVIW@d1!!2LN+D7Cis}

delta 73
zcmaFQ^`2|P4`$Xn23E=H$$yz$dD|ISBs&<mB-<HyB|9hkv-tB)0*XuqicA8EOaY3>
YPd>$>%s6kdA*<|UZdO&s6+o6901ZtOod5s;

diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class
index 029692cc4f01be7ea4ba5ae559cf8b6743549703..e2e3e879254f03f02233e762137559a317e310bf 100644
GIT binary patch
delta 58
zcmZ3&xrB4WW@gq;46KsxC+}c(<^9dTBKe1bOY%1ZujJp!Tr7TkQfv$?QtS*|K$=&I
M11KarxtT=~0RMCjP5=M^

delta 58
zcmZ3&xrB4WW@gr146KsdC+}c(<vq;6B6);?OY$%SujJ9mTr7TklIMUz=Yc}!fI=65
KLb8*aSrh^LR1g{f

diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class
index 010706e95d8ce4e43ba39ead8a846c71c0fd78ee..22532323a23c48aae7cb9cc9c5672b73a6fd9def 100644
GIT binary patch
delta 482
zcmWlTJ7^SP6ov1<@{^g>b$7Ef^WT3aVb~=;vS<{dS;t+HDb(Fr2ocvRpoNX1U}KfS
zM<EGlqaL(~78bE_Efy3XsD-9BS_zuoSF0d4(Q9+>`R+Mf&L9~igS0gInzVUAu6am#
z(<k3NrocR*s(DG{<`qtq4!iHjF>6#X@6j*Kxu1kS3#|*qsFio9Z|Ig=>KB&EO|^m5
z^6~_`<Zzybc{7E)g~qr*yLc;2agnCkqYnFYlmnV)L#LQ=efV_1H5%eED)Kfmyq#j%
zHQouQvQXzqvG$S6Q&i#o<Z*+T56I_4A_r-Lo3vMSgInlVW>p)1Dv9c0(#zCIT=Wuk
z2G6`1bpgM<R9}{6SJ3h^bq$Mts&5P55svZ0udDm;gH-qB_6YMqrk-L&_>J&ed=I*6
zO=gUqsjGEdGO7L|&R49OO#MWGQ@tVl7st4hvkva@k(~AL!N%BR8+ltL&(_GdRUER@
zIlBi}ZCf{~Xj_uWq<0w3=^hz-9OuLT-JgeTeOCN);s*$$-D&}yC{v5L70u`yG-Pk$
YW0dM;a_n71BVD~B>Vc?HERBr+1IfI1GXMYp

delta 482
zcmWlTO-NK>6o${4@xvKGX2!Yqp6}i}a%qUdp+pjrLD3sjGk2g2+oWI%ThyXjWSgjj
z$dYQ;O9s)VY$w$03Th|V*8Xf`Kie59+DVkzX>-o|oaZdwX0=&u#`)eGWaJuU<pOod
zEV*)-Jh?(U<T~}qJf`!9viB$>i_|Umv78^zK2mzDw4@ZFT-eP`Gzug93JZl{Ud2k`
zLBG7wr?=E2?<kP>v{OFN9$BaT@{vYmgX;2$j>%`5k}otPUva1Bv?p!qly8)i?<Der
zBHd;AiA?cQMSiRLqZR*BQMSmDZL*dquuNr}qJEpE0nJ0U1IxuDoWrkTl|u|V3Gc#H
zr^*9(?u_v;Hl5hiC}ZmwaTA`vO*b~v$|sd0wA~7yf$PO)R&N(E<t03aC(5^!Z=>Zk
zcu{AB<5J-z%t>sXs(FSLN%$qYZERMRUt_}7Q+5px?ctQ&z?vT+?GJU?7CE*}u5IC<
zKbo?enD=WYO*y|qe-iB-1mh+o@k=-#{O|rEsF{802i1EB!o7R|^)TV1xEqd{6V&NX
ZVm*w_3}yUN2ulrfR?|66y;vyq{R3J+fGz+4

diff --git a/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class b/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class
index 74be60b2956ddd6a065d45be923a6773c063aa7b..e796a03a7f4bd12840c034d0e2138d5811afce4d 100644
GIT binary patch
delta 291
zcmWO0%PT~290l+*>E_PdiKsE|sma14V=)=os5`h*Rvu~CQ2qe1F^ZI_Q6tuVl03Q%
zvA%h1*x4Y-<1Y9gY^<%E)v53A^!c60jok3JF;#>`4{;8oi6cmH6dC%)vMZTMG;m5U
z6G(6xtt=tU8Dy1t&YHlUk1d!#+m9_8Fa9%DR(n<L6}8u7tfNQS#|;c{69rZ<t}L;N
zIc{Nz+bDAfHSXewd#Kakn)_xsaoBw#=~U9OqyWvVgFHhA&-HI0=>kPwnygcGLv6o8
z3vbZITeLGo7w@$2-aI(9p(i=davtTpAjwxX-?Z!<o%}#AKapdEe%(EO!RI$}00v>1
KypuKu$-+NG$3&F?

delta 291
zcmWO0zb->@90l;xaP|Ia2yxrqLu06l8X8wDr6pH1AtJ=4Y)C^fm>SVU=#Kn?s-e7r
z#2fS#`WP0o$(c^_{hfS%ryul#uiv=u!r~wt4q=#a__UFsV=TLw@iD-pUdG`vjWH4_
zP9U!gIcd6fHI_4fb`%Ru$@!@)slBXrQSB8OtC&&FF~S1ZQDy~O$~|sipPQ(28&}*x
zi@WHsiccQkn}_DyZRd_9ok%*8RKo~QL7riXb^TkDbb&Qqn!I-#G_?I1qr5?qO{Cet
zH1D+V-t@dy@lno`oCi4u2|la&s%33t`G#3`P~bb}buY1th#x2bScGLlFJ)d5<$oiO
BHkAMX

diff --git a/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class b/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class
index 16b024509d292e6caa70d07f2d90b2ccb71f5452..f0857dc8ea3d2d6400478221e574e9de954fef6b 100644
GIT binary patch
delta 223
zcmWNKze@sf7{;G(a>L#CH00`1A4$0)h@zo_9Mrg0K^zJSiU^{mmRcgkD`=A(>fJRY
z`Z07g<=@uUyFSn7`8-15PsfcI!QmWSE+EGOLKd+|Vu@v}vx1maxp5yu?kHBnEbEFi
zP-Tn_?uqpdO-qao<ks7C_L1d*q+Z)OhR+kt>*hk5cGp}>VlRtbWZ2WIJ9zA?CsD^e
zw)h}3{!xCQ>61PTk>|6vFLLFdua0%|s+*Cv69jz2Jl|2`2P*u;GQY6GZ>%wuKmW}6
Kh2>OEv)lh%J}n3U

delta 223
zcmWNK%_@Xp7>4f;@8W&mZ)p1RmFFHmF{U({1vW}FGx=FbqKu7{5EDaTHx>@zIS)A?
zg-n^8!K`?;*WGp9O6A+0pOs%Yd54z|jLIi+`NEWZV@`TllpoZkulN2Xmp?cHV;n(F
zhZ%a*7&L~XB-12j`V^L22?b8-YuI&Vq?|Xtmeh1TZX~PPjn@+m46_N(Is!MXvt^BK
zEOSSP(pGWb=z%>PqR5u5$J$QM7B0-WH0RvbD`aeAoHr2OVwxS4d4~!gQ01cz(o@$(
K<g=a>R{jB?Of0ql

diff --git a/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class b/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class
index 5ab9670bde14b26b2b4c862a31be8ab95889d585..60503e61e1d2382e703b079b07461454858baf96 100644
GIT binary patch
delta 69
zcmcb^eTRF4Gz(`s1FLun1E+Y}WEB=C#=^<zEG3*(3|!*X3`XKLlb^6eaJB+@Z46@K
W?UP+uBRD4jc@u%WNt2hcngIY`vk^!D

delta 69
zcmcb^eTRF4Gz+Ib1FN_W1E;v&WEB=CM$5_REG3*y3|!*Q3`XKElb^6eaQXsyehgyb
V{*zr<BRC^~yhtD~YVtBxGXMg+4sZYf

diff --git a/libjava/classpath/lib/java/awt/Component.class b/libjava/classpath/lib/java/awt/Component.class
index 6adbf61ac0abe38207e239d9a19164c27ce94556..90b546ccd3a8bc5e208f638e00b5432ae4358a8f 100644
GIT binary patch
delta 2362
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
Ah5!Hn

delta 1148
zcmYk5U2GLa6vzLwvz)u$t`yla3pFVb(+3I-mPTV@l*FVeN+kw}v;~u<T)bDgcWY^l
z5aDWkAU^oTJ{S@deOi6+qXCzKrIdnz1&Sh6EP@JJkW$J=%V(jU-7R<@cFu4A=j_ax
z|I7~VmBVc^-g$d#8-TJHHOD_*;Lck3rug1%U06JMn}GF7?d!EOQqGLob1UAcOVl@}
zoJ^dy(~cOmudON)9q#0+iP`P6%cK?z7_?g;UgxCiolGLrI46#kA{mFEA5Ce<dkoqq
zKuevvrsbRxbikAk$SDRL6wqHytO&KAO_`P%gMQ)4w9~Xa5voT_xk|1!=vM(VR4bjJ
zlQ8$2nU(L!_YFG6$yBDksj)KAm~@te$>XN{N`7t7AKX_mm1wAKs7po*{bkBBIn$t1
z0^{yxo^+ZrOQPofG39LetU;#*^1>xwOePY`!b$%%<tOq}f&1q~?zj(ESH$Q%U5L?u
z`*wAaMi<@Bs|#av*`z@layzOQ1nH|L^|?hgb2Yl<IyFxVxSMMp7jolJ%}1K(-?-+b
z^>1ZC-;oc2*Z4pl;iz%c#J9nS4LlNSP)G3@vx>6lz)pVS3fj!X-%tx}fu`+ZjreUV
zwFdKvceq|>?btM*+W6Voj+K=jIs<&(q93OFl-;uqV@pcg<s_f>dicVkPFC-Tr9SQV
z;9As`Bd+l2Cl9MFI+P>6>(gNmDT}&u#C1L$^)TO}o*Z$DPrrMZWzmU1%#JQ!;nSZU
zN-R2=Q(EQI-ySAd)EkL;L8D*#bmq=prtcYfv^g*$v}!3Pu}8ho)oGaO4D!`k6sSHF
zsdJdB`cbaV;|Vo@XVeAEQx~yVT|#+MT}Fc%#40s}HR=l1s;gM9uEA5+(X4KuRo%pH
zHH<EG3*9_vj~a1HPfg6ySvKCpLH$EMHVp;nkmFGZ$@cfrxzWSW`Ob$&fdfH?J56)z
z{nOa{l1-w#g)T96mTZy_M%cyZM0kiX8(}x&2NCu#eiLAp{bL@T;w0m9QAID~h5&_6
zSN`{ACie<E4&BZ}zHOq=z8A&zSUhCs<1u?2p0e-53-)*{vMs!97hst^A?M1a?_Rm|
rm}0udJ1^7ddSE==pqm`0K&N5e>}_4A5r`Q7-!YA&4qe~DaSZSukR(I^

diff --git a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class
index a07e427861d9fe6efe6a64a2fc299b6342ce2393..5f045ab2123f369c9115b8849d05154b22ffa81f 100644
GIT binary patch
delta 57
zcmZ3@xteps4rW$W23Ag`$$OdIc=Z`rI1L!MIrSO%I1MKYumtd014V3rBGy0=TcC*S
I<SrIP07NDU`~Uy|

delta 57
zcmZ3@xteps4rW#^23Ah?$$OdIctsdkI7Jz_IYk)wIK?Ilumtcb07VpmA__neC7_7x
I<SrIP044kg?f?J)

diff --git a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class
index 18f79012eb308bc4028c96f1a4492ebb82bbfa18..167660a70ba3aad921bf1f9b24a9c1ec302b01d5 100644
GIT binary patch
delta 136
zcmey(|C@h91*_mq23C%13|t%+7`QnuGKg{9nB2+QtN0iw@|1yx;~9f8$8!cXju#B3
z94{FxfNXn?R}9V^k0+b69oPK^RP}>FgyScJ1jjE1DURO^vK)UHbU6Mp=mXhK9RC>H
mIQ}z)axySPa(tVt&0fUEDZn7WDafG4Da4@8DL8pGdjJ6Zp(Vcn

delta 136
zcmey(|C@h91*_mb23C&U3|t&r8MryNF^F;Oo!rUVt9Sw^a*Bb6<1~XZ#~B7Sj<XD=
z9OoD;fNXn?^9;@$CnlS-9oM}LRCSj@gySBA1jl^_DUJsWvK$W?bT}R{=mXhK9FG~?
mIG!+say(^-<hVUqo4tsS<12#z$2XvX-x<_7zD-`u9smGv!Y7ab

diff --git a/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class
index fea586bd9fdd6e2ff76fe5c78de1563e926b8035..cd7fd4c64930d3a08cf132bc29c5d8951751eb8a 100644
GIT binary patch
delta 33
pcmdnSwvBB=2@~sT1}=`3lPj5w7*|eS!(_|4o`IEP!{m2N9ssp+3a$VE

delta 33
pcmdnSwvBB=2@~rC1}=`i$(2k-jD3^WFxj$BVPNH$I{6)w2LP>!3MT*n

diff --git a/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class
index e5a54f8ffdcd4daeaacaa7526c0056e5eb50ca58..791d8579f0ff3cb816670735951113a24851de7d 100644
GIT binary patch
delta 33
pcmZ3*wu)^-1{3Ra1}=`NlXIDj7^hBNz+}rhn}L;M&g4f-9ssGL3IYHC

delta 33
pcmZ3*wu)^-1`}%y0~bft<Xk2r#;VB+m~2@a7+5(PCqH8H005!633~tl

diff --git a/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class
index 3c741e9842639cb4b6c5961655b37de47ecb2287..087631893fb153a2de73bbae80511d0bbcba9092 100644
GIT binary patch
delta 33
pcmdnSwvBB=2@~s91}=`xlPj5w7&lK|!(_|4lYy0E*W`Ch9ssyt3g7?$

delta 33
pcmdnSwvBB=2@~rq1}=^nlPj5w7-vjg!(_`kkAanA{^WN|9ssa+3RwUE

diff --git a/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class
index fe7b3267f6e8096714b07d3a456415747465c279..c8557e99c45554e42dc3cc2c2333c03576935b34 100644
GIT binary patch
delta 33
pcmZ3*wu)^-1{3Q-1}={IlXIDj80Sx3z+}t1l!29F+2lt|9ssP63N!!!

delta 33
pcmZ3*wu)^-1`}%=0~bfj<Xk2r#+Jzom~2_Q7+5*FCqH8H005+?39SGC

diff --git a/libjava/classpath/lib/java/awt/Container$GfxVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxVisitor.class
index f9f85ae5215725a0eef598f52c2705b1c6225465..9fd2811aad91576777515d178c0f0e871e924694 100644
GIT binary patch
delta 13
UcmZ3=yp(xE0VCst$%Tw203ay@JOBUy

delta 13
UcmZ3=yp(xE0V8AS<U&Rh03V_RApigX

diff --git a/libjava/classpath/lib/java/awt/Container.class b/libjava/classpath/lib/java/awt/Container.class
index 1154af9697a1a404674013f11285144c05956757..f6b029ec2587659e06a999c4b4358fd6f8186798 100644
GIT binary patch
delta 6803
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

delta 6519
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
PFkHax&^rt-GVT8XyJ%e*

diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
index 1c88d1b510e4..6066a6bb2712 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
@@ -263,3 +263,37 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_getMouseCoordinates
 
   return retArray;
 }
+
+JNIEXPORT jboolean JNICALL
+Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_isWindowUnderMouse
+(JNIEnv *env, jobject obj, jobject windowPeer)
+{
+  GdkDisplay *display = NULL;
+  gint x = 0;
+  gint y = 0;
+  GtkWidget *windowToTest = NULL;
+  GdkWindow *windowAtPointer = NULL;
+  jboolean retVal = JNI_FALSE;
+
+  display = (GdkDisplay *) gtkpeer_get_display (env, obj);
+  g_assert (display != NULL);
+
+  windowToTest = (GtkWidget *) gtkpeer_get_widget (env, windowPeer);
+
+  gdk_threads_enter ();
+
+  windowAtPointer = gdk_display_get_window_at_pointer (display, &x, &y);
+
+  while (windowAtPointer
+         && windowAtPointer != windowToTest->window)
+    windowAtPointer = gdk_window_get_parent (windowAtPointer);
+
+  gdk_threads_leave ();
+
+  if (windowAtPointer)
+    retVal = JNI_TRUE;
+  else
+    retVal = JNI_FALSE;
+
+  return retVal;
+}
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h
index 78d947c6ef4c..978c2ec506b4 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h
+++ b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h
@@ -27,6 +27,7 @@ extern "Java"
           {
               class GdkGraphicsEnvironment;
               class GdkScreenGraphicsDevice;
+              class GtkWindowPeer;
           }
         }
       }
@@ -77,6 +78,7 @@ public:
   virtual JArray< ::java::lang::String * > * getAvailableFontFamilyNames(::java::util::Locale *);
 public: // actually package-private
   virtual JArray< jint > * getMouseCoordinates();
+  virtual jboolean isWindowUnderMouse(::gnu::java::awt::peer::gtk::GtkWindowPeer *);
 public:
   virtual ::java::awt::image::WritableRaster * createRaster(::java::awt::image::ColorModel *, ::java::awt::image::SampleModel *);
 private:
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h
index 3eb4c142aaf7..a40f4168d2bc 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h
+++ b/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h
@@ -32,6 +32,7 @@ extern "Java"
         class Component;
         class Dialog;
         class Graphics;
+        class Point;
         class Rectangle;
         class Window;
     }
@@ -101,6 +102,7 @@ public:
 public: // actually protected
   virtual void postMouseEvent(jint, jlong, jint, jint, jint, jint, jboolean);
 public:
+  virtual ::java::awt::Point * getLocationOnScreen();
   virtual ::java::awt::Rectangle * getBounds();
   virtual void updateIconImages();
   virtual void updateMinimumSize();
diff --git a/libjava/java/awt/Component.h b/libjava/java/awt/Component.h
index f5889d2bc0d3..23edfa77e98b 100644
--- a/libjava/java/awt/Component.h
+++ b/libjava/java/awt/Component.h
@@ -354,6 +354,11 @@ public: // actually package-private
   virtual void dispatchEventImpl(::java::awt::AWTEvent *);
   virtual jboolean eventTypeEnabled(jint);
   virtual jboolean isHierarchyVisible();
+public:
+  virtual ::java::awt::Point * getMousePosition();
+public: // actually package-private
+  virtual ::java::awt::Point * getMousePositionHelper(jboolean);
+  virtual jboolean mouseOverComponent(::java::awt::Component *, jboolean);
   virtual ::java::awt::Component * findNextFocusComponent(::java::awt::Component *);
 private:
   void readObject(::java::io::ObjectInputStream *);
diff --git a/libjava/java/awt/Container.h b/libjava/java/awt/Container.h
index 4a44759532af..3ea162aaede6 100644
--- a/libjava/java/awt/Container.h
+++ b/libjava/java/awt/Container.h
@@ -97,6 +97,10 @@ public: // actually protected
 public:
   virtual void deliverEvent(::java::awt::Event *);
   virtual ::java::awt::Component * getComponentAt(jint, jint);
+  virtual ::java::awt::Point * getMousePosition(jboolean);
+public: // actually package-private
+  virtual jboolean mouseOverComponent(::java::awt::Component *, jboolean);
+public:
   virtual ::java::awt::Component * locate(jint, jint);
   virtual ::java::awt::Component * getComponentAt(::java::awt::Point *);
   virtual ::java::awt::Component * findComponentAt(jint, jint);
-- 
GitLab