Bug 447700

Summary: Right-to-left (RTL) issues with animation timeline
Product: [Applications] krita Reporter: Alvin Wong <alvin>
Component: AnimationAssignee: Krita Bugs <krita-bugs-null>
Status: CONFIRMED ---    
Severity: normal CC: eoinoneill1991, zayed.alsaidi
Priority: NOR Keywords: rtl
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: Other   
Latest Commit: Version Fixed In:
Attachments: Animation timeline in RTL
Animation timeline in LTR

Description Alvin Wong 2021-12-30 15:52:24 UTC
Created attachment 144970 [details]
Animation timeline in RTL

There seems to be some issues with RTL, where the layout is mirrored:

1. Some buttons that should be above the layer list is placed at the wrong side
2. Frame number is offset
3. The layout of the layer list rows are not mirrored
4. The playback/seeking buttons don't have their icons mirrored
5. When dragging left and right using the horizontal scrollbar, the movement direction is wrong

However, before we fix any of these we should think about whether the timeline shall be mirrored for RTL. The material design guide [1] states that "[a]nything depicting the passage of time should be mirrored", but then also states that "[d]o not mirror media playback buttons and the media progress indicator as they refer to the direction of tape being played, not the direction of time". If this is worth referencing then a possible solution is to explicitly set the layout direction of the animation timeline to be left-to-right and call it done.

This requires input from RTL users. Comments from experts would be even better.

[1]: https://material.io/design/usability/bidirectionality.html#mirroring-elements
Comment 1 Alvin Wong 2021-12-30 15:53:00 UTC
Created attachment 144971 [details]
Animation timeline in LTR

For reference, this is how it looks in LTR.
Comment 2 Eoin O'Neill 2022-01-03 21:36:41 UTC
Hi Alvin,

I'll go ahead and confirm this, though I haven't tried it yet myself. It looks like some modifications to some of the layouting math needs to be made for RTL layout considerations. I'm also not super happy with the frame number alignment in either RTL or LTR, so some modifications would be nice there anyway...

Out of curiosity, are the timeline transport controls working as expected and the icons are just backwards?
Comment 3 Alvin Wong 2022-01-04 08:28:42 UTC
(In reply to Eoin O'Neill from comment #2)
> Out of curiosity, are the timeline transport controls working as expected
> and the icons are just backwards?

Well, "expected" is a vague concept... the button to the right of the "Stop" button is "Back", and if you expect all of the layout to simply be mirrored, then yes that seems working as expected.
Comment 4 Zayed Al-Saidi 2022-01-05 20:10:26 UTC
(In reply to Alvin Wong from comment #0)
> Created attachment 144970 [details]
> Animation timeline in RTL
> 
> There seems to be some issues with RTL, where the layout is mirrored:
> 
> 1. Some buttons that should be above the layer list is placed at the wrong
> side
> 2. Frame number is offset
> 3. The layout of the layer list rows are not mirrored
> 4. The playback/seeking buttons don't have their icons mirrored
> 5. When dragging left and right using the horizontal scrollbar, the movement
> direction is wrong

I would add the default layout of workspace should be mirrored as well in RTL mode.

> However, before we fix any of these we should think about whether the
> timeline shall be mirrored for RTL. The material design guide [1] states
> that "[a]nything depicting the passage of time should be mirrored", but then
> also states that "[d]o not mirror media playback buttons and the media
> progress indicator as they refer to the direction of tape being played, not
> the direction of time". If this is worth referencing then a possible
> solution is to explicitly set the layout direction of the animation timeline
> to be left-to-right and call it done.
> 
> This requires input from RTL users. Comments from experts would be even
> better.
> 
> [1]:
> https://material.io/design/usability/bidirectionality.html#mirroring-elements

Please don't follow that guideline. It is weird!!  Now I understand the weird behavior of Android application.
Comment 5 Alvin Wong 2022-01-06 08:01:01 UTC
(In reply to Zayed Al-Saidi from comment #4)
> Please don't follow that guideline. It is weird!!  Now I understand the
> weird behavior of Android application.

Thanks for the comment. I did find more sources that concurs that media playback are always LTR:

- https://rtlstyling.com/posts/rtl-styling#media-player-icons
- https://engineering.atspotify.com/2019/04/15/right-to-left-the-mirror-world/ (in the "Exceptions" paragraph)
- https://github.com/exaile/exaile/issues/144

And a user on the Krita Artists forum also thinks the timeline should be LTR: https://krita-artists.org/t/feedback-needed-from-krita-users-who-speak-arabic-or-hebrew/34492/9

Do you agree with them?
---

By the way, should sliders (e.g. the "Speed" slider in the screenshot) be mirrored to have the bar extend from right to left too?
Comment 6 Zayed Al-Saidi 2022-01-06 10:03:53 UTC
(In reply to Alvin Wong from comment #5)
> (In reply to Zayed Al-Saidi from comment #4)
> > Please don't follow that guideline. It is weird!!  Now I understand the
> > weird behavior of Android application.
> 
> Thanks for the comment. I did find more sources that concurs that media
> playback are always LTR:
> 
> - https://rtlstyling.com/posts/rtl-styling#media-player-icons
> -
> https://engineering.atspotify.com/2019/04/15/right-to-left-the-mirror-world/
> (in the "Exceptions" paragraph)
> - https://github.com/exaile/exaile/issues/144
> 
> And a user on the Krita Artists forum also thinks the timeline should be
> LTR:
> https://krita-artists.org/t/feedback-needed-from-krita-users-who-speak-
> arabic-or-hebrew/34492/9
> 
> Do you agree with them?
Sure, I don't agree because we as RTL user start looking from right to left and this is the opposite! For media player, it is somehow  accepted since the UI is very simple and every  thing is  force to be LTR mode.  To do that in Krita the whole dock must be LTR which will weird when everything is in RTL mode. 

> ---
> 
> By the way, should sliders (e.g. the "Speed" slider in the screenshot) be
> mirrored to have the bar extend from right to left too?
The slider should follow the layout of the timeline dock. If it is RTL the progress should start from right (0%)  to left (100%)
Comment 7 Alvin Wong 2022-01-30 10:23:50 UTC
How about we first fix the current RTL layout, then we can consider adding an option to force the timeline to be in LTR for those who like it better?
Comment 8 Zayed Al-Saidi 2022-01-30 12:33:54 UTC
(In reply to Alvin Wong from comment #7)
> How about we first fix the current RTL layout, then we can consider adding
> an option to force the timeline to be in LTR for those who like it better?

That is the optimum solution.