classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [cp-patches] support Save file dialogs in GTK peers


From: Thomas Fitzsimmons
Subject: Re: [cp-patches] support Save file dialogs in GTK peers
Date: Fri, 26 Aug 2005 14:14:23 -0400

On Fri, 2005-08-26 at 17:22 +0200, Mark Wielaard wrote:
> Hi,
> 
> On Fri, 2005-08-26 at 00:35 -0400, Thomas Fitzsimmons wrote:
> > This patch adds support for Save file dialogs in the GTK peers.
> 
> > +  else
> > +    {
> > +      widget = gtk_file_chooser_dialog_new
> > +        ("Save File",
> > +         GTK_WINDOW(parentp),
> > +         GTK_FILE_CHOOSER_ACTION_SAVE,
> > +         GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
> > +         GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
> > +         NULL);
> > +      gtk_file_chooser_set_do_overwrite_confirmation
> > +        (GTK_FILE_CHOOSER (widget), TRUE);
> > +    }
> 
> That is new 2.8 functionality. I don't think we should unconditionally
> depend on that.
> 
> 
> > +Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisibleNative
> > +  (JNIEnv *env, jobject obj, jboolean visible)
> > +{
> > +  gdk_threads_enter ();
> > +
> > +  Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisibleNativeUnlocked
> > +    (env, obj, visible);
> > +
> > +  gdk_threads_leave ();
> > +}
> > +
> > +JNIEXPORT void JNICALL
> > +Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisibleNativeUnlocked
> > +  (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));
> > +
> > +  gdk_flush ();
> > +}
> 
> Is the gdk_flush () really needed in the Unlocked case?
> I think you only need that just before the gdk_threads_leave ().

Both good points.  I committed this:

2005-08-26  Thomas Fitzsimmons  <address@hidden>

        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
        (create): Only set overwrite confirmation if using GTK >= 2.8.

        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
        (setVisibleNative): Call gdk_flush before releasing GDK lock.
        (setVisibleNativeUnlocked): Don't call gdk_flush.

Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
===================================================================
RCS file: 
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c,v
retrieving revision 1.24
diff -u -r1.24 gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c       26 Aug 
2005 04:35:50 -0000      1.24
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c       26 Aug 
2005 18:10:12 -0000
@@ -119,8 +119,10 @@
          GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
          GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
          NULL);
+#if GTK_MINOR_VERSION >= 8
       gtk_file_chooser_set_do_overwrite_confirmation
         (GTK_FILE_CHOOSER (widget), TRUE);
+#endif
     }
 
 
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.56
diff -u -r1.56 gnu_java_awt_peer_gtk_GtkWindowPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c   26 Aug 2005 
04:35:50 -0000      1.56
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c   26 Aug 2005 
18:10:16 -0000
@@ -1206,6 +1206,8 @@
   Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisibleNativeUnlocked
     (env, obj, visible);
 
+  gdk_flush ();
+
   gdk_threads_leave ();
 }
 
@@ -1221,8 +1223,6 @@
     gtk_widget_show (GTK_WIDGET (ptr));
   else
     gtk_widget_hide (GTK_WIDGET (ptr));
-
-  gdk_flush ();
 }
 
 JNIEXPORT void JNICALL

reply via email to

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