I fixed some stuff in java.awt.Container.

2005-11-17  Roman Kennke  <[EMAIL PROTECTED]>

        * java/awt/Container.java
        (Container): Added comment.
        (remove): Only call removeNotify if removed component is still
        showing.
        (paintComponents): Call paint() instead of super.paint().
        (AccessibleContainerHandler.AccessibleContainerHandler): Added
        comment.
        (LightweightDispatcher.acquireComponentForMouseEvent):
        Don't special case MOUSE_RELEASED events. They should be
        dispatched unmodified just as MOUSE_PRESSED.
        (LightweightDispatcher.handleEvent): Also clean up the pressCount
        after a MOUSE_RELEASE.


/Roman
Index: java/awt/Container.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/Container.java,v
retrieving revision 1.68
diff -u -r1.68 Container.java
--- java/awt/Container.java	11 Nov 2005 16:12:38 -0000	1.68
+++ java/awt/Container.java	17 Nov 2005 20:46:48 -0000
@@ -123,6 +123,7 @@
    */
   public Container()
   {
+    // Nothing to do here.
   }
 
   /**
@@ -427,7 +428,8 @@
         for (int j = 0; j < list.length; j++)
               r.removeComponentListener(list[j]);
         
-        r.removeNotify();
+        if (r.isShowing())
+          r.removeNotify();
 
         System.arraycopy(component, index + 1, component, index,
                          ncomponents - index - 1);
@@ -846,7 +848,7 @@
    */
   public void paintComponents(Graphics g)
   {
-    super.paint(g);
+    paint(g);
     visitChildren(g, GfxPaintAllVisitor.INSTANCE, true);
   }
 
@@ -1972,6 +1974,7 @@
        */
       protected AccessibleContainerHandler()
       {
+        // Nothing to do here.
       }
 
       /**
@@ -2039,8 +2042,7 @@
    * location, otherwise the appropriate component from the conditions
    * above.
    */
-  Component getDeepestComponentForMouseEventAt (
-                                                              Component parent, int x, int y)
+  Component getDeepestComponentForMouseEventAt(Component parent, int x, int y)
   {
     if (parent == null || (! parent.contains(x, y)))
       return null;
@@ -2064,8 +2066,7 @@
     Point p = me.getPoint();
     while (candidate == null && parent != null)
       {
-        candidate =
-          getDeepestComponentForMouseEventAt(parent, p.x, p.y);
+        candidate = getDeepestComponentForMouseEventAt(parent, p.x, p.y);
         if (candidate == null || (candidate.eventMask & me.getID()) == 0)
           {
             candidate = null;
@@ -2147,14 +2148,12 @@
         break;
       }
 
-    if (me.getID() == MouseEvent.MOUSE_RELEASED
-        || me.getID() == MouseEvent.MOUSE_PRESSED && modifiers > 0
+    if (me.getID() == MouseEvent.MOUSE_PRESSED && modifiers > 0
         || me.getID() == MouseEvent.MOUSE_DRAGGED)
       {
         // If any of the following events occur while a button is held down,
         // they should be dispatched to the same component to which the
         // original MOUSE_PRESSED event was dispatched:
-        //   - MOUSE_RELEASED
         //   - MOUSE_PRESSED: another button pressed while the first is held
         //     down
         //   - MOUSE_DRAGGED
@@ -2204,10 +2203,13 @@
                 // there is a CLICKED event after this, it will do clean up.
                 if (--pressCount == 0
                     && mouseEventTarget != pressedComponent)
-                  pressedComponent = null;
+                  {
+                    pressedComponent = null;
+                    pressCount = 0;
+                  }
                 break;
               }
-            
+
             MouseEvent newEvt =
               AWTUtilities.convertMouseEvent(nativeContainer, me,
                                              mouseEventTarget);
_______________________________________________
Classpath-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/classpath-patches

Reply via email to