Grid Tricks: don't override paste into actively editing cell
Also strip linebreaks and tabs if we are in a single cell. Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12276 Fixes: https://gitlab.com/kicad/code/kicad/-/issues/8361
This commit is contained in:
parent
1982c1af80
commit
4ac0d71ad4
|
@ -35,6 +35,7 @@
|
||||||
// why not us too for now.
|
// why not us too for now.
|
||||||
#define COL_SEP wxT( '\t' )
|
#define COL_SEP wxT( '\t' )
|
||||||
#define ROW_SEP wxT( '\n' )
|
#define ROW_SEP wxT( '\n' )
|
||||||
|
#define ROW_SEP_R wxT( '\r' )
|
||||||
|
|
||||||
|
|
||||||
GRID_TRICKS::GRID_TRICKS( WX_GRID* aGrid ) :
|
GRID_TRICKS::GRID_TRICKS( WX_GRID* aGrid ) :
|
||||||
|
@ -480,8 +481,11 @@ void GRID_TRICKS::onCharHook( wxKeyEvent& ev )
|
||||||
|
|
||||||
if( data.GetText().Contains( COL_SEP ) || data.GetText().Contains( ROW_SEP ) )
|
if( data.GetText().Contains( COL_SEP ) || data.GetText().Contains( ROW_SEP ) )
|
||||||
{
|
{
|
||||||
m_grid->CommitPendingChanges( true /* quiet mode */ );
|
wxString stripped( data.GetText() );
|
||||||
paste_text( data.GetText() );
|
stripped.Replace( ROW_SEP, " " );
|
||||||
|
stripped.Replace( ROW_SEP_R, " " );
|
||||||
|
stripped.Replace( COL_SEP, " " );
|
||||||
|
paste_text( stripped );
|
||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -709,10 +713,9 @@ void GRID_TRICKS::paste_text( const wxString& cb_text )
|
||||||
if( m_sel_row_count > 1 )
|
if( m_sel_row_count > 1 )
|
||||||
is_selection = true;
|
is_selection = true;
|
||||||
}
|
}
|
||||||
else
|
else if( m_sel_col_count > 1 || m_sel_row_count > 1 )
|
||||||
{
|
{
|
||||||
if( m_grid->IsSelection() )
|
is_selection = true;
|
||||||
is_selection = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxStringTokenizer rows( cb_text, ROW_SEP, wxTOKEN_RET_EMPTY );
|
wxStringTokenizer rows( cb_text, ROW_SEP, wxTOKEN_RET_EMPTY );
|
||||||
|
|
Loading…
Reference in New Issue