diff options
Diffstat (limited to 'apps/gui/statusbar-skinned.c')
-rw-r--r-- | apps/gui/statusbar-skinned.c | 38 |
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 */ | ||
81 | static struct viewport inbuilt[NB_SCREENS]; | ||
80 | struct viewport *sb_skin_get_info_vp(enum screen_type screen) | 82 | struct 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 | ||
85 | inline bool sb_skin_get_state(enum screen_type screen) | 104 | inline 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 | ||