summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/lang/english.lang14
-rw-r--r--apps/lang/francais.lang14
-rw-r--r--apps/menus/display_menu.c5
-rw-r--r--apps/settings.h1
-rw-r--r--apps/settings_list.c2
-rw-r--r--firmware/drivers/lcd-scroll.c10
6 files changed, 44 insertions, 2 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index c41c819a7b..b0c7aed8f7 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -16498,6 +16498,20 @@
16498 </voice> 16498 </voice>
16499</phrase> 16499</phrase>
16500<phrase> 16500<phrase>
16501 id: LANG_DISABLE_MAINMENU_SCROLLING
16502 desc: Disable main menu scrolling
16503 user: core
16504 <source>
16505 *: "Disable main menu scrolling"
16506 </source>
16507 <dest>
16508 *: "Disable main menu scrolling"
16509 </dest>
16510 <voice>
16511 *: "Disable main menu scrolling"
16512 </voice>
16513</phrase>
16514<phrase>
16501 id: LANG_REMAINING 16515 id: LANG_REMAINING
16502 desc: Playing Time 16516 desc: Playing Time
16503 user: core 16517 user: core
diff --git a/apps/lang/francais.lang b/apps/lang/francais.lang
index 55b7ae9f63..ce907372b0 100644
--- a/apps/lang/francais.lang
+++ b/apps/lang/francais.lang
@@ -15080,3 +15080,17 @@
15080 *: "Français" 15080 *: "Français"
15081 </voice> 15081 </voice>
15082</phrase> 15082</phrase>
15083<phrase>
15084 id: LANG_DISABLE_MAINMENU_SCROLLING
15085 desc: Disable main menu scrolling
15086 user: core
15087 <source>
15088 *: "Disable main menu scrolling"
15089 </source>
15090 <dest>
15091 *: "Désactiver défilement dans le menu principal"
15092 </dest>
15093 <voice>
15094 *: "Désactiver défilement dans le menu principal"
15095 </voice>
15096</phrase>
diff --git a/apps/menus/display_menu.c b/apps/menus/display_menu.c
index c5c5e6d908..2ce566a888 100644
--- a/apps/menus/display_menu.c
+++ b/apps/menus/display_menu.c
@@ -331,6 +331,7 @@ MENUITEM_SETTING(list_accel_start_delay,
331MENUITEM_SETTING(list_accel_wait, &global_settings.list_accel_wait, NULL); 331MENUITEM_SETTING(list_accel_wait, &global_settings.list_accel_wait, NULL);
332#endif /* HAVE_WHEEL_ACCELERATION */ 332#endif /* HAVE_WHEEL_ACCELERATION */
333MENUITEM_SETTING(offset_out_of_view, &global_settings.offset_out_of_view, NULL); 333MENUITEM_SETTING(offset_out_of_view, &global_settings.offset_out_of_view, NULL);
334MENUITEM_SETTING(disable_mainmenu_scrolling, &global_settings.disable_mainmenu_scrolling, NULL);
334MENUITEM_SETTING(screen_scroll_step, &global_settings.screen_scroll_step, NULL); 335MENUITEM_SETTING(screen_scroll_step, &global_settings.screen_scroll_step, NULL);
335MENUITEM_SETTING(scroll_paginated, &global_settings.scroll_paginated, NULL); 336MENUITEM_SETTING(scroll_paginated, &global_settings.scroll_paginated, NULL);
336MENUITEM_SETTING(list_wraparound, &global_settings.list_wraparound, NULL); 337MENUITEM_SETTING(list_wraparound, &global_settings.list_wraparound, NULL);
@@ -343,7 +344,9 @@ MAKE_MENU(scroll_settings_menu, ID2P(LANG_SCROLL_MENU), 0, Icon_NOICON,
343#ifdef HAVE_REMOTE_LCD 344#ifdef HAVE_REMOTE_LCD
344 &remote_scroll_sets, 345 &remote_scroll_sets,
345#endif 346#endif
346 &offset_out_of_view, &screen_scroll_step, 347 &offset_out_of_view,
348 &disable_mainmenu_scrolling,
349 &screen_scroll_step,
347 &scroll_paginated, 350 &scroll_paginated,
348 &list_wraparound, 351 &list_wraparound,
349 &list_order, 352 &list_order,
diff --git a/apps/settings.h b/apps/settings.h
index 056f40df6a..1343538b0b 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -686,6 +686,7 @@ struct user_settings
686 int screen_scroll_step; 686 int screen_scroll_step;
687 int show_path_in_browser; /* 0=off, 1=current directory, 2=full path */ 687 int show_path_in_browser; /* 0=off, 1=current directory, 2=full path */
688 bool offset_out_of_view; 688 bool offset_out_of_view;
689 bool disable_mainmenu_scrolling;
689 unsigned char icon_file[MAX_FILENAME+1]; 690 unsigned char icon_file[MAX_FILENAME+1];
690 unsigned char viewers_icon_file[MAX_FILENAME+1]; 691 unsigned char viewers_icon_file[MAX_FILENAME+1];
691 unsigned char font_file[MAX_FILENAME+1]; /* last font */ 692 unsigned char font_file[MAX_FILENAME+1]; /* last font */
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 98e8dec5a8..8ec434bd9b 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1319,6 +1319,8 @@ const struct settings_list settings[] = {
1319#endif 1319#endif
1320 OFFON_SETTING(0, offset_out_of_view, LANG_SCREEN_SCROLL_VIEW, 1320 OFFON_SETTING(0, offset_out_of_view, LANG_SCREEN_SCROLL_VIEW,
1321 false, "Screen Scrolls Out Of View", NULL), 1321 false, "Screen Scrolls Out Of View", NULL),
1322 OFFON_SETTING(0, disable_mainmenu_scrolling, LANG_DISABLE_MAINMENU_SCROLLING,
1323 false, "Disable main menu scrolling", NULL),
1322 INT_SETTING(F_PADTITLE, scroll_step, LANG_SCROLL_STEP, 6, "scroll step", 1324 INT_SETTING(F_PADTITLE, scroll_step, LANG_SCROLL_STEP, 6, "scroll step",
1323 UNIT_PIXEL, 1, LCD_WIDTH, 1, NULL, NULL, lcd_scroll_step), 1325 UNIT_PIXEL, 1, LCD_WIDTH, 1, NULL, NULL, lcd_scroll_step),
1324 INT_SETTING(F_PADTITLE, screen_scroll_step, LANG_SCREEN_SCROLL_STEP, 16, 1326 INT_SETTING(F_PADTITLE, screen_scroll_step, LANG_SCREEN_SCROLL_STEP, 16,
diff --git a/firmware/drivers/lcd-scroll.c b/firmware/drivers/lcd-scroll.c
index 895cf98cba..8ab91ef642 100644
--- a/firmware/drivers/lcd-scroll.c
+++ b/firmware/drivers/lcd-scroll.c
@@ -24,6 +24,8 @@
24/* This file is meant to be #included by scroll_engine.c (twice if a remote 24/* This file is meant to be #included by scroll_engine.c (twice if a remote
25 * is present) */ 25 * is present) */
26 26
27#include "misc.h"
28#include "settings.h"
27#ifndef LCDFN /* Not compiling for remote - define macros for main LCD. */ 29#ifndef LCDFN /* Not compiling for remote - define macros for main LCD. */
28#define LCDFN(fn) lcd_ ## fn 30#define LCDFN(fn) lcd_ ## fn
29#define LCDM(ma) LCD_ ## ma 31#define LCDM(ma) LCD_ ## ma
@@ -195,8 +197,14 @@ static void LCDFN(scroll_worker)(void)
195 s = &si->scroll[index]; 197 s = &si->scroll[index];
196 198
197 /* check pause */ 199 /* check pause */
198 if (TIME_BEFORE(current_tick, s->start_tick)) 200 if (TIME_BEFORE(current_tick, s->start_tick)) {
199 continue; 201 continue;
202 }
203
204 if (global_settings.disable_mainmenu_scrolling && get_current_activity() == ACTIVITY_MAINMENU) {
205 // No scrolling on the main menu if disabled (to not break themes with lockscreens)
206 continue;
207 }
200 208
201 s->start_tick = current_tick; 209 s->start_tick = current_tick;
202 210