X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1248b41f9f71110347659db8c54c75786eba23c6..de9a407728e5f47ed416365da9c07798ad0b0b26:/src/motif/clipbrd.cpp diff --git a/src/motif/clipbrd.cpp b/src/motif/clipbrd.cpp index 2f8d636d09..7b13ed0d2b 100644 --- a/src/motif/clipbrd.cpp +++ b/src/motif/clipbrd.cpp @@ -176,13 +176,16 @@ struct wxDataIdToDataObject WX_DEFINE_LIST(wxDataObjectList); WX_DEFINE_LIST(wxDataIdToDataObjectList); +extern "C" +{ #if wxCHECK_LESSTIF() static void wxClipboardCallback( Widget widget, int* data_id, int* priv, int* reason ); -#else +#else // Motif static void wxClipboardCallback( Widget widget, long* data_id, long* priv, int* reason ); -#endif +#endif // Less/Motif +} IMPLEMENT_DYNAMIC_CLASS(wxClipboard,wxObject) @@ -208,7 +211,9 @@ void wxClipboard::Clear() for( wxDataIdToDataObjectList::compatibility_iterator node2 = m_idToObject.GetFirst(); node2; node2 = node2->GetNext() ) - delete node->GetData(); + { + delete node2->GetData(); + } m_idToObject.Clear(); } @@ -283,7 +288,7 @@ bool wxClipboard::AddData( wxDataObject *data ) m_data.Append( data ); Display* xdisplay = wxGlobalDisplay(); - Widget xwidget = (Widget)wxTheApp->GetTopLevelWidget(); + Widget xwidget = (Widget)wxTheApp->GetTopLevelRealizedWidget(); Window xwindow = XtWindow( xwidget ); wxXmString label( wxTheApp->GetAppName() ); Time timestamp = XtLastTimestampProcessed( xdisplay ); @@ -333,7 +338,7 @@ void wxClipboard::Close() bool wxClipboard::IsSupported(const wxDataFormat& format) { Display* xdisplay = wxGlobalDisplay(); - Window xwindow = XtWindow( (Widget)wxTheApp->GetTopLevelWidget() ); + Window xwindow = XtWindow( (Widget)wxTheApp->GetTopLevelRealizedWidget() ); bool isSupported = false; int retval, count; unsigned long max_name_length; @@ -393,7 +398,7 @@ bool wxClipboard::GetData( wxDataObject& data ) wxCHECK_MSG( m_open, false, "clipboard not open" ); Display* xdisplay = wxGlobalDisplay(); - Window xwindow = XtWindow( (Widget)wxTheApp->GetTopLevelWidget() ); + Window xwindow = XtWindow( (Widget)wxTheApp->GetTopLevelRealizedWidget() ); Time timestamp = XtLastTimestampProcessed( xdisplay ); wxDataFormat chosenFormat;