diff options
author | Tomer Shalev <shalev.tomer@gmail.com> | 2009-10-05 17:17:30 +0000 |
---|---|---|
committer | Tomer Shalev <shalev.tomer@gmail.com> | 2009-10-05 17:17:30 +0000 |
commit | f7bd7252e14a151217f1a9b7eee6200eb23586a8 (patch) | |
tree | 2a676f3f9dc9248bfb8a9c6b1a39b4197471708c /apps/action.c | |
parent | e04acd8c3e8cbcec4eab0ffe046ec0935a15ab85 (diff) | |
download | rockbox-f7bd7252e14a151217f1a9b7eee6200eb23586a8.tar.gz rockbox-f7bd7252e14a151217f1a9b7eee6200eb23586a8.tar.bz2 rockbox-f7bd7252e14a151217f1a9b7eee6200eb23586a8.zip |
Invert buttons in RTL mode
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22961 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/action.c')
-rw-r--r-- | apps/action.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/apps/action.c b/apps/action.c index ee84706b09..cde57441e7 100644 --- a/apps/action.c +++ b/apps/action.c @@ -34,6 +34,9 @@ #include "settings.h" #include "pcmbuf.h" #include "misc.h" +#if defined(HAVE_LCD_BITMAP) && !defined(BOOTLOADER) +#include "language.h" +#endif static int last_button = BUTTON_NONE|BUTTON_REL; /* allow the ipod wheel to work on startup */ @@ -56,6 +59,20 @@ static int unlock_combo = BUTTON_NONE; static bool screen_has_lock = false; #endif /* HAVE_SOFTWARE_KEYLOCK */ +#if defined(HAVE_LCD_BITMAP) && !defined(BOOTLOADER) +/* + * checks whether the given language and context combination require that the + * button is horizontally inverted to support RTL language + * + */ +static bool rtl_button_flip_needed(int context) +{ + return lang_is_rtl() && ((context == CONTEXT_STD) || + (context & CONTEXT_TREE) || (context & CONTEXT_MAINMENU) || + (context & CONTEXT_TREE)); +} +#endif + /* * do_button_check is the worker function for get_default_action. * returns ACTION_UNKNOWN or the requested return value from the list. @@ -201,6 +218,11 @@ static int get_action_worker(int context, int timeout, context &= ~ALLOW_SOFTLOCK; #endif /* HAS_BUTTON_HOLD */ +#if defined(HAVE_LCD_BITMAP) && !defined(BOOTLOADER) + if (rtl_button_flip_needed(context)) + button = button_flip_horizontally(button); +#endif + /* logf("%x,%x",last_button,button); */ while (1) { |