[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [cp-patches] FYI: Fix awt.datatransfer fro gtk+-2.4
From: |
Mark Wielaard |
Subject: |
Re: [cp-patches] FYI: Fix awt.datatransfer fro gtk+-2.4 |
Date: |
Sun, 04 Sep 2005 02:03:51 +0200 |
On Sun, 2005-09-04 at 01:41 +0200, Mark Wielaard wrote:
> 2005-09-03 Mark Wielaard <address@hidden>
>
> Fixes bug #23701
> * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
> (clipboard_owner_change_cb): Only used when GTK_MINOR_VERSION > 4.
> (Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState):
> Only request owner-change events for GTK_MINOR_VERSION > 4.
> (clipboard_get_func): Only handle pixbuf and uri when
> GTK_MINOR_VERSION > 4.
> (Java_gnu_java_awt_peer_gtk_GtkClipboard_advertiseContent): Only call
> gtk_target_list_add_* functions when GTK_MINOR_VERSION > 4. Similar
> for gtk_clipboard_set_can_store.
> * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
> (Java_gnu_java_awt_peer_gtk_GtkImage_drawPixelsScaledFlipped): Mark
> flipx and flipy unused for GTK_MINOR_VERSION <= 4.
> * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
> (clipboard_targets_received): Don't handle images for
> GTK_MINOR_VERSION <= 4.
> (Java_gnu_java_awt_peer_gtk_GtkSelection_requestImage): Likewise.
> (clipboard_uris_received): Likewise for text/uri-list.
> (Java_gnu_java_awt_peer_gtk_GtkSelection_requestURIs): Likewise.
Woops, didn't attach the full patch. Here it is the rest.
Cheers,
Mark
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
===================================================================
RCS file:
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c,v
retrieving revision 1.15
diff -u -r1.15 gnu_java_awt_peer_gtk_GtkClipboard.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c 22 Aug 2005
10:36:14 -0000 1.15
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c 4 Sep 2005
00:01:19 -0000
@@ -67,6 +67,8 @@
static jmethodID provideImageID;
static jmethodID provideURIsID;
+/* Called when clipboard owner changes. Used to update available targets. */
+#if GTK_MINOR_VERSION > 4
static void
clipboard_owner_change_cb (GtkClipboard *clipboard __attribute__((unused)),
GdkEvent *event __attribute__((unused)),
@@ -79,6 +81,7 @@
(*env)->CallStaticVoidMethod (env, gtk_clipboard_class,
setSystemContentsID);
}
+#endif
JNIEXPORT jboolean JNICALL
Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState (JNIEnv *env,
@@ -105,6 +108,8 @@
cp_gtk_clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
display = gtk_clipboard_get_display (cp_gtk_clipboard);
+ /* Check for support for clipboard owner changes. */
+#if GTK_MINOR_VERSION > 4
if (gdk_display_supports_selection_notification (display))
{
g_signal_connect (cp_gtk_clipboard, "owner-change",
@@ -114,6 +119,7 @@
can_cache = JNI_TRUE;
}
else
+#endif
can_cache = JNI_FALSE;
gdk_threads_leave ();
@@ -180,6 +186,8 @@
gtk_selection_data_set_text (selection, text, len);
(*env)->ReleaseStringUTFChars (env, string, text);
}
+ /* Images and URIs/Files support only available with gtk+2.6 or higher. */
+#if GTK_MINOR_VERSION > 4
else if (info == IMAGE_TARGET)
{
jobject gtkimage;
@@ -246,6 +254,7 @@
free (list[i]);
JCL_free (env, list);
}
+#endif
}
static void
@@ -266,9 +275,13 @@
(JNIEnv *env,
jobject instance,
jobjectArray mime_array,
- jboolean add_text,
+#if GTK_MINOR_VERSION > 4
+ jboolean add_text, jboolean add_images, jboolean add_uris)
+#else
+ jboolean add_text __attribute__((unused)),
jboolean add_images __attribute__((unused)),
jboolean add_uris __attribute__((unused)))
+#endif
{
GtkTargetList *target_list;
GList *list;
@@ -302,12 +315,20 @@
}
/* Add extra targets that gtk+ can provide/translate for us. */
+#if GTK_MINOR_VERSION > 4
if (add_text)
gtk_target_list_add_text_targets (target_list, TEXT_TARGET);
if (add_images)
gtk_target_list_add_image_targets (target_list, IMAGE_TARGET, TRUE);
if (add_uris)
gtk_target_list_add_uri_targets (target_list, URI_TARGET);
+#else
+ if (add_text)
+ gtk_target_list_add (target_list,
+ gdk_atom_intern ("STRING", FALSE),
+ 0, TEXT_TARGET);
+#endif
+
/* Turn list into a target table. */
n = g_list_length (target_list->list);
@@ -325,7 +346,7 @@
}
/* Set the targets plus callback functions and ask for the clipboard
- to be stored when the application exists. */
+ to be stored when the application exists if supported. */
current_selection++;
if (gtk_clipboard_set_with_data (cp_gtk_clipboard, targets, n,
clipboard_get_func,
@@ -365,7 +386,9 @@
if (provideURIsID == NULL)
return;
}
+#if GTK_MINOR_VERSION > 4
gtk_clipboard_set_can_store (cp_gtk_clipboard, NULL, 0);
+#endif
}
else
{
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
===================================================================
RCS file:
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c,v
retrieving revision 1.15
diff -u -r1.15 gnu_java_awt_peer_gtk_GtkImage.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c 2 Sep 2005
06:36:58 -0000 1.15
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c 4 Sep 2005
00:01:19 -0000
@@ -429,7 +429,12 @@
Java_gnu_java_awt_peer_gtk_GtkImage_drawPixelsScaledFlipped
(JNIEnv *env, jobject obj, jobject gc_obj,
jint bg_red, jint bg_green, jint bg_blue,
+#if GTK_MINOR_VERSION > 4
jboolean flipx, jboolean flipy,
+#else
+ jboolean flipx __attribute__((unused)),
+ jboolean flipy __attribute__((unused)),
+#endif
jint srcx, jint srcy, jint srcwidth, jint srcheight,
jint dstx, jint dsty, jint dstwidth, jint dstheight,
jboolean composite)
signature.asc
Description: This is a digitally signed message part