mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-09-19 21:40:22 +00:00
Fix Cocoa pasteboard constants for gtk.
Corresponds to gdkselection-quartz changes in f30ed5ddc
.
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/6480
This commit is contained in:
parent
687ec22393
commit
7e9676d658
@ -27,6 +27,20 @@
|
||||
#include <gdk/gdk.h>
|
||||
#include <gdk/quartz/gdkquartz.h>
|
||||
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400
|
||||
#define GDK_QUARTZ_FILE_PBOARD_TYPE NSURLPboardType
|
||||
#define GDK_QUARTZ_URL_PBOARD_TYPE NSURLPboardType
|
||||
#define GDK_QUARTZ_COLOR_PBOARD_TYPE NSColorPboardType
|
||||
#define GDK_QUARTZ_STRING_PBOARD_TYPE NSStringPboardType
|
||||
#define GDK_QUARTZ_TIFF_PBOARD_TYPE NSTIFFPboardType
|
||||
#else
|
||||
#define GDK_QUARTZ_FILE_PBOARD_TYPE NSPasteboardTypeFileURL
|
||||
#define GDK_QUARTZ_URL_PBOARD_TYPE NSPasteboardTypeURL
|
||||
#define GDK_QUARTZ_COLOR_PBOARD_TYPE NSPasteboardTypeColor
|
||||
#define GDK_QUARTZ_STRING_PBOARD_TYPE NSPasteboardTypeString
|
||||
#define GDK_QUARTZ_TIFF_PBOARD_TYPE NSPasteboardTypeTIFF
|
||||
#endif
|
||||
|
||||
/* Drag and Drop/Clipboard */
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GdkAtom gdk_quartz_pasteboard_type_to_atom_libgtk_only (NSString *type);
|
||||
|
@ -174,19 +174,6 @@ _gdk_quartz_display_text_property_to_utf8_list (GdkDisplay *display,
|
||||
}
|
||||
}
|
||||
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400
|
||||
#define GDK_QUARTZ_URL_PBOARD_TYPE NSURLPboardType
|
||||
#define GDK_QUARTZ_COLOR_PBOARD_TYPE NSColorPboardType
|
||||
#define GDK_QUARTZ_STRING_PBOARD_TYPE NSStringPboardType
|
||||
#define GDK_QUARTZ_TIFF_PBOARD_TYPE NSTIFFPboardType
|
||||
#else
|
||||
#define GDK_QUARTZ_FILE_PBOARD_TYPE NSPasteboardTypeFileURL
|
||||
#define GDK_QUARTZ_URL_PBOARD_TYPE NSPasteboardTypeURL
|
||||
#define GDK_QUARTZ_COLOR_PBOARD_TYPE NSPasteboardTypeColor
|
||||
#define GDK_QUARTZ_STRING_PBOARD_TYPE NSPasteboardTypeString
|
||||
#define GDK_QUARTZ_TIFF_PBOARD_TYPE NSPasteboardTypeTIFF
|
||||
#endif
|
||||
|
||||
GdkAtom
|
||||
gdk_quartz_pasteboard_type_to_atom_libgtk_only (NSString *type)
|
||||
{
|
||||
@ -196,12 +183,9 @@ gdk_quartz_pasteboard_type_to_atom_libgtk_only (NSString *type)
|
||||
return gdk_atom_intern_static_string ("image/tiff");
|
||||
else if ([type isEqualToString:GDK_QUARTZ_COLOR_PBOARD_TYPE])
|
||||
return gdk_atom_intern_static_string ("application/x-color");
|
||||
else if ([type isEqualToString:GDK_QUARTZ_URL_PBOARD_TYPE])
|
||||
else if ([type isEqualToString:GDK_QUARTZ_URL_PBOARD_TYPE] ||
|
||||
[type isEqualToString:GDK_QUARTZ_FILE_PBOARD_TYPE])
|
||||
return gdk_atom_intern_static_string ("text/uri-list");
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
|
||||
else if ([type isEqualToString:GDK_QUARTZ_FILE_PBOARD_TYPE])
|
||||
return gdk_atom_intern_static_string ("text/uri-list");
|
||||
#endif
|
||||
else
|
||||
return gdk_atom_intern ([type UTF8String], FALSE);
|
||||
}
|
||||
|
@ -186,7 +186,7 @@ _gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard,
|
||||
selection_data->display = gdk_display_get_default ();
|
||||
if (target == gdk_atom_intern_static_string ("UTF8_STRING"))
|
||||
{
|
||||
NSString *s = [pasteboard stringForType:NSStringPboardType];
|
||||
NSString *s = [pasteboard stringForType:GDK_QUARTZ_STRING_PBOARD_TYPE];
|
||||
|
||||
if (s)
|
||||
{
|
||||
@ -237,7 +237,8 @@ _gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard,
|
||||
gtk_selection_data_set_uris (selection_data, uris);
|
||||
g_free (uris);
|
||||
}
|
||||
else if ([[pasteboard types] containsObject:NSURLPboardType])
|
||||
else if ([[pasteboard types] containsObject:GDK_QUARTZ_URL_PBOARD_TYPE] ||
|
||||
[[pasteboard types] containsObject:GDK_QUARTZ_FILE_PBOARD_TYPE])
|
||||
{
|
||||
gchar *uris[2];
|
||||
NSURL *url = [NSURL URLFromPasteboard:pasteboard];
|
||||
@ -258,7 +259,7 @@ _gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard,
|
||||
name = gdk_atom_name (target);
|
||||
|
||||
if (strcmp (name, "image/tiff") == 0)
|
||||
data = [pasteboard dataForType:NSTIFFPboardType];
|
||||
data = [pasteboard dataForType:GDK_QUARTZ_TIFF_PBOARD_TYPE];
|
||||
else
|
||||
data = [pasteboard dataForType:[NSString stringWithUTF8String:name]];
|
||||
|
||||
@ -292,10 +293,10 @@ _gtk_quartz_set_selection_data_for_pasteboard (NSPasteboard *pasteboard,
|
||||
|
||||
type = gdk_quartz_atom_to_pasteboard_type_libgtk_only (gtk_selection_data_get_target (selection_data));
|
||||
|
||||
if ([type isEqualTo:NSStringPboardType])
|
||||
if ([type isEqualTo:GDK_QUARTZ_STRING_PBOARD_TYPE])
|
||||
[pasteboard setString:[NSString stringWithUTF8String:(const char *)data]
|
||||
forType:type];
|
||||
else if ([type isEqualTo:NSColorPboardType])
|
||||
else if ([type isEqualTo:GDK_QUARTZ_COLOR_PBOARD_TYPE])
|
||||
{
|
||||
guint16 *color = (guint16 *)data;
|
||||
float red, green, blue, alpha;
|
||||
@ -309,7 +310,7 @@ _gtk_quartz_set_selection_data_for_pasteboard (NSPasteboard *pasteboard,
|
||||
nscolor = [NSColor colorWithDeviceRed:red green:green blue:blue alpha:alpha];
|
||||
[nscolor writeToPasteboard:pasteboard];
|
||||
}
|
||||
else if ([type isEqualTo:NSURLPboardType])
|
||||
else if ([type isEqualTo:GDK_QUARTZ_URL_PBOARD_TYPE])
|
||||
{
|
||||
gchar **uris;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user