related tdf#111733 TextCharacterSpacingControl sw: goto position tab
The kerning button on the sidebar very unhelpfully launches
the character properties dialog at the last-used tab,
instead of bringing the user directly to the "position" tab
where the kerning (.uno:Spacing) property can be found.
Notes:
-sw draw text (eg. textbox) does nothing - no dialog at all
-sw comments also do nothing
-sc does nothing
-sd does nothing
Somehow the sidebar is calling SID_ATTR_CHAR_KERNING,
but I can't find out where. In any case, I have to change
this SID_ATTR_CHAR_KERNING into SID_CHAR_DLG_POSITION
for these "do nothing" situations. That can happen in
separate commits for each situation.
I basically copied SID_CHAR_DLG_EFFECTS which is
explicitly called in underline's "more options",
so it is used a bit differently.
Change-Id: I833d54da3664b9c01325130a2c36bbbe90b2b878
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129043
Tested-by: Justin Luth <jluth@mail.com>
Reviewed-by: Justin Luth <jluth@mail.com>
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index 467a96e..f4623b6 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -958,6 +958,7 @@ class SvxViewLayoutItem;
#define SID_CELL_FORMAT_BORDER ( SID_SVX_START + 1132 )
#define SID_CHAR_DLG_EFFECT ( SID_SVX_START + 1133 )
#define SID_CHAR_DLG_POSITION ( SID_SVX_START + 1134 )
#define FN_SVX_SET_NUMBER ( SID_SVX_START + 1136 )
#define FN_SVX_SET_BULLET ( SID_SVX_START + 1137 )
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
index d97996d..9cea6ad 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
@@ -6676,6 +6676,11 @@ bit 3 (0x8): #define UICOMMANDDESCRIPTION_PROPERTIES_TOGGLEBUTTON 8
<value xml:lang="en-US">Character Font Effects...</value>
</prop>
</node>
<node oor:name=".uno:FontPositionDialog" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Character Font Position...</value>
</prop>
</node>
<node oor:name=".uno:FormatMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">F~ormat</value>
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 84f959f..2ea903d 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -3008,6 +3008,25 @@ SfxVoidItem FontEffectsDialog SID_CHAR_DLG_EFFECT
]
SfxVoidItem FontPositionDialog SID_CHAR_DLG_POSITION
()
[
AutoUpdate = FALSE,
FastCall = FALSE,
ReadOnlyDoc = FALSE,
Toggle = FALSE,
Container = FALSE,
RecordAbsolute = FALSE,
RecordPerItem;
Asynchron;
AccelConfig = TRUE,
MenuConfig = TRUE,
ToolBoxConfig = TRUE,
GroupId = SfxGroupId::Format;
]
SvxFontHeightItem FontHeight SID_ATTR_CHAR_FONTHEIGHT
[
diff --git a/sw/sdi/_textsh.sdi b/sw/sdi/_textsh.sdi
index 38359c5..c30d3b2 100644
--- a/sw/sdi/_textsh.sdi
+++ b/sw/sdi/_textsh.sdi
@@ -1531,6 +1531,11 @@ interface BaseText
ExecMethod = Execute ;
DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
]
SID_CHAR_DLG_POSITION
[
ExecMethod = Execute ;
DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
]
SID_CHAR_DLG_FOR_PARAGRAPH
[
ExecMethod = Execute ;
diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx
index 3e13df5e..b2f8abd 100644
--- a/sw/source/uibase/shells/basesh.cxx
+++ b/sw/source/uibase/shells/basesh.cxx
@@ -2173,12 +2173,12 @@ SwBaseShell::~SwBaseShell()
void SwBaseShell::ExecTextCtrl( SfxRequest& rReq )
{
const SfxItemSet *pArgs = rReq.GetArgs();
const sal_uInt16 nSlot = rReq.GetSlot();
if( pArgs)
{
SwWrtShell &rSh = GetShell();
std::unique_ptr<SvxScriptSetItem> pSSetItem;
sal_uInt16 nSlot = rReq.GetSlot();
SfxItemPool& rPool = rSh.GetAttrPool();
sal_uInt16 nWhich = rPool.GetWhich( nSlot );
SvtScriptType nScripts = SvtScriptType::LATIN | SvtScriptType::ASIAN | SvtScriptType::COMPLEX;
@@ -2292,7 +2292,12 @@ void SwBaseShell::ExecTextCtrl( SfxRequest& rReq )
}
}
else
GetView().GetViewFrame()->GetDispatcher()->Execute( SID_CHAR_DLG );
{
if (nSlot == SID_ATTR_CHAR_KERNING)
GetView().GetViewFrame()->GetDispatcher()->Execute(SID_CHAR_DLG_POSITION);
else
GetView().GetViewFrame()->GetDispatcher()->Execute(SID_CHAR_DLG);
}
rReq.Done();
}
diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx
index 0436659..4677237 100644
--- a/sw/source/uibase/shells/textsh1.cxx
+++ b/sw/source/uibase/shells/textsh1.cxx
@@ -164,6 +164,8 @@ static void sw_CharDialog(SwWrtShell &rWrtSh, bool bUseDialog, sal_uInt16 nSlot,
pDlg->SetCurPageId("hyperlink");
else if (nSlot == SID_CHAR_DLG_EFFECT)
pDlg->SetCurPageId("fonteffects");
else if (nSlot == SID_CHAR_DLG_POSITION)
pDlg->SetCurPageId("position");
else if (nSlot == SID_CHAR_DLG_FOR_PARAGRAPH)
pDlg->SetCurPageId("font");
else if (pReq)
@@ -946,6 +948,7 @@ void SwTextShell::Execute(SfxRequest &rReq)
}
case SID_CHAR_DLG:
case SID_CHAR_DLG_EFFECT:
case SID_CHAR_DLG_POSITION:
{
sw_CharDialog( rWrtSh, bUseDialog, nSlot, pArgs, &rReq );
}