summaryrefslogtreecommitdiff
path: root/apps/gui/statusbar-skinned.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/statusbar-skinned.c')
-rw-r--r--apps/gui/statusbar-skinned.c38
1 files changed, 36 insertions, 2 deletions
diff --git a/apps/gui/statusbar-skinned.c b/apps/gui/statusbar-skinned.c
index 9756401ccb..ba46253f5d 100644
--- a/apps/gui/statusbar-skinned.c
+++ b/apps/gui/statusbar-skinned.c
@@ -77,15 +77,49 @@ void sb_skin_data_load(enum screen_type screen, const char *buf, bool isfile)
77 loaded_ok[screen] = success; 77 loaded_ok[screen] = success;
78} 78}
79 79
80/* temporary viewport structs while the non-skinned bar is in the build */
81static struct viewport inbuilt[NB_SCREENS];
80struct viewport *sb_skin_get_info_vp(enum screen_type screen) 82struct viewport *sb_skin_get_info_vp(enum screen_type screen)
81{ 83{
82 return &find_viewport(VP_INFO_LABEL, sb_skin[screen].data)->vp; 84 int bar_setting = global_settings.statusbar;
85#if NB_SCREENS > 1
86 if (screen == SCREEN_REMOTE)
87 bar_setting = global_settings.remote_statusbar;
88#endif
89 if (bar_setting == STATUSBAR_CUSTOM)
90 return &find_viewport(VP_INFO_LABEL, sb_skin[screen].data)->vp;
91 else if (bar_setting == STATUSBAR_OFF)
92 return NULL;
93 else
94 {
95 viewport_set_fullscreen(&inbuilt[screen], screen);
96 /* WE need to return the UI area.. NOT the statusbar area! */
97 if (bar_setting == STATUSBAR_TOP)
98 inbuilt[screen].y = STATUSBAR_HEIGHT;
99 inbuilt[screen].height -= STATUSBAR_HEIGHT;
100 return &inbuilt[screen];
101 }
83} 102}
84 103
85inline bool sb_skin_get_state(enum screen_type screen) 104inline bool sb_skin_get_state(enum screen_type screen)
86{ 105{
87 int skinbars = sb_skin[screen].sync_data->statusbars; 106 int skinbars = sb_skin[screen].sync_data->statusbars;
88 return loaded_ok[screen] && (skinbars & VP_SB_ONSCREEN(screen)); 107 /* Temp fix untill the hardcoded bar is removed */
108 int bar_setting = global_settings.statusbar;
109#if NB_SCREENS > 1
110 if (screen == SCREEN_REMOTE)
111 bar_setting = global_settings.remote_statusbar;
112#endif
113 switch (bar_setting)
114 {
115 case STATUSBAR_CUSTOM:
116 return loaded_ok[screen] && (skinbars & VP_SB_ONSCREEN(screen));
117 case STATUSBAR_TOP:
118 case STATUSBAR_BOTTOM:
119 case STATUSBAR_OFF:
120 return (VP_SB_ONSCREEN(screen));
121 }
122 return false; /* Should never actually get here */
89} 123}
90 124
91 125