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:
parent
f373f19798
commit
61b04ac652
@ -657,6 +657,13 @@ bool DnDApp::OnInit()
|
||||
|
||||
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
|
||||
wxImage::AddHandler( new wxPNGHandler );
|
||||
#endif
|
||||
@ -736,11 +743,7 @@ DnDFrame::DnDFrame(wxFrame *frame, char *title, int x, int y, int w, int h)
|
||||
wxTE_MULTILINE | wxTE_READONLY |
|
||||
wxSUNKEN_BORDER );
|
||||
|
||||
#ifdef __WXMSW__
|
||||
// redirect log messages to the text window and switch on OLE messages
|
||||
// logging
|
||||
wxLog::AddTraceMask(wxTRACE_OleCalls);
|
||||
#endif
|
||||
// redirect log messages to the text window
|
||||
m_pLog = new wxLogTextCtrl(m_ctrlLog);
|
||||
m_pLogPrev = wxLog::SetActiveTarget(m_pLog);
|
||||
|
||||
@ -803,12 +806,23 @@ void DnDFrame::OnPaint(wxPaintEvent& WXUNUSED(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( TRUE );
|
||||
}
|
||||
|
||||
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) );
|
||||
}
|
||||
|
||||
|
@ -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__
|
||||
@ -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 char *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)
|
||||
{
|
||||
@ -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,9 +490,9 @@ 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() );
|
||||
*/
|
||||
wxLogTrace( TRACE_CLIPBOARD,
|
||||
wxT("wxClipboard:IsSupported: requested format: %s"),
|
||||
format.GetId().c_str() );
|
||||
|
||||
wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
|
||||
|
||||
@ -518,7 +533,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 ? */
|
||||
|
||||
|
@ -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__
|
||||
@ -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 char *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)
|
||||
{
|
||||
@ -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,9 +490,9 @@ 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() );
|
||||
*/
|
||||
wxLogTrace( TRACE_CLIPBOARD,
|
||||
wxT("wxClipboard:IsSupported: requested format: %s"),
|
||||
format.GetId().c_str() );
|
||||
|
||||
wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
|
||||
|
||||
@ -518,7 +533,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 ? */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user