Bug 120615 - Ctrl+LShift, Ctrl+RShift not setting direction in Impress
Summary: Ctrl+LShift, Ctrl+RShift not setting direction in Impress
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Impress (show other bugs)
Version:
(earliest affected)
6.1.0.3 release
Hardware: All Linux (All)
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: RTL-UI
  Show dependency treegraph
 
Reported: 2018-10-15 13:46 UTC by Eyal Rozenberg
Modified: 2022-08-15 08:45 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:
Regression By:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eyal Rozenberg 2018-10-15 13:46:58 UTC
Description:
In LO Writer, like in MS Office, pressing Ctrl+LShift sets the paragraph direction to LTR, and pressiong Ctrl+RShift sets it to RTL.

This should also be the case in LO Impress, but it isn't.

(This bug is probably very old, possibly as old as Impress itself, but I haven't tried it with earlier versions yet.)

Steps to Reproduce:
1. Be in editing mode of an Impress object's text box.
2. Set the direction to RTL and the alignment to justified.
3. Enter a single character (say "a")
2. Press Ctrl + Left-Shift
3. Press Ctrl + Right-Shift

Actual Results:
After step (3.), the text should switch to the left side of the box, then switch to the right with step (4.) -  along with the direction indicator.

Expected Results:
No switches in direction.


Reproducible: Always


User Profile Reset: No



Additional Info:
Comment 1 Eyal Rozenberg 2018-11-15 13:15:11 UTC
This is indeed the case. I hope there's a dupe for this bug, otherwise it's a bit embarrassing that it's only being reported now...
Comment 2 Xisco Faulí 2018-11-15 13:16:13 UTC
(In reply to Eyal Rozenberg from comment #1)
> This is indeed the case. I hope there's a dupe for this bug, otherwise it's
> a bit embarrassing that it's only being reported now...

Do you reproduce it with older versions of LibreOffice?
Comment 3 Eyal Rozenberg 2018-11-15 13:34:51 UTC
(In reply to Xisco Faulí from comment #2)
> Do you reproduce it with older versions of LibreOffice?

Reproduced with :

Version: 6.1.0.3
Build ID: efb621ed25068d70781dc026f7e9c5187a4decd1
CPU threads: 4; OS: Linux 4.9; UI render: default; VCL: gtk2; 
Locale: he-IL (en_IL); Calc: group threaded
Comment 4 Xisco Faulí 2018-11-15 14:25:10 UTC
Thanks, Anyway, let's put it back to UNCONFIRMED until a third person confirms it...
Comment 5 Shai Berger 2018-11-15 20:49:25 UTC
I confirm that pressing Ctrl+Shift seems to do nothing whatsoever in Impress, whether it be the left or right pair, and whether the direction is RTL or LTR to start with.

Version: 6.1.3.2
Build ID: 1:6.1.3-1
CPU threads: 4; OS: Linux 4.18; UI render: default; VCL: gtk3_kde5; 
Locale: en-US (en_IL.UTF-8); Calc: group threaded
Comment 6 QA Administrators 2019-11-16 03:41:12 UTC Comment hidden (obsolete)
Comment 7 Eyal Rozenberg 2019-11-16 11:25:01 UTC
Bug still manifests with:

Version: 6.3.2.2
Build ID: 1:6.3.2-1
CPU threads: 4; OS: Linux 5.2; UI render: default; VCL: gtk3; 
Locale: he-IL (en_IL); UI-Language: en-US
Comment 8 QA Administrators 2022-01-09 03:41:06 UTC Comment hidden (obsolete)
Comment 9 Eyal Rozenberg 2022-01-09 17:42:07 UTC
Bug still manifests with:

Version: 7.4.0.0.alpha0+ / LibreOffice Community
Build ID: 250e4886d85a7e131da76f181b3fa7be02d1a76d
CPU threads: 4; OS: Linux 5.10; UI render: default; VCL: gtk3
Locale: en-IL (en_IL); UI: en-US
Comment 10 Eyal Rozenberg 2022-08-13 16:28:00 UTC
So, this is a UI inconsistency between the different LO apps. And - I doubt it would be difficult to fix. Is there a valid reason why this is the case, or is it just an oversight?
Comment 11 Heiko Tietze 2022-08-15 08:45:00 UTC
Hard-coded key combination implemented in Writer sw/source/uibase/docvw/edtwin.cxx

        case CommandEventId::ModKeyChange :
        {
            const CommandModKeyData* pCommandData = rCEvt.GetModKeyData();
            if (!pCommandData->IsDown() && pCommandData->IsMod1() && !pCommandData->IsMod2())
            {
                sal_uInt16 nSlot = 0;
                if(pCommandData->IsLeftShift() && !pCommandData->IsRightShift())
                    nSlot = SID_ATTR_PARA_LEFT_TO_RIGHT;
                else if(!pCommandData->IsLeftShift() && pCommandData->IsRightShift())
                    nSlot = SID_ATTR_PARA_RIGHT_TO_LEFT;
                if(nSlot && SW_MOD()->GetCTLOptions().IsCTLFontEnabled())
                    GetView().GetViewFrame()->GetDispatcher()->Execute(nSlot);
            }
        }

Not sure where this should go in Draw/Impress. But potentially an easy hack.