The JDK TextComponent ignores all old mouse events. I fixed our
implementation to do this by creating a package-private function in
Component and TextComponent.

This also fixes: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27695

I have committed a mauve test for this as well.

2006-06-14  Lillian Angel  <[EMAIL PROTECTED]>

        * java/awt/Component.java
        (ignoreOldMouseEvents): New helper function.
        (translateEvent): Changed to be non-static and use new helper.
        * java/awt/TextComponent.java
        (ignoreOldMouseEvents): New helper function.

Index: java/awt/Component.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/Component.java,v
retrieving revision 1.122
diff -u -r1.122 Component.java
--- java/awt/Component.java	13 Jun 2006 19:41:22 -0000	1.122
+++ java/awt/Component.java	14 Jun 2006 16:24:05 -0000
@@ -2318,6 +2318,17 @@
   }
 
   /**
+   * By default, no old mouse events should be ignored.
+   * This can be overridden by subclasses.
+   * 
+   * @return false, no mouse events are ignored.
+   */
+  boolean ignoreOldMouseEvents()
+  {
+    return false;
+  }
+  
+  /**
    * AWT 1.0 event handler.
    *
    * This method simply calls handleEvent and returns the result.
@@ -4801,7 +4812,7 @@
    *
    * @return an AWT 1.0 event representing e
    */
-  static Event translateEvent (AWTEvent e)
+  Event translateEvent (AWTEvent e)
   {
     Object target = e.getSource ();
     Event translated = null;
@@ -4864,7 +4875,7 @@
         if ((mods & InputEvent.ALT_DOWN_MASK) != 0)
           oldMods |= Event.ALT_MASK;
 
-        if (e instanceof MouseEvent)
+        if (e instanceof MouseEvent && !ignoreOldMouseEvents())
           {
             if (id == MouseEvent.MOUSE_PRESSED)
               oldID = Event.MOUSE_DOWN;
Index: java/awt/TextComponent.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/TextComponent.java,v
retrieving revision 1.21
diff -u -r1.21 TextComponent.java
--- java/awt/TextComponent.java	20 Sep 2005 01:05:28 -0000	1.21
+++ java/awt/TextComponent.java	14 Jun 2006 16:24:06 -0000
@@ -734,8 +734,17 @@
     return null;
   }
   
-  
-
+  /**
+   * All old mouse events for this component should
+   * be ignored.
+   * 
+   * @return true to ignore all old mouse events.
+   */
+  boolean
+  ignoreOldMouseEvents()
+  {
+    return true;
+  }
 
 } // class TextComponent
 

Reply via email to