This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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 ();
+}



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]