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
{
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;

View File

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