Handle y-axis inversion in Symbol Editor when drag-selecting text.

Fixes https://gitlab.com/kicad/code/kicad/issues/7406
This commit is contained in:
Jeff Young 2021-02-03 15:27:33 +00:00
parent ff3441143e
commit c220913aa1
2 changed files with 18 additions and 4 deletions

View File

@ -65,7 +65,20 @@ public:
bool HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy = 0 ) const override bool HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy = 0 ) const override
{ {
return TextHitTest( aRect, aContained, aAccuracy ); if( m_flags & (STRUCT_DELETED | SKIP_STRUCT ) )
return false;
EDA_RECT rect = aRect;
rect.Inflate( aAccuracy );
EDA_RECT textBox = GetTextBox();
textBox.RevertYAxis();
if( aContained )
return rect.Contains( textBox );
return rect.Intersects( textBox, GetTextAngle() );
} }
int GetPenWidth() const override; int GetPenWidth() const override;

View File

@ -361,9 +361,10 @@ void SYMBOL_EDIT_FRAME::setupUIConditions()
auto canEditLib = auto canEditLib =
[this] ( const SELECTION& sel ) [this] ( const SELECTION& sel )
{ {
return !getTargetLibId().GetLibNickname().empty() const wxString libName = getTargetLibId().GetLibNickname();
&& m_libMgr->LibraryExists( getTargetLibId().GetLibNickname() )
&& !m_libMgr->IsLibraryReadOnly( getTargetLibId().GetLibNickname() ); return !libName.empty() && m_libMgr->LibraryExists( libName )
&& !m_libMgr->IsLibraryReadOnly( libName );
}; };
mgr->SetConditions( ACTIONS::saveAll, mgr->SetConditions( ACTIONS::saveAll,