Fix exporting clipboard data to primary selection in wxGTK.

Honour the requested selection in our selection handler instead of always
returning the default one resulting in wrong data being pasted when using
primary selection (e.g. middle clicking).

Closes #12947.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2011-03-18 09:16:19 +00:00
parent bd45b3e176
commit 37204b5d30
3 changed files with 28 additions and 4 deletions

View File

@@ -262,7 +262,7 @@ selection_handler( GtkWidget *WXUNUSED(widget),
if ( !clipboard )
return;
wxDataObject * const data = clipboard->GTKGetDataObject();
wxDataObject * const data = clipboard->GTKGetDataObject(selection_data->selection);
if ( !data )
return;
@@ -729,4 +729,27 @@ bool wxClipboard::GetData( wxDataObject& data )
return false;
}
wxDataObject* wxClipboard::GTKGetDataObject( GdkAtom atom )
{
if ( atom == GDK_NONE )
return Data();
if ( atom == GDK_SELECTION_PRIMARY )
{
wxLogTrace(TRACE_CLIPBOARD, wxT("Primary selection requested" ));
return Data( wxClipboard::Primary );
}
else if ( atom == g_clipboardAtom )
{
wxLogTrace(TRACE_CLIPBOARD, wxT("Clipboard data requested" ));
return Data( wxClipboard::Clipboard );
}
else // some other selection, we're not concerned
{
return (wxDataObject*)NULL;
}
}
#endif // wxUSE_CLIPBOARD