aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Black <craig.black@aonix.com>2005-02-14 15:54:43 +0000
committerMichael Koch <konqueror@gmx.de>2005-02-14 15:54:43 +0000
commitdfda88585b72f6b2a0898cae636641d838f9ec90 (patch)
treeac0343454d1d16c3d5a8eaa82f97a678e56888cb
parent21fb0c2b08c273e76eb6e5706af57e19b26cea84 (diff)
2005-02-14 Craig Black <craig.black@aonix.com>
* gnu/java/awt/peer/gtk/GtkCheckboxMenuItem.java (postMenuActionEvent): Implement to notify ItemListeners. * java/awt/CheckboxMenuItem.java (dispatchEventImpl): Update state on ItemEvent. * java/awt/MenuItem.java (processActionEvent): Retarget event source. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/java-gui-20050128-branch@95023 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libjava/ChangeLog9
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java13
-rw-r--r--libjava/java/awt/CheckboxMenuItem.java8
-rw-r--r--libjava/java/awt/MenuItem.java5
4 files changed, 34 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index b034f6baac7..fb54c1fab5c 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,12 @@
+2005-02-14 Craig Black <craig.black@aonix.com>
+
+ * gnu/java/awt/peer/gtk/GtkCheckboxMenuItem.java
+ (postMenuActionEvent): Implement to notify ItemListeners.
+ * java/awt/CheckboxMenuItem.java
+ (dispatchEventImpl): Update state on ItemEvent.
+ * java/awt/MenuItem.java
+ (processActionEvent): Retarget event source.
+
2005-02-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
* gnu/java/awt/color/ClutProfileConverter.java,
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
index adb7008ca3f..2d1f6500862 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
+import java.awt.ItemSelectable;
+import java.awt.event.ItemEvent;
import java.awt.CheckboxMenuItem;
import java.awt.peer.CheckboxMenuItemPeer;
import java.awt.peer.MenuItemPeer;
@@ -54,4 +56,15 @@ public class GtkCheckboxMenuItemPeer extends GtkMenuItemPeer
}
native public void setState (boolean t);
+
+ protected void postMenuActionEvent ()
+ {
+ CheckboxMenuItem item = (CheckboxMenuItem)awtWidget;
+ q().postEvent (new ItemEvent ((ItemSelectable)awtWidget,
+ ItemEvent.ITEM_STATE_CHANGED,
+ item.getActionCommand(),
+ item.getState() ? ItemEvent.DESELECTED : ItemEvent.SELECTED));
+
+ super.postMenuActionEvent();
+ }
}
diff --git a/libjava/java/awt/CheckboxMenuItem.java b/libjava/java/awt/CheckboxMenuItem.java
index 7056d284220..6b9002ad7aa 100644
--- a/libjava/java/awt/CheckboxMenuItem.java
+++ b/libjava/java/awt/CheckboxMenuItem.java
@@ -274,6 +274,14 @@ processItemEvent(ItemEvent event)
void
dispatchEventImpl(AWTEvent e)
{
+ if (e instanceof ItemEvent)
+ {
+ synchronized (this)
+ {
+ state = (((ItemEvent) e).getStateChange() == ItemEvent.SELECTED);
+ }
+ }
+
if (e.id <= ItemEvent.ITEM_LAST
&& e.id >= ItemEvent.ITEM_FIRST
&& (item_listeners != null
diff --git a/libjava/java/awt/MenuItem.java b/libjava/java/awt/MenuItem.java
index d1f29b31252..56082d36a9a 100644
--- a/libjava/java/awt/MenuItem.java
+++ b/libjava/java/awt/MenuItem.java
@@ -563,7 +563,10 @@ protected void
processActionEvent(ActionEvent event)
{
if (action_listeners != null)
- action_listeners.actionPerformed(event);
+ {
+ event.setSource(this);
+ action_listeners.actionPerformed(event);
+ }
}
/*************************************************************************/