summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2004-09-22 18:53:25 +0000
committerMichael Koch <konqueror@gmx.de>2004-09-22 18:53:25 +0000
commit6aaf680e7078da804aef38cfd04d43ef13da29a5 (patch)
tree72dcb8008151c44a4eecc14b10bde24fe18b1ad4
parent946797f33b7908f9b80f56a893b548b4ff91302b (diff)
downloadclasspath-6aaf680e7078da804aef38cfd04d43ef13da29a5.tar.gz
2004-09-22 David Jee <djee@redhat.com>
* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java (setEnabled): Make it a native method. * java/awt/DefaultKeyboardFocusManager.java (postProcessKeyEvent): Only post event if the menu item is active. * java/awt/MenuItem.java: Private field 'enabled' should be true by default. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c (setEnabled): New function.
-rw-r--r--ChangeLog12
-rw-r--r--gnu/java/awt/peer/gtk/GtkMenuItemPeer.java6
-rw-r--r--java/awt/DefaultKeyboardFocusManager.java2
-rw-r--r--java/awt/MenuItem.java2
-rw-r--r--native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c12
5 files changed, 28 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index ea8b859a5..e272846c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2004-09-22 David Jee <djee@redhat.com>
+
+ * gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
+ (setEnabled): Make it a native method.
+ * java/awt/DefaultKeyboardFocusManager.java
+ (postProcessKeyEvent): Only post event if the menu item
+ is active.
+ * java/awt/MenuItem.java:
+ Private field 'enabled' should be true by default.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
+ (setEnabled): New function.
+
2004-09-22 Jerry Quinn <jlquinn@optonline.net>
* java/awt/image/ColorModel.java (getDataElement): Implemented.
diff --git a/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java b/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
index 18b9a0f1c..d58916614 100644
--- a/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
+++ b/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
@@ -111,10 +111,8 @@ public class GtkMenuItemPeer extends GtkMenuComponentPeer
setEnabled (true);
}
- public void setEnabled (boolean b)
- {
- // do nothing, for now.
- }
+ native public void setEnabled (boolean b);
+
native public void setLabel (String label);
protected void postMenuActionEvent ()
diff --git a/java/awt/DefaultKeyboardFocusManager.java b/java/awt/DefaultKeyboardFocusManager.java
index a7c5f9f0b..d319eed8b 100644
--- a/java/awt/DefaultKeyboardFocusManager.java
+++ b/java/awt/DefaultKeyboardFocusManager.java
@@ -311,7 +311,7 @@ public class DefaultKeyboardFocusManager extends KeyboardFocusManager
MenuItem item = menu.getItem (j);
MenuShortcut shortcut = item.getShortcut ();
- if (shortcut != null)
+ if (item.isEnabled() && shortcut != null)
{
// Dispatch a new ActionEvent if:
//
diff --git a/java/awt/MenuItem.java b/java/awt/MenuItem.java
index 3b40bd715..66c0a5f3a 100644
--- a/java/awt/MenuItem.java
+++ b/java/awt/MenuItem.java
@@ -75,7 +75,7 @@ private String actionCommand;
/**
* @serial Indicates whether or not this menu item is enabled.
*/
-private boolean enabled;
+private boolean enabled = true;
/**
* @serial The mask of events that are enabled for this menu item.
diff --git a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
index 407f71cb4..cc99674bd 100644
--- a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
+++ b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
@@ -124,6 +124,18 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_gtkWidgetModifyFont
(*env)->ReleaseStringUTFChars (env, name, font_name);
}
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setEnabled
+ (JNIEnv *env, jobject obj, jboolean enabled)
+{
+ void *ptr;
+
+ ptr = NSA_GET_PTR (env, obj);
+
+ gdk_threads_enter ();
+ gtk_widget_set_sensitive (GTK_WIDGET (ptr), enabled);
+ gdk_threads_leave ();
+}
+
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setLabel
(JNIEnv *env, jobject obj, jstring label)
{