summaryrefslogtreecommitdiffstats
path: root/libjava/gnu/java
diff options
context:
space:
mode:
authorfnasser <fnasser@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-02 16:19:28 +0000
committerfnasser <fnasser@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-02 16:19:28 +0000
commit4de127bae03d70226defa6981d39eb4c421fe7ce (patch)
tree2a0d045a518723b0b925c0ef30d8eae10ee18cf3 /libjava/gnu/java
parent9252ac1ef394759b2821dd66e071adf06e638a0b (diff)
downloadppe42-gcc-4de127bae03d70226defa6981d39eb4c421fe7ce.tar.gz
ppe42-gcc-4de127bae03d70226defa6981d39eb4c421fe7ce.zip
2003-12-02 Fernando Nasser <fnasser@redhat.com>
* gnu/java/awt/peer/gtk/GtkListPeer.java (handleEvent): New method. Handle mouse and key events that must generate ActionEvents. * java/awt/List.java (getSelectedIndex): Return -1 if no list element is selected. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (awt_event_handler): Correct handling of mouse and key events so that List receives them. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c (Java_gnu_java_awt_peer_gtk_GtkListPeer_delItems): Fix removal of multiple list elements. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74189 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu/java')
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkListPeer.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkListPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkListPeer.java
index 2ba183b09ea..f90497e7182 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkListPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkListPeer.java
@@ -38,8 +38,11 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
+import java.awt.AWTEvent;
import java.awt.Dimension;
import java.awt.List;
+import java.awt.event.MouseEvent;
+import java.awt.event.KeyEvent;
import java.awt.peer.ListPeer;
public class GtkListPeer extends GtkComponentPeer
@@ -121,6 +124,29 @@ public class GtkListPeer extends GtkComponentPeer
setMultipleMode (b);
}
+ public void handleEvent (AWTEvent e)
+ {
+ if (e.getID () == MouseEvent.MOUSE_CLICKED && isEnabled ())
+ {
+ MouseEvent me = (MouseEvent) e;
+ if (!me.isConsumed ()
+ && (me.getModifiers () & MouseEvent.BUTTON1_MASK) != 0
+ && me.getClickCount() > 1)
+ postActionEvent (((List)awtComponent).getSelectedItem (),
+ me.getModifiers ());
+ }
+
+ if (e.getID () == KeyEvent.KEY_PRESSED)
+ {
+ KeyEvent ke = (KeyEvent) e;
+ if (!ke.isConsumed () && ke.getKeyCode () == KeyEvent.VK_ENTER)
+ postActionEvent (((List)awtComponent).getSelectedItem (),
+ ke.getModifiers ());
+ }
+
+ super.handleEvent (e);
+ }
+
protected void postItemEvent (int item, int stateChange)
{
postItemEvent (new Integer (item), stateChange);
OpenPOWER on IntegriCloud