X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8ee9d6182c9b7774477e97f4326766ac05cc70c2..454e2a22c0af20663f302565e1835d820ee1b6dd:/src/gtk/dnd.cpp diff --git a/src/gtk/dnd.cpp b/src/gtk/dnd.cpp index 6ab59511ca..e8e4232a2a 100644 --- a/src/gtk/dnd.cpp +++ b/src/gtk/dnd.cpp @@ -230,7 +230,7 @@ static gboolean target_drag_drop( GtkWidget *widget, if (!ret) { - wxLogDebug( wxT( "Drop target: OnDrop returned TRUE") ); + wxLogDebug( wxT( "Drop target: OnDrop returned FALSE") ); /* cancel the whole thing */ gtk_drag_finish( context, @@ -359,7 +359,7 @@ wxDragResult wxDropTarget::OnDragOver( wxCoord WXUNUSED(x), // disable the debug message from GetMatchingPair() - there are too many // of them otherwise -#ifdef __WXDEBUG__ +#if 0 //def __WXDEBUG__ wxLogNull noLog; #endif // Debug @@ -378,10 +378,10 @@ wxDragResult wxDropTarget::OnData( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), wxDragResult def ) { if (!m_dataObject) - return FALSE; + return wxDragNone; if (GetMatchingPair() == (GdkAtom) 0) - return FALSE; + return wxDragNone; return GetData() ? def : wxDragNone; } @@ -401,8 +401,7 @@ GdkAtom wxDropTarget::GetMatchingPair() wxDataFormat format( formatAtom ); #ifdef __WXDEBUG__ - char *name = gdk_atom_name( formatAtom ); - wxLogDebug("Drop target: drag has format: %s", name ? name : "unnamed"); + wxLogDebug( wxT("Drop target: drag has format: %s"), format.GetId().c_str() ); #endif // Debug if (m_dataObject->IsSupportedFormat( format )) @@ -427,20 +426,6 @@ bool wxDropTarget::GetData() if (!m_dataObject->IsSupportedFormat( dragFormat )) return FALSE; - if (dragFormat.GetType() == wxDF_TEXT) - { - wxTextDataObject *text_object = (wxTextDataObject*)m_dataObject; - text_object->SetText( (const char*)m_dragData->data ); - return TRUE; - } - - if (dragFormat.GetType() == wxDF_FILENAME) - { - wxFileDataObject *file_object = (wxFileDataObject*)m_dataObject; - file_object->SetData( 0, (const char*)m_dragData->data ); - return TRUE; - } - m_dataObject->SetData( dragFormat, (size_t)m_dragData->length, (const void*)m_dragData->data ); return TRUE; @@ -504,7 +489,7 @@ void wxDropTarget::RegisterWidget( GtkWidget *widget ) static void source_drag_data_get (GtkWidget *WXUNUSED(widget), - GdkDragContext *context, + GdkDragContext *WXUNUSED(context), GtkSelectionData *selection_data, guint WXUNUSED(info), guint WXUNUSED(time), @@ -629,7 +614,7 @@ gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigur if (source->m_dragContext->action == GDK_ACTION_COPY) action = wxDragCopy; if (source->m_dragContext->action == GDK_ACTION_MOVE) action = wxDragMove; - source->GiveFeedback( action, FALSE ); + source->GiveFeedback( action ); return 0; } @@ -712,9 +697,9 @@ void wxDropSource::PrepareIcon( int hot_x, int hot_y, GdkDragContext *context ) gtk_drag_set_icon_widget( context, m_iconWindow, hot_x, hot_y ); } -wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) ) +wxDragResult wxDropSource::DoDragDrop( bool allowMove ) { - wxASSERT_MSG( m_data, wxT("wxDragSource: no data") ); + wxASSERT_MSG( m_data, wxT("Drop source: no data") ); if (!m_data) return (wxDragResult) wxDragNone; @@ -735,7 +720,7 @@ wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) ) for (size_t i = 0; i < m_data->GetFormatCount(); i++) { GdkAtom atom = array[i]; - wxLogDebug( wxT("Supported atom %s"), gdk_atom_name( atom ) ); + wxLogDebug( wxT("Drop source: Supported atom %s"), gdk_atom_name( atom ) ); gtk_target_list_add( target_list, atom, 0, 0 ); } delete[] array; @@ -749,7 +734,7 @@ wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) ) event.x = x; event.y = y; event.state = state; - event.time = GDK_CURRENT_TIME; + event.time = (guint32)GDK_CURRENT_TIME; /* GTK wants to know which button was pressed which caused the dragging */ int button_number = 0; @@ -765,9 +750,11 @@ wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) ) /* don't start dragging if no button is down */ if (button_number) { + GdkDragAction action = GDK_ACTION_COPY; + if (allowMove) action = (GdkDragAction)(GDK_ACTION_MOVE|GDK_ACTION_COPY); GdkDragContext *context = gtk_drag_begin( m_widget, target_list, - (GdkDragAction)(GDK_ACTION_COPY|GDK_ACTION_MOVE), + action, button_number, /* number of mouse button which started drag */ (GdkEvent*) &event );