diff --git a/common/grid_tricks.cpp b/common/grid_tricks.cpp index a88f7265ee..6ba5c38888 100644 --- a/common/grid_tricks.cpp +++ b/common/grid_tricks.cpp @@ -300,8 +300,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(); } @@ -367,7 +370,8 @@ void GRID_TRICKS::onCharHook( wxKeyEvent& ev ) { if( m_grid->IsCellEditControlShown() && wxTheClipboard->Open() ) { - if( wxTheClipboard->IsSupported( wxDF_TEXT ) ) + if( wxTheClipboard->IsSupported( wxDF_TEXT ) + || wxTheClipboard->IsSupported( wxDF_UNICODETEXT ) ) { wxTextDataObject data; wxTheClipboard->GetData( data ); @@ -567,7 +571,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; diff --git a/eeschema/symbol_editor/symbol_editor.cpp b/eeschema/symbol_editor/symbol_editor.cpp index e69ec5bebb..1b1c9eb655 100644 --- a/eeschema/symbol_editor/symbol_editor.cpp +++ b/eeschema/symbol_editor/symbol_editor.cpp @@ -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 ); diff --git a/pcbnew/kicad_clipboard.cpp b/pcbnew/kicad_clipboard.cpp index 1e28372880..e44d271968 100644 --- a/pcbnew/kicad_clipboard.cpp +++ b/pcbnew/kicad_clipboard.cpp @@ -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 );