classpath-patches
[Top][All Lists]
Advanced

[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)
 {

reply via email to

[Prev in Thread] Current Thread [Next in Thread]