X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eff869aad2585994c3a4b21b36cdf98245ab3f15..53e46b61bbe4ce72b92c8898907f0a879d5f012b:/src/gtk/clipbrd.cpp?ds=sidebyside diff --git a/src/gtk/clipbrd.cpp b/src/gtk/clipbrd.cpp index 9500db81e1..3188efb475 100644 --- a/src/gtk/clipbrd.cpp +++ b/src/gtk/clipbrd.cpp @@ -1,10 +1,10 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.cpp +// Name: gtk/clipbrd.cpp // Purpose: // Author: Robert Roebling // Id: $Id$ // Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -19,9 +19,9 @@ #include "wx/utils.h" #include "wx/log.h" -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" +#include +#include +#include //----------------------------------------------------------------------------- // thread system @@ -39,6 +39,11 @@ extern void wxapp_uninstall_thread_wakeup(); GdkAtom g_clipboardAtom = 0; GdkAtom g_targetsAtom = 0; +// the trace mask we use with wxLogTrace() - call +// wxLog::AddTraceMask(TRACE_CLIPBOARD) to enable the trace messages from here +// (there will be a *lot* of them!) +static const wxChar *TRACE_CLIPBOARD = _T("clipboard"); + //----------------------------------------------------------------------------- // reminder //----------------------------------------------------------------------------- @@ -57,9 +62,9 @@ struct _GtkSelectionData GdkAtom selection; GdkAtom target; GdkAtom type; - gint format; + gint format; guchar *data; - gint length; + gint length; }; */ @@ -82,14 +87,22 @@ targets_selection_received( GtkWidget *WXUNUSED(widget), GdkAtom type = selection_data->type; if ( type != GDK_SELECTION_TYPE_ATOM ) { - clipboard->m_waiting = FALSE; - return; + if ( strcmp(gdk_atom_name(type), "TARGETS") ) + { + wxLogTrace( TRACE_CLIPBOARD, + _T("got unsupported clipboard target") ); + + clipboard->m_waiting = FALSE; + return; + } } -/* +#ifdef __WXDEBUG__ wxDataFormat clip( selection_data->selection ); - wxLogDebug( wxT("selection received for targets, clipboard %s"), clip.GetId().c_str() ); -*/ + wxLogTrace( TRACE_CLIPBOARD, + wxT("selection received for targets, clipboard %s"), + clip.GetId().c_str() ); +#endif // __WXDEBUG__ // the atoms we received, holding a list of targets (= formats) GdkAtom *atoms = (GdkAtom *)selection_data->data; @@ -98,9 +111,9 @@ targets_selection_received( GtkWidget *WXUNUSED(widget), { wxDataFormat format( atoms[i] ); -/* - wxLogDebug( wxT("selection received for targets, format %s"), format.GetId().c_str() ); -*/ + wxLogTrace( TRACE_CLIPBOARD, + wxT("selection received for targets, format %s"), + format.GetId().c_str() ); if (format == clipboard->m_targetRequested) { @@ -199,7 +212,7 @@ selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event ) /* the clipboard is no longer in our hands. we can the delete clipboard data. */ if (wxTheClipboard->m_data) { - wxLogDebug( wxT("wxClipboard will get cleared" ) ); + wxLogTrace(TRACE_CLIPBOARD, wxT("wxClipboard will get cleared" )); delete wxTheClipboard->m_data; wxTheClipboard->m_data = (wxDataObject*) NULL; @@ -417,7 +430,9 @@ bool wxClipboard::AddData( wxDataObject *data ) for (size_t i = 0; i < m_data->GetFormatCount(); i++) { - wxLogDebug( wxT("wxClipboard now supports atom %s"), array[i].GetId().c_str() ); + wxLogTrace( TRACE_CLIPBOARD, + wxT("wxClipboard now supports atom %s"), + array[i].GetId().c_str() ); gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget), clipboard, @@ -475,7 +490,11 @@ bool wxClipboard::IsSupported( const wxDataFormat& format ) /* store requested format to be asked for by callbacks */ m_targetRequested = format; - wxLogDebug( wxT("wxClipboard:IsSupported: requested format: %s"), format.GetId().c_str() ); +#if 0 + wxLogTrace( TRACE_CLIPBOARD, + wxT("wxClipboard:IsSupported: requested format: %s"), + format.GetId().c_str() ); +#endif wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") ); @@ -516,7 +535,9 @@ bool wxClipboard::GetData( wxDataObject& data ) { wxDataFormat format( array[i] ); - wxLogDebug( wxT("wxClipboard::GetData: requested format: %s"), format.GetId().c_str() ); + wxLogTrace( TRACE_CLIPBOARD, + wxT("wxClipboard::GetData: requested format: %s"), + format.GetId().c_str() ); /* is data supported by clipboard ? */ @@ -569,7 +590,8 @@ bool wxClipboard::GetData( wxDataObject& data ) m_waiting = TRUE; - wxLogDebug( wxT("wxClipboard::GetData: format found, start convert") ); + wxLogTrace( TRACE_CLIPBOARD, + wxT("wxClipboard::GetData: format found, start convert") ); gtk_selection_convert( m_clipboardWidget, m_usePrimary ? (GdkAtom)GDK_SELECTION_PRIMARY @@ -587,7 +609,8 @@ bool wxClipboard::GetData( wxDataObject& data ) return TRUE; } - wxLogDebug( wxT("wxClipboard::GetData: format not found") ); + wxLogTrace( TRACE_CLIPBOARD, + wxT("wxClipboard::GetData: format not found") ); /* return failure */ delete[] array;