[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cp-patches] more GTK peer fixes
From: |
Thomas Fitzsimmons |
Subject: |
[cp-patches] more GTK peer fixes |
Date: |
Wed, 24 Aug 2005 22:29:57 -0400 |
Hi,
I committed this patch, which fixes more issues exposed by running the
GTK peers on the JDK.
Tom
2005-08-24 Thomas Fitzsimmons <address@hidden>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
(beginNativeRepaintID): Remove variable.
(endNativeRepaintID): Likewise.
(cp_gtk_button_init_jni): Don't look up beginNativeRepaint and
endNativeRepaint methods.
* gnu/java/awt/peer/gtk/GtkFramePeer.java (resizing): Remove
field.
* gnu/java/awt/peer/gtk/GtkWindowPeer.java,
native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
(resizing): Remove field.
* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java (hiding): Remove
field.
(setVisible): Don't override.
* gnu/java/awt/peer/gtk/GtkChoicePeer.java,
native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
(selectNative): New method.
(selectNativeUnlocked): Likewise.
(select): Call setNativeUnlocked if in the GTK main thread,
selectNative otherwise.
* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(gtkWidgetSetCursorUnlocked): New method.
(setCursor(Cursor)): Call gtkWidgetSetCursorUnlocked if in the GTK
main thread, gtkWidgetSetCursor otherwise.
(setVisibleNative): New method.
(setVisibleNativeUnlocked): Likewise.
(setVisible): Call setVisibleNativeUnlocked if in the GTK main
thread, setVisibleNative otherwise.
(hide): Call setVisible(false).
(show): Call setVisible(true).
Index: gnu/java/awt/peer/gtk/GtkChoicePeer.java
===================================================================
RCS file:
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkChoicePeer.java,v
retrieving revision 1.23
diff -u -r1.23 GtkChoicePeer.java
--- gnu/java/awt/peer/gtk/GtkChoicePeer.java 14 Jul 2005 22:07:02 -0000
1.23
+++ gnu/java/awt/peer/gtk/GtkChoicePeer.java 25 Aug 2005 02:26:13 -0000
@@ -74,8 +74,17 @@
native void connectSignals ();
- public native void select (int position);
-
+ native void selectNative (int position);
+ native void selectNativeUnlocked (int position);
+
+ public void select (int position)
+ {
+ if (Thread.currentThread() == GtkToolkit.mainThread)
+ selectNativeUnlocked (position);
+ else
+ selectNative (position);
+ }
+
public void add (String item, int index)
{
int before = nativeGetSelected();
Index: gnu/java/awt/peer/gtk/GtkComponentPeer.java
===================================================================
RCS file:
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java,v
retrieving revision 1.94
diff -u -r1.94 GtkComponentPeer.java
--- gnu/java/awt/peer/gtk/GtkComponentPeer.java 19 Aug 2005 01:29:26 -0000
1.94
+++ gnu/java/awt/peer/gtk/GtkComponentPeer.java 25 Aug 2005 02:26:13 -0000
@@ -100,6 +100,7 @@
native void gtkWidgetGetPreferredDimensions (int[] dim);
native void gtkWidgetGetLocationOnScreen (int[] point);
native void gtkWidgetSetCursor (int type);
+ native void gtkWidgetSetCursorUnlocked (int type);
native void gtkWidgetSetBackground (int red, int green, int blue);
native void gtkWidgetSetForeground (int red, int green, int blue);
native void gtkWidgetSetSensitive (boolean sensitive);
@@ -477,7 +478,10 @@
public void setCursor (Cursor cursor)
{
- gtkWidgetSetCursor (cursor.getType ());
+ if (Thread.currentThread() == GtkToolkit.mainThread)
+ gtkWidgetSetCursorUnlocked (cursor.getType ());
+ else
+ gtkWidgetSetCursor (cursor.getType ());
}
public void setEnabled (boolean b)
@@ -510,16 +514,26 @@
return new Color (rgb[0], rgb[1], rgb[2]);
}
+ public native void setVisibleNative (boolean b);
+ public native void setVisibleNativeUnlocked (boolean b);
+
public void setVisible (boolean b)
{
- if (b)
- show ();
+ if (Thread.currentThread() == GtkToolkit.mainThread)
+ setVisibleNativeUnlocked (b);
else
- hide ();
+ setVisibleNative (b);
}
- public native void hide ();
- public native void show ();
+ public void hide ()
+ {
+ setVisible (false);
+ }
+
+ public void show ()
+ {
+ setVisible (true);
+ }
protected void postMouseEvent(int id, long when, int mods, int x, int y,
int clickCount, boolean popupTrigger)
Index: gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
===================================================================
RCS file:
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,v
retrieving revision 1.26
diff -u -r1.26 GtkFileDialogPeer.java
--- gnu/java/awt/peer/gtk/GtkFileDialogPeer.java 18 Aug 2005 01:22:00
-0000 1.26
+++ gnu/java/awt/peer/gtk/GtkFileDialogPeer.java 25 Aug 2005 02:26:13
-0000
@@ -62,8 +62,6 @@
public native void nativeSetDirectory(String directory);
native void nativeSetFilenameFilter (FilenameFilter filter);
- private boolean hiding = false;
-
public void create()
{
create((GtkContainerPeer) awtComponent.getParent().getPeer());
@@ -171,26 +169,13 @@
// GtkFileDialog will repaint by itself
return null;
}
-
- public void setVisible (boolean b)
- {
- // prevent handle_response_cb -> postItemEvent -> awtComponent.setState ->
this.setState
- // -> gtkToggleButtonSetActive self-deadlock on the GDK lock.
- if (hiding && Thread.currentThread() == GtkToolkit.mainThread)
- {
- setVisibleUnlocked (b);
- hiding = false;
- }
- else
- super.setVisible (b);
- }
// called back by native side: handle_response_cb
+ // only called from the GTK thread
void gtkHideFileDialog ()
{
// hide calls back the peer's setVisible method, so locking is a
// problem.
- hiding = true;
((Dialog) awtComponent).hide();
}
Index: gnu/java/awt/peer/gtk/GtkFramePeer.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java,v
retrieving revision 1.40
diff -u -r1.40 GtkFramePeer.java
--- gnu/java/awt/peer/gtk/GtkFramePeer.java 19 Aug 2005 01:29:26 -0000
1.40
+++ gnu/java/awt/peer/gtk/GtkFramePeer.java 25 Aug 2005 02:26:13 -0000
@@ -62,8 +62,6 @@
native void removeMenuBarPeer ();
native void gtkFixedSetVisible (boolean visible);
- private boolean resizing = false;
-
int getMenuBarHeight ()
{
return menuBar == null ? 0 : getMenuBarHeight (menuBar);
@@ -123,13 +121,12 @@
{
// prevent window_configure_cb -> awtComponent.setSize ->
// peer.setBounds -> nativeSetBounds self-deadlock on GDK lock.
- if (resizing && Thread.currentThread() == GtkToolkit.mainThread)
+ if (Thread.currentThread() == GtkToolkit.mainThread)
{
int menuBarWidth = width - insets.left - insets.right;
if (menuBar != null && menuBarWidth > 0)
setMenuBarWidthUnlocked (menuBar, menuBarWidth);
- resizing = false;
return;
}
@@ -215,10 +212,7 @@
if (frame_width != awtComponent.getWidth()
|| frame_height != awtComponent.getHeight())
- {
- resizing = true;
- awtComponent.setSize(frame_width, frame_height);
- }
+ awtComponent.setSize(frame_width, frame_height);
int frame_x = x - insets.left;
// Likewise, since insets.top includes the MenuBar height, we need
Index: gnu/java/awt/peer/gtk/GtkWindowPeer.java
===================================================================
RCS file:
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java,v
retrieving revision 1.39
diff -u -r1.39 GtkWindowPeer.java
--- gnu/java/awt/peer/gtk/GtkWindowPeer.java 19 Aug 2005 01:29:26 -0000
1.39
+++ gnu/java/awt/peer/gtk/GtkWindowPeer.java 25 Aug 2005 02:26:13 -0000
@@ -60,8 +60,6 @@
private boolean hasBeenShown = false;
private int oldState = Frame.NORMAL;
- private boolean resizing = false;
-
native void gtkWindowSetTitle (String title);
native void gtkWindowSetResizable (boolean resizable);
native void gtkWindowSetModal (boolean modal);
@@ -124,11 +122,9 @@
{
// prevent window_configure_cb -> awtComponent.setSize ->
// peer.setBounds -> nativeSetBounds self-deadlock on GDK lock.
- if (resizing && Thread.currentThread() == GtkToolkit.mainThread)
- {
- resizing = false;
- return;
- }
+ if (Thread.currentThread() == GtkToolkit.mainThread)
+ return;
+
nativeSetBounds (x, y,
width - insets.left - insets.right,
height - insets.top - insets.bottom);
@@ -167,6 +163,8 @@
insets.right = right;
}
+ // called back by native side: window_configure_cb
+ // only called from GTK thread
protected void postConfigureEvent (int x, int y, int width, int height)
{
int frame_width = width + insets.left + insets.right;
@@ -174,10 +172,7 @@
if (frame_width != awtComponent.getWidth()
|| frame_height != awtComponent.getHeight())
- {
- resizing = true;
- awtComponent.setSize(frame_width, frame_height);
- }
+ awtComponent.setSize(frame_width, frame_height);
int frame_x = x - insets.left;
int frame_y = y - insets.top;
@@ -189,30 +184,15 @@
}
}
- native void nativeSetVisible (boolean b);
- public void setVisible (boolean b)
- {
- // Prevent the window manager from automatically placing this
- // window when it is shown.
- if (b)
- setBounds (awtComponent.getX(),
- awtComponent.getY(),
- awtComponent.getWidth(),
- awtComponent.getHeight());
- nativeSetVisible (b);
- }
-
- native void nativeSetVisibleUnlocked (boolean b);
- public void setVisibleUnlocked (boolean b)
+ public void show ()
{
// Prevent the window manager from automatically placing this
// window when it is shown.
- if (b)
- setBoundsUnlocked (awtComponent.getX(),
- awtComponent.getY(),
- awtComponent.getWidth(),
- awtComponent.getHeight());
- nativeSetVisibleUnlocked (b);
+ setBounds (awtComponent.getX(),
+ awtComponent.getY(),
+ awtComponent.getWidth(),
+ awtComponent.getHeight());
+ setVisible (true);
}
void postWindowEvent (int id, Window opposite, int newState)
Index: include/gnu_java_awt_peer_gtk_GtkChoicePeer.h
===================================================================
RCS file:
/cvsroot/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h,v
retrieving revision 1.6
diff -u -r1.6 gnu_java_awt_peer_gtk_GtkChoicePeer.h
--- include/gnu_java_awt_peer_gtk_GtkChoicePeer.h 11 Jul 2005 23:27:43
-0000 1.6
+++ include/gnu_java_awt_peer_gtk_GtkChoicePeer.h 25 Aug 2005 02:26:13
-0000
@@ -17,7 +17,8 @@
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemove
(JNIEnv *env, jobject, jint);
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemoveAll (JNIEnv *env, jobject);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_connectSignals
(JNIEnv *env, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_select (JNIEnv
*env, jobject, jint);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNative
(JNIEnv *env, jobject, jint);
+JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNativeUnlocked (JNIEnv *env,
jobject, jint);
#ifdef __cplusplus
}
Index: include/gnu_java_awt_peer_gtk_GtkComponentPeer.h
===================================================================
RCS file:
/cvsroot/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h,v
retrieving revision 1.18
diff -u -r1.18 gnu_java_awt_peer_gtk_GtkComponentPeer.h
--- include/gnu_java_awt_peer_gtk_GtkComponentPeer.h 14 Jul 2005 22:07:02
-0000 1.18
+++ include/gnu_java_awt_peer_gtk_GtkComponentPeer.h 25 Aug 2005 02:26:13
-0000
@@ -18,6 +18,7 @@
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetPreferredDimensions
(JNIEnv *env, jobject, jintArray);
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen
(JNIEnv *env, jobject, jintArray);
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursor (JNIEnv *env,
jobject, jint);
+JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked (JNIEnv
*env, jobject, jint);
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetBackground (JNIEnv
*env, jobject, jint, jint, jint);
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetForeground (JNIEnv
*env, jobject, jint, jint, jint);
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetSensitive (JNIEnv *env,
jobject, jboolean);
@@ -28,8 +29,8 @@
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeEventMask (JNIEnv *env,
jobject);
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals (JNIEnv *env,
jobject);
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBounds (JNIEnv *env,
jobject, jint, jint, jint, jint);
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_hide
(JNIEnv *env, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_show
(JNIEnv *env, jobject);
+JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setVisibleNative (JNIEnv *env,
jobject, jboolean);
+JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setVisibleNativeUnlocked (JNIEnv
*env, jobject, jboolean);
#ifdef __cplusplus
}
Index: include/gnu_java_awt_peer_gtk_GtkWindowPeer.h
===================================================================
RCS file:
/cvsroot/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h,v
retrieving revision 1.17
diff -u -r1.17 gnu_java_awt_peer_gtk_GtkWindowPeer.h
--- include/gnu_java_awt_peer_gtk_GtkWindowPeer.h 18 Aug 2005 01:22:00
-0000 1.17
+++ include/gnu_java_awt_peer_gtk_GtkWindowPeer.h 25 Aug 2005 02:26:13
-0000
@@ -21,8 +21,6 @@
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBounds (JNIEnv *env, jobject,
jint, jint, jint, jint);
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsUnlocked (JNIEnv *env,
jobject, jint, jint, jint, jint);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setSize
(JNIEnv *env, jobject, jint, jint);
-JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisible (JNIEnv *env,
jobject, jboolean);
-JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisibleUnlocked (JNIEnv *env,
jobject, jboolean);
#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL
#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL 0L
#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DIALOG
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
===================================================================
RCS file:
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c,v
retrieving revision 1.29
diff -u -r1.29 gnu_java_awt_peer_gtk_GtkButtonPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c 18 Aug 2005
01:22:00 -0000 1.29
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c 25 Aug 2005
02:26:14 -0000
@@ -39,8 +39,6 @@
#include "gtkpeer.h"
#include "gnu_java_awt_peer_gtk_GtkButtonPeer.h"
-static jmethodID beginNativeRepaintID;
-static jmethodID endNativeRepaintID;
static jmethodID postActionEventID;
void
@@ -50,13 +48,6 @@
gtkbuttonpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
"gnu/java/awt/peer/gtk/GtkButtonPeer");
-
- beginNativeRepaintID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
gtkbuttonpeer,
- "beginNativeRepaint",
- "()V");
-
- endNativeRepaintID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
gtkbuttonpeer,
- "endNativeRepaint", "()V");
postActionEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
gtkbuttonpeer,
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
===================================================================
RCS file:
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c,v
retrieving revision 1.18
diff -u -r1.18 gnu_java_awt_peer_gtk_GtkChoicePeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c 18 Aug 2005
01:22:00 -0000 1.18
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c 25 Aug 2005
02:26:14 -0000
@@ -187,18 +187,26 @@
}
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkChoicePeer_select
+Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNative
(JNIEnv *env, jobject obj, jint index)
{
- void *ptr;
-
gdk_threads_enter ();
+ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNativeUnlocked
+ (env, obj, index);
+
+ gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNativeUnlocked
+ (JNIEnv *env, jobject obj, jint index)
+{
+ void *ptr;
+
ptr = NSA_GET_PTR (env, obj);
gtk_combo_box_set_active (GTK_COMBO_BOX (ptr), index);
-
- gdk_threads_leave ();
}
JNIEXPORT jint JNICALL
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
===================================================================
RCS file:
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,v
retrieving revision 1.51
diff -u -r1.51 gnu_java_awt_peer_gtk_GtkComponentPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c 18 Aug
2005 03:15:15 -0000 1.51
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c 25 Aug
2005 02:26:14 -0000
@@ -185,13 +185,23 @@
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursor
(JNIEnv *env, jobject obj, jint type)
{
+ gdk_threads_enter ();
+
+ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked
+ (env, obj, type);
+
+ gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked
+ (JNIEnv *env, jobject obj, jint type)
+{
void *ptr;
GtkWidget *widget;
GdkCursorType gdk_cursor_type;
GdkCursor *gdk_cursor;
- gdk_threads_enter ();
-
ptr = NSA_GET_PTR (env, obj);
switch (type)
@@ -244,8 +254,6 @@
gdk_cursor = gdk_cursor_new (gdk_cursor_type);
gdk_window_set_cursor (widget->window, gdk_cursor);
gdk_cursor_destroy (gdk_cursor);
-
- gdk_threads_leave ();
}
JNIEXPORT void JNICALL
@@ -703,33 +711,29 @@
}
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_show
- (JNIEnv *env, jobject obj)
+Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setVisibleNative
+ (JNIEnv *env, jobject obj, jboolean visible)
{
- void *ptr;
-
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, obj);
-
- gtk_widget_show (GTK_WIDGET (ptr));
+ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setVisibleNativeUnlocked
+ (env, obj, visible);
gdk_threads_leave();
}
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_hide
- (JNIEnv *env, jobject obj)
+Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setVisibleNativeUnlocked
+ (JNIEnv *env, jobject obj, jboolean visible)
{
void *ptr;
- gdk_threads_enter();
-
ptr = NSA_GET_PTR (env, obj);
- gtk_widget_hide (GTK_WIDGET (ptr));
-
- gdk_threads_leave();
+ if (visible)
+ gtk_widget_show (GTK_WIDGET (ptr));
+ else
+ gtk_widget_hide (GTK_WIDGET (ptr));
}
JNIEXPORT jboolean JNICALL
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
===================================================================
RCS file:
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,v
retrieving revision 1.54
diff -u -r1.54 gnu_java_awt_peer_gtk_GtkWindowPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c 21 Aug 2005
16:57:43 -0000 1.54
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c 25 Aug 2005
02:26:18 -0000
@@ -1198,34 +1198,6 @@
}
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisible
- (JNIEnv *env, jobject obj, jboolean visible)
-{
- gdk_threads_enter ();
-
- Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisibleUnlocked
- (env, obj, visible);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetVisibleUnlocked
- (JNIEnv *env, jobject obj, jboolean visible)
-{
- void *ptr;
-
- ptr = NSA_GET_PTR (env, obj);
-
- if (visible)
- gtk_widget_show (GTK_WIDGET (ptr));
- else
- gtk_widget_hide (GTK_WIDGET (ptr));
-
- XFlush (GDK_DISPLAY ());
-}
-
-JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectSignals
(JNIEnv *env, jobject obj)
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cp-patches] more GTK peer fixes,
Thomas Fitzsimmons <=