#include "gtkmarshalers.h"
#include "gtkintl.h"
#include "gtktextbuffer.h"
+#include "gtkselectionprivate.h"
#include "gtkquartz.h"
-#include "gtkalias.h"
+
enum {
OWNER_CHANGE,
clipboard->get_func (clipboard, &selection_data,
info,
clipboard->user_data);
-
- _gtk_quartz_set_selection_data_for_pasteboard (clipboard->pasteboard,
- &selection_data);
+
+ if (selection_data.length >= 0)
+ _gtk_quartz_set_selection_data_for_pasteboard (clipboard->pasteboard,
+ &selection_data);
g_free (selection_data.data);
}
GdkAtom selection)
{
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
- g_return_val_if_fail (!display->closed, NULL);
+ g_return_val_if_fail (!gdk_display_is_closed (display), NULL);
return clipboard_peek (display, selection, FALSE);
}
gboolean have_owner)
{
GtkClipboardOwner *owner;
- NSArray *types;
+ NSSet *types;
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
owner = [[GtkClipboardOwner alloc] initWithClipboard:clipboard];
- types = _gtk_quartz_target_entries_to_pasteboard_types (targets, n_targets);
-
if (!(clipboard->have_owner && have_owner) ||
clipboard->user_data != user_data)
{
clipboard->user_data != user_data)
{
(*clear_func) (clipboard, user_data);
+ [pool release];
return FALSE;
}
else
- return TRUE;
+ {
+ [pool release];
+ return TRUE;
+ }
}
}
gtk_target_list_unref (clipboard->target_list);
clipboard->target_list = gtk_target_list_new (targets, n_targets);
- [clipboard->pasteboard declareTypes:types owner:owner];
+ types = _gtk_quartz_target_entries_to_pasteboard_types (targets, n_targets);
+ [clipboard->pasteboard declareTypes:[types allObjects] owner:owner];
+ [types release];
[pool release];
return TRUE;
{
/* FIXME: Implement */
}
-
-#define __GTK_CLIPBOARD_C__
-#include "gtkaliasdef.c"