This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Patch: gtk peer - static methods
- From: Michael Koch <konqueror at gmx dot de>
- To: java-patches at gcc dot gnu dot org
- Cc: graydon at redhat dot com, fitzsim at redhat dot com
- Date: Tue, 1 Jun 2004 01:05:12 +0200
- Subject: Patch: gtk peer - static methods
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi list,
I just commited the attached patch to merge a fix done by Mark
Wielaard in GNU classpath to mainline.
This should go into java-gui-branch too.
Michael
2004-06-01 Mark Wielaard <mark@klomp.org>
* gnu/java/awt/peer/gtk/GtkComponentPeer.java (requestFocus):
Implement by calling gtkRequestFocus.
(gtkRequestFocus): New native method.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_requestFocus__):
Renamed to ...
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkRequestFocus):
New function name.
(filter_expose_event_handler):
Mark static.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
(menu_pos): Mark static.
- --
Homepage: http://www.worldforge.org/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFAu7orWSOgCCdjSDsRAuzgAJoD+nlIbpX0XaUjnyHnU38bAL2iXACgoc/0
IRxjARb7I5xE9AGkUEkxnKw=
=paSn
-----END PGP SIGNATURE-----
Index: gnu/java/awt/peer/gtk/GtkComponentPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.java,v
retrieving revision 1.18
diff -u -b -B -r1.18 GtkComponentPeer.java
--- gnu/java/awt/peer/gtk/GtkComponentPeer.java 27 May 2004 06:17:34 -0000 1.18
+++ gnu/java/awt/peer/gtk/GtkComponentPeer.java 31 May 2004 23:02:36 -0000
@@ -353,10 +353,14 @@
public void requestFocus ()
{
- gtkWidgetRequestFocus ();
- postFocusEvent (FocusEvent.FOCUS_GAINED, false);
+ gtkRequestFocus();
}
+ // Called from requestFocus, we don't want to make requestFocus itself
+ // native since several JNI header generators have difficulties with
+ // overridden and/or miranda methods. (Bug in gcjh < 3.5.)
+ native private void gtkRequestFocus ();
+
public void reshape (int x, int y, int width, int height)
{
setBounds (x, y, width, height);
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,v
retrieving revision 1.22
diff -u -b -B -r1.22 gnu_java_awt_peer_gtk_GtkComponentPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c 27 May 2004 06:17:43 -0000 1.22
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c 31 May 2004 23:02:36 -0000
@@ -472,7 +472,7 @@
}
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetRequestFocus
+Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkRequestFocus
(JNIEnv *env, jobject obj)
{
void *ptr;
@@ -1056,7 +1056,7 @@
(*env)->ReleaseStringUTFChars (env, jname, name);
}
-gboolean
+static gboolean
filter_expose_event_handler (GtkWidget *widget, GdkEvent *event, jobject peer)
{
/*
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c,v
retrieving revision 1.6
diff -u -b -B -r1.6 gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c 27 May 2004 06:17:44 -0000 1.6
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c 31 May 2004 23:02:36 -0000
@@ -39,15 +39,13 @@
#include "gtkpeer.h"
#include "gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h"
-void menu_pos (GtkMenu *, gint *, gint *, gboolean *, gpointer);
-
struct pos
{
gint x;
gint y;
};
-void
+static void
menu_pos (GtkMenu *menu __attribute__((unused)),
gint *x, gint *y,
gboolean *push_in,
@@ -93,7 +91,8 @@
gdk_threads_enter ();
menu = GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu);
gtk_menu_set_accel_group (menu, gtk_accel_group_new ());
- /* FIXME: update this to use GTK-2.4 GtkActions. */
+ /* FIXME: _gtk_accel_group_attach is a GTK-private function, so
+ we'll need a different approach here: */
#if 0
_gtk_accel_group_attach (gtk_menu_get_accel_group (menu),
G_OBJECT (gtk_widget_get_toplevel (ptr2)));