wxGTK pastes text from rxvt again

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4614 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-11-18 15:00:57 +00:00
parent f373f19798
commit 61b04ac652
3 changed files with 88 additions and 40 deletions

View File

@@ -657,6 +657,13 @@ bool DnDApp::OnInit()
wxDefaultResourceTable->ParseResourceFile(path); wxDefaultResourceTable->ParseResourceFile(path);
// switch on trace messages
#if defined(__WXGTK__)
wxLog::AddTraceMask(_T("clipboard"));
#elif defined(__WXMSW__)
wxLog::AddTraceMask(wxTRACE_OleCalls);
#endif
#if wxUSE_LIBPNG #if wxUSE_LIBPNG
wxImage::AddHandler( new wxPNGHandler ); wxImage::AddHandler( new wxPNGHandler );
#endif #endif
@@ -736,11 +743,7 @@ DnDFrame::DnDFrame(wxFrame *frame, char *title, int x, int y, int w, int h)
wxTE_MULTILINE | wxTE_READONLY | wxTE_MULTILINE | wxTE_READONLY |
wxSUNKEN_BORDER ); wxSUNKEN_BORDER );
#ifdef __WXMSW__ // redirect log messages to the text window
// redirect log messages to the text window and switch on OLE messages
// logging
wxLog::AddTraceMask(wxTRACE_OleCalls);
#endif
m_pLog = new wxLogTextCtrl(m_ctrlLog); m_pLog = new wxLogTextCtrl(m_ctrlLog);
m_pLogPrev = wxLog::SetActiveTarget(m_pLog); m_pLogPrev = wxLog::SetActiveTarget(m_pLog);
@@ -803,12 +806,23 @@ void DnDFrame::OnPaint(wxPaintEvent& WXUNUSED(event))
void DnDFrame::OnUpdateUIPasteText(wxUpdateUIEvent& event) void DnDFrame::OnUpdateUIPasteText(wxUpdateUIEvent& event)
{ {
#ifdef __WXDEBUG__
// too many trace messages if we don't do it - this function is called
// very often
wxLogNull nolog;
#endif
event.Enable( wxTheClipboard->IsSupported(wxDF_TEXT) ); event.Enable( wxTheClipboard->IsSupported(wxDF_TEXT) );
// event.Enable( TRUE );
} }
void DnDFrame::OnUpdateUIPasteBitmap(wxUpdateUIEvent& event) void DnDFrame::OnUpdateUIPasteBitmap(wxUpdateUIEvent& event)
{ {
#ifdef __WXDEBUG__
// too many trace messages if we don't do it - this function is called
// very often
wxLogNull nolog;
#endif
event.Enable( wxTheClipboard->IsSupported(wxDF_BITMAP) ); event.Enable( wxTheClipboard->IsSupported(wxDF_BITMAP) );
} }

View File

@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: clipbrd.cpp // Name: gtk/clipbrd.cpp
// Purpose: // Purpose:
// Author: Robert Roebling // Author: Robert Roebling
// Id: $Id$ // Id: $Id$
@@ -39,6 +39,11 @@ extern void wxapp_uninstall_thread_wakeup();
GdkAtom g_clipboardAtom = 0; GdkAtom g_clipboardAtom = 0;
GdkAtom g_targetsAtom = 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 char *TRACE_CLIPBOARD = _T("clipboard");
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// reminder // reminder
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -82,14 +87,22 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
GdkAtom type = selection_data->type; GdkAtom type = selection_data->type;
if ( type != GDK_SELECTION_TYPE_ATOM ) if ( type != GDK_SELECTION_TYPE_ATOM )
{ {
if ( strcmp(gdk_atom_name(type), "TARGETS") )
{
wxLogTrace( TRACE_CLIPBOARD,
_T("got unsupported clipboard target") );
clipboard->m_waiting = FALSE; clipboard->m_waiting = FALSE;
return; return;
} }
}
/* #ifdef __WXDEBUG__
wxDataFormat clip( selection_data->selection ); 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) // the atoms we received, holding a list of targets (= formats)
GdkAtom *atoms = (GdkAtom *)selection_data->data; GdkAtom *atoms = (GdkAtom *)selection_data->data;
@@ -98,9 +111,9 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
{ {
wxDataFormat format( atoms[i] ); wxDataFormat format( atoms[i] );
/* wxLogTrace( TRACE_CLIPBOARD,
wxLogDebug( wxT("selection received for targets, format %s"), format.GetId().c_str() ); wxT("selection received for targets, format %s"),
*/ format.GetId().c_str() );
if (format == clipboard->m_targetRequested) if (format == clipboard->m_targetRequested)
{ {
@@ -417,7 +430,9 @@ bool wxClipboard::AddData( wxDataObject *data )
for (size_t i = 0; i < m_data->GetFormatCount(); i++) 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), gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget),
clipboard, clipboard,
@@ -475,9 +490,9 @@ bool wxClipboard::IsSupported( const wxDataFormat& format )
/* store requested format to be asked for by callbacks */ /* store requested format to be asked for by callbacks */
m_targetRequested = format; m_targetRequested = format;
/* wxLogTrace( TRACE_CLIPBOARD,
wxLogDebug( wxT("wxClipboard:IsSupported: requested format: %s"), format.GetId().c_str() ); wxT("wxClipboard:IsSupported: requested format: %s"),
*/ format.GetId().c_str() );
wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") ); wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
@@ -518,7 +533,9 @@ bool wxClipboard::GetData( wxDataObject& data )
{ {
wxDataFormat format( array[i] ); 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 ? */ /* is data supported by clipboard ? */

View File

@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: clipbrd.cpp // Name: gtk/clipbrd.cpp
// Purpose: // Purpose:
// Author: Robert Roebling // Author: Robert Roebling
// Id: $Id$ // Id: $Id$
@@ -39,6 +39,11 @@ extern void wxapp_uninstall_thread_wakeup();
GdkAtom g_clipboardAtom = 0; GdkAtom g_clipboardAtom = 0;
GdkAtom g_targetsAtom = 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 char *TRACE_CLIPBOARD = _T("clipboard");
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// reminder // reminder
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -82,14 +87,22 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
GdkAtom type = selection_data->type; GdkAtom type = selection_data->type;
if ( type != GDK_SELECTION_TYPE_ATOM ) if ( type != GDK_SELECTION_TYPE_ATOM )
{ {
if ( strcmp(gdk_atom_name(type), "TARGETS") )
{
wxLogTrace( TRACE_CLIPBOARD,
_T("got unsupported clipboard target") );
clipboard->m_waiting = FALSE; clipboard->m_waiting = FALSE;
return; return;
} }
}
/* #ifdef __WXDEBUG__
wxDataFormat clip( selection_data->selection ); 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) // the atoms we received, holding a list of targets (= formats)
GdkAtom *atoms = (GdkAtom *)selection_data->data; GdkAtom *atoms = (GdkAtom *)selection_data->data;
@@ -98,9 +111,9 @@ targets_selection_received( GtkWidget *WXUNUSED(widget),
{ {
wxDataFormat format( atoms[i] ); wxDataFormat format( atoms[i] );
/* wxLogTrace( TRACE_CLIPBOARD,
wxLogDebug( wxT("selection received for targets, format %s"), format.GetId().c_str() ); wxT("selection received for targets, format %s"),
*/ format.GetId().c_str() );
if (format == clipboard->m_targetRequested) if (format == clipboard->m_targetRequested)
{ {
@@ -417,7 +430,9 @@ bool wxClipboard::AddData( wxDataObject *data )
for (size_t i = 0; i < m_data->GetFormatCount(); i++) 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), gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget),
clipboard, clipboard,
@@ -475,9 +490,9 @@ bool wxClipboard::IsSupported( const wxDataFormat& format )
/* store requested format to be asked for by callbacks */ /* store requested format to be asked for by callbacks */
m_targetRequested = format; m_targetRequested = format;
/* wxLogTrace( TRACE_CLIPBOARD,
wxLogDebug( wxT("wxClipboard:IsSupported: requested format: %s"), format.GetId().c_str() ); wxT("wxClipboard:IsSupported: requested format: %s"),
*/ format.GetId().c_str() );
wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") ); wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
@@ -518,7 +533,9 @@ bool wxClipboard::GetData( wxDataObject& data )
{ {
wxDataFormat format( array[i] ); 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 ? */ /* is data supported by clipboard ? */