Handle Unicode clipboard data in pcbnew and symbol editor
Fixes #10323
(cherry picked from commit 8373180cbb
)
This commit is contained in:
parent
56d87a8613
commit
57d58fe335
|
@ -299,8 +299,11 @@ void GRID_TRICKS::showPopupMenu( wxMenu& menu )
|
|||
|
||||
if( wxTheClipboard->Open() )
|
||||
{
|
||||
if( wxTheClipboard->IsSupported( wxDF_TEXT ) )
|
||||
if( wxTheClipboard->IsSupported( wxDF_TEXT )
|
||||
|| wxTheClipboard->IsSupported( wxDF_UNICODETEXT ) )
|
||||
{
|
||||
menu.Enable( GRIDTRICKS_ID_PASTE, true );
|
||||
}
|
||||
|
||||
wxTheClipboard->Close();
|
||||
}
|
||||
|
@ -535,7 +538,8 @@ void GRID_TRICKS::paste_clipboard()
|
|||
|
||||
if( wxTheClipboard->Open() )
|
||||
{
|
||||
if( wxTheClipboard->IsSupported( wxDF_TEXT ) )
|
||||
if( wxTheClipboard->IsSupported( wxDF_TEXT )
|
||||
|| wxTheClipboard->IsSupported( wxDF_UNICODETEXT ) )
|
||||
{
|
||||
wxTextDataObject data;
|
||||
|
||||
|
|
|
@ -845,8 +845,12 @@ void SYMBOL_EDIT_FRAME::DuplicateSymbol( bool aFromClipboard )
|
|||
auto clipboard = wxTheClipboard;
|
||||
wxClipboardLocker clipboardLock( clipboard );
|
||||
|
||||
if( !clipboardLock || ! clipboard->IsSupported( wxDF_TEXT ) )
|
||||
if( !clipboardLock
|
||||
|| !( clipboard->IsSupported( wxDF_TEXT )
|
||||
|| clipboard->IsSupported( wxDF_UNICODETEXT ) ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
wxTextDataObject data;
|
||||
clipboard->GetData( data );
|
||||
|
|
|
@ -291,7 +291,7 @@ void CLIPBOARD_IO::SaveSelection( const PCB_SELECTION& aSelected, bool isFootpri
|
|||
// clipboard is closed seems to cause an ASAN error (heap-buffer-overflow)
|
||||
// since it uses the cached version of the clipboard data and not the system
|
||||
// clipboard data.
|
||||
if( clipboard->IsSupported( wxDF_TEXT ) )
|
||||
if( clipboard->IsSupported( wxDF_TEXT ) || clipboard->IsSupported( wxDF_UNICODETEXT ) )
|
||||
{
|
||||
wxTextDataObject data;
|
||||
clipboard->GetData( data );
|
||||
|
@ -314,7 +314,7 @@ BOARD_ITEM* CLIPBOARD_IO::Parse()
|
|||
if( !clipboardLock )
|
||||
return nullptr;
|
||||
|
||||
if( clipboard->IsSupported( wxDF_TEXT ) )
|
||||
if( clipboard->IsSupported( wxDF_TEXT ) || clipboard->IsSupported( wxDF_UNICODETEXT ) )
|
||||
{
|
||||
wxTextDataObject data;
|
||||
clipboard->GetData( data );
|
||||
|
@ -370,7 +370,7 @@ void CLIPBOARD_IO::Save( const wxString& aFileName, BOARD* aBoard,
|
|||
// been processed by the system clipboard. This appears to be needed for
|
||||
// extremely large clipboard copies on asynchronous linux clipboard managers
|
||||
// such as KDE's Klipper
|
||||
if( clipboard->IsSupported( wxDF_TEXT ) )
|
||||
if( clipboard->IsSupported( wxDF_TEXT ) || clipboard->IsSupported( wxDF_UNICODETEXT ) )
|
||||
{
|
||||
wxTextDataObject data;
|
||||
clipboard->GetData( data );
|
||||
|
@ -393,7 +393,7 @@ BOARD* CLIPBOARD_IO::Load( const wxString& aFileName, BOARD* aAppendToMe,
|
|||
if( !clipboardLock )
|
||||
return nullptr;
|
||||
|
||||
if( clipboard->IsSupported( wxDF_TEXT ) )
|
||||
if( clipboard->IsSupported( wxDF_TEXT ) || clipboard->IsSupported( wxDF_UNICODETEXT ) )
|
||||
{
|
||||
wxTextDataObject data;
|
||||
clipboard->GetData( data );
|
||||
|
|
Loading…
Reference in New Issue