[Top][All Lists]
[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