summaryrefslogtreecommitdiffstats
path: root/sw/source/uibase/shells/textsh.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/uibase/shells/textsh.cxx')
-rw-r--r--sw/source/uibase/shells/textsh.cxx15
1 files changed, 14 insertions, 1 deletions
diff --git a/sw/source/uibase/shells/textsh.cxx b/sw/source/uibase/shells/textsh.cxx
index 0924935b3d..97de985401 100644
--- a/sw/source/uibase/shells/textsh.cxx
+++ b/sw/source/uibase/shells/textsh.cxx
@@ -877,7 +877,20 @@ void SwTextShell::ExecTransliteration( SfxRequest const & rReq )
void SwTextShell::ExecRotateTransliteration( SfxRequest const & rReq )
{
if( rReq.GetSlot() == SID_TRANSLITERATE_ROTATE_CASE )
- GetShell().TransliterateText( m_aRotateCase.getNextMode() );
+ {
+ SwWrtShell& rSh = GetShell();
+ if (rSh.HasSelection())
+ {
+ rSh.TransliterateText(m_aRotateCase.getNextMode());
+ }
+ else
+ {
+ rSh.Push(); // save cur cursor
+ if ((rSh.IsEndWrd() || rSh.IsStartWord() || rSh.IsInWord()) && rSh.SelWrd())
+ rSh.TransliterateText(m_aRotateCase.getNextMode());
+ rSh.Pop(SwCursorShell::PopMode::DeleteCurrent);
+ }
+ }
}
SwTextShell::SwTextShell(SwView &_rView) :