tdf#172188: Crash when switching para direction in editeng
Test bLeftToRight to know if we must use StaticWhichCast with SID_ATTR_PARA_LEFT_TO_RIGHT
or SID_ATTR_PARA_RIGHT_TO_LEFT
It requires to add "TypedWhichId<SfxBoolItem>" for SID_ATTR_PARA_RIGHT_TO_LEFT
Regression from c0b0a18f5c:
Related tdf#140226: use StaticWhichCast in ww8graf+drwtxtex (sw)
Change-Id: I59f98d7b3285c12154ad69e9e2727d66ea1dfd3e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205476
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
This commit is contained in:
@@ -165,7 +165,7 @@ class SvxOpticalSizingItem;
|
||||
#define SID_ATTR_PARA_AUTOFRAMEDIRECTION TypedWhichId<SvxAutoFrameDirectionItem>( SID_SVX_START + 946 )
|
||||
#define SID_ATTR_PARA_LRSPACE_VERTICAL ( SID_SVX_START + 947 )
|
||||
#define SID_ATTR_PARA_LEFT_TO_RIGHT TypedWhichId<SfxBoolItem>( SID_SVX_START + 950 )
|
||||
#define SID_ATTR_PARA_RIGHT_TO_LEFT ( SID_SVX_START + 951 )
|
||||
#define SID_ATTR_PARA_RIGHT_TO_LEFT TypedWhichId<SfxBoolItem>( SID_SVX_START + 951 )
|
||||
#define SID_ATTR_CHAR_HIDDEN TypedWhichId<SvxCharHiddenItem>( SID_SVX_START + 989 )
|
||||
#define SID_ATTR_CHAR_LATIN_FONT ( SID_SVX_START + 994 )
|
||||
#define SID_ATTR_CHAR_LATIN_FONTHEIGHT TypedWhichId<SvxFontHeightItem>( SID_SVX_START + 995 )
|
||||
|
||||
@@ -602,8 +602,16 @@ void SwAnnotationShell::Exec( SfxRequest &rReq )
|
||||
const SfxPoolItem* pPoolItem;
|
||||
if( pNewAttrs && SfxItemState::SET == pNewAttrs->GetItemState( nSlot, true, &pPoolItem ) )
|
||||
{
|
||||
if( !pPoolItem->StaticWhichCast(SID_ATTR_PARA_LEFT_TO_RIGHT).GetValue() )
|
||||
bLeftToRight = !bLeftToRight;
|
||||
if (bLeftToRight)
|
||||
{
|
||||
if( !pPoolItem->StaticWhichCast(SID_ATTR_PARA_LEFT_TO_RIGHT).GetValue() )
|
||||
bLeftToRight = !bLeftToRight;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( !pPoolItem->StaticWhichCast(SID_ATTR_PARA_RIGHT_TO_LEFT).GetValue() )
|
||||
bLeftToRight = !bLeftToRight;
|
||||
}
|
||||
}
|
||||
SfxItemSet aAttr(SfxItemSet::makeFixedSfxItemSet<
|
||||
EE_PARA_WRITINGDIR, EE_PARA_WRITINGDIR,
|
||||
|
||||
@@ -617,8 +617,16 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
|
||||
const SfxPoolItem* pPoolItem;
|
||||
if( pNewAttrs && SfxItemState::SET == pNewAttrs->GetItemState( nSlot, true, &pPoolItem ) )
|
||||
{
|
||||
if( !pPoolItem->StaticWhichCast(SID_ATTR_PARA_LEFT_TO_RIGHT).GetValue() )
|
||||
bLeftToRight = !bLeftToRight;
|
||||
if (bLeftToRight)
|
||||
{
|
||||
if( !pPoolItem->StaticWhichCast(SID_ATTR_PARA_LEFT_TO_RIGHT).GetValue() )
|
||||
bLeftToRight = !bLeftToRight;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( !pPoolItem->StaticWhichCast(SID_ATTR_PARA_RIGHT_TO_LEFT).GetValue() )
|
||||
bLeftToRight = !bLeftToRight;
|
||||
}
|
||||
}
|
||||
SfxItemSet aAttr(SfxItemSet::makeFixedSfxItemSet<
|
||||
EE_PARA_WRITINGDIR, EE_PARA_WRITINGDIR,
|
||||
|
||||
Reference in New Issue
Block a user