]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - libs/gtkutil/clipboard.cpp
gtkgl module: drop
[xonotic/netradiant.git] / libs / gtkutil / clipboard.cpp
index c8073aba478bf6922a77be881b769c4461544de9..fd36f39e547b951336a61036bc3b778936135366 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "clipboard.h"
 
+#include "globaldefs.h"
 #include "stream/memstream.h"
 #include "stream/textstream.h"
 
@@ -28,7 +29,7 @@
 /// \file
 /// \brief Platform-independent GTK clipboard support.
 /// \todo Using GDK_SELECTION_CLIPBOARD fails on win32, so we use the win32 API directly for now.
-#if defined( WIN32 )
+#if GDEF_OS_WINDOWS
 
 const char* c_clipboard_format = "RadiantClippings";
 
@@ -83,15 +84,17 @@ void clipboard_paste( ClipboardPasteFunc paste ){
 
 #else
 
-#include <gtk/gtkclipboard.h>
+#include <gtk/gtk.h>
 
 enum
 {
        RADIANT_CLIPPINGS = 23,
 };
 
+static char RADIANT_CLIPPINGS_STR[] = "RADIANT_CLIPPINGS";
+
 static const GtkTargetEntry clipboard_targets[] = {
-       { "RADIANT_CLIPPINGS", 0, RADIANT_CLIPPINGS, },
+       {RADIANT_CLIPPINGS_STR, 0, RADIANT_CLIPPINGS, },
 };
 
 static void clipboard_get( GtkClipboard *clipboard, GtkSelectionData *selection_data, guint info, gpointer data ){
@@ -111,11 +114,11 @@ static void clipboard_clear( GtkClipboard *clipboard, gpointer data ){
 }
 
 static void clipboard_received( GtkClipboard *clipboard, GtkSelectionData *data, gpointer user_data ){
-       if ( data->length < 0 ) {
+       if ( gtk_selection_data_get_length(data) < 0 ) {
                globalErrorStream() << "Error retrieving selection\n";
        }
-       else if ( strcmp( gdk_atom_name( data->type ), clipboard_targets[0].target ) == 0 ) {
-               BufferInputStream istream( reinterpret_cast<const char*>( data->data ), data->length );
+       else if ( strcmp( gdk_atom_name( gtk_selection_data_get_data_type(data) ), clipboard_targets[0].target ) == 0 ) {
+               BufferInputStream istream( reinterpret_cast<const char*>( gtk_selection_data_get_data(data) ), gtk_selection_data_get_length(data) );
                ( *reinterpret_cast<ClipboardPasteFunc*>( user_data ) )( istream );
        }
 }