This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
[gui][PATCH] small GtkButtonPeer fix
- From: Thomas Fitzsimmons <fitzsim at redhat dot com>
- To: java-patches at gcc dot gnu dot org
- Date: Thu, 06 May 2004 18:13:49 -0400
- Subject: [gui][PATCH] small GtkButtonPeer fix
Hi,
This patch fixes a problem with GtkButtonPeer. When a button is focused
and the space bar is pressed, the backing GTK button's appearance should
change to the "depressed" state.
I committed this to java-gui-branch.
Tom
2004-05-06 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
(handleEvent): Activate GTK button when the space bar key is
pressed.
(gtkActivate): New method.
Index: gnu/java/awt/peer/gtk/GtkButtonPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.java,v
retrieving revision 1.8.2.1
diff -u -r1.8.2.1 GtkButtonPeer.java
--- gnu/java/awt/peer/gtk/GtkButtonPeer.java 5 Mar 2004 22:24:50 -0000 1.8.2.1
+++ gnu/java/awt/peer/gtk/GtkButtonPeer.java 6 May 2004 22:04:07 -0000
@@ -57,6 +57,7 @@
native void gtkSetFont(String name, int style, int size);
native void gtkSetLabel(String label);
native void gtkWidgetSetForeground (int red, int green, int blue);
+ native void gtkActivate ();
public GtkButtonPeer (Button b)
{
@@ -87,8 +88,11 @@
{
KeyEvent ke = (KeyEvent) e;
if (!ke.isConsumed () && ke.getKeyCode () == KeyEvent.VK_SPACE)
- postActionEvent (((Button)awtComponent).getActionCommand (),
- ke.getModifiers ());
+ {
+ postActionEvent (((Button) awtComponent).getActionCommand (),
+ ke.getModifiers ());
+ gtkActivate ();
+ }
}
super.handleEvent (e);
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c,v
retrieving revision 1.8
diff -u -r1.8 gnu_java_awt_peer_gtk_GtkButtonPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c 10 Feb 2004 17:12:09 -0000 1.8
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c 6 May 2004 22:04:07 -0000
@@ -173,3 +173,18 @@
gdk_threads_leave ();
}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkActivate
+ (JNIEnv *env, jobject obj)
+{
+ void *ptr;
+
+ ptr = NSA_GET_PTR (env, obj);
+
+ gdk_threads_enter ();
+
+ gtk_widget_activate (GTK_WIDGET (ptr));
+
+ gdk_threads_leave ();
+}