1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index ad9fad6..654c1b3 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -89,8 +89,9 @@ static void toggle_theme(enum screen_type screen, bool force)
         add_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, false,
                                                 do_sbs_update_callback);

-#if LCD_DEPTH > 1
-        screens[screen].backdrop_show(BACKDROP_MAIN);
+#if LCD_DEPTH > 1 || REMOTE_LCD_DEPTH
+        if (screens[screen].depth > 1)
+            screens[screen].backdrop_show(BACKDROP_MAIN);
 #endif
         /* remove the left overs from the previous screen.
          * could cause a tiny flicker. Redo your screen code if that happens */
@@ -146,8 +147,9 @@ static void toggle_theme(enum screen_type screen, bool force)
     {
         FOR_NB_SCREENS(i)
         {
-#if LCD_DEPTH > 1
-            screens[i].backdrop_hide();
+#if LCD_DEPTH > 1 || REMOTE_LCD_DEPTH
+        if (screens[screen].depth > 1)
+            screens[screen].backdrop_hide();
 #endif
             screens[i].stop_scroll();
         }
diff --git a/apps/gui/wps.c b/apps/gui/wps.c
index 3c09822..3330ab3 100644
--- a/apps/gui/wps.c
+++ b/apps/gui/wps.c
@@ -99,8 +99,9 @@ void wps_data_load(enum screen_type screen, const char *buf, bool isfile)
 {
     bool loaded_ok;

-#if LCD_DEPTH > 1
-    screens[screen].backdrop_unload(BACKDROP_SKIN_WPS);
+#if LCD_DEPTH > 1 || LCD_REMOTE_DEPTH > 1
+    if (screens[screen].depth > 1)
+        screens[screen].backdrop_unload(BACKDROP_SKIN_WPS);
 #endif

 #ifndef __PCTOOL__
@@ -563,8 +564,9 @@ static void gwps_leave_wps(void)
     FOR_NB_SCREENS(i)
     {
         gui_wps[i].display->stop_scroll();
-#if LCD_DEPTH > 1
-        gui_wps[i].display->backdrop_show(BACKDROP_MAIN);
+#if LCD_DEPTH > 1 || LCD_REMOTE_DEPTH > 1
+        if (gui_wps[i].display->depth > 1)
+            gui_wps[i].display->backdrop_show(BACKDROP_MAIN);
 #endif

 #ifdef HAVE_LCD_BITMAP
@@ -607,14 +609,14 @@ static void gwps_enter_wps(void)
         display->stop_scroll();
         /* Update the values in the first (default) viewport - in case the user
            has modified the statusbar or colour settings */
-#if LCD_DEPTH > 1
+#if LCD_DEPTH > 1 || LCD_REMOTE_DEPTH > 1
         if (display->depth > 1)
         {
             struct viewport *vp = &find_viewport(VP_DEFAULT_LABEL, gwps->data)->vp;
             vp->fg_pattern = display->get_foreground();
             vp->bg_pattern = display->get_background();
+            display->backdrop_show(BACKDROP_SKIN_WPS);
         }
-        display->backdrop_show(BACKDROP_SKIN_WPS);
 #endif
         /* make the backdrop actually take effect */
         display->clear_display();
@@ -1299,7 +1301,8 @@ void gui_sync_wps_init(void)
            so use the only available ( "global" ) one */
         gui_wps[i].state = &wps_state;
 #if LCD_DEPTH > 1
-        gui_wps[i].display->backdrop_unload(BACKDROP_SKIN_WPS);
+        if (gui_wps[i].display->depth > 1)
+            gui_wps[i].display->backdrop_unload(BACKDROP_SKIN_WPS);
 #endif
         /* must point to the same struct for both screens */
         gui_wps[i].sync_data = &wps_sync_data;
diff --git a/apps/settings.c b/apps/settings.c
index 8d1bcf7..d0eb78e 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -921,7 +921,10 @@ void settings_apply(bool read_disk)

 #if LCD_DEPTH > 1
         FOR_NB_SCREENS(screen)
-            screens[screen].backdrop_show(BACKDROP_MAIN);
+        {
+            if (screens[screen].depth > 1)
+                screens[screen].backdrop_show(BACKDROP_MAIN);
+        }
 #endif

         if ( global_settings.lang_file[0]) {