diff options
Diffstat (limited to 'apps/gui/statusbar-skinned.c')
-rw-r--r-- | apps/gui/statusbar-skinned.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/apps/gui/statusbar-skinned.c b/apps/gui/statusbar-skinned.c index f79672c0d9..960cf67d4d 100644 --- a/apps/gui/statusbar-skinned.c +++ b/apps/gui/statusbar-skinned.c | |||
@@ -87,8 +87,9 @@ int sb_postproccess(enum screen_type screen, struct wps_data *data) | |||
87 | /* hide the sb's default viewport because it has nasty effect with stuff | 87 | /* hide the sb's default viewport because it has nasty effect with stuff |
88 | * not part of the statusbar, | 88 | * not part of the statusbar, |
89 | * hence .sbs's without any other vps are unsupported*/ | 89 | * hence .sbs's without any other vps are unsupported*/ |
90 | struct skin_viewport *vp = skin_find_item(VP_DEFAULT_LABEL, SKIN_FIND_VP, data); | 90 | struct skin_viewport *vp = skin_find_item(VP_DEFAULT_LABEL_STRING, SKIN_FIND_VP, data); |
91 | struct skin_element *next_vp = data->tree->next; | 91 | struct skin_element *tree = SKINOFFSETTOPTR(get_skin_buffer(data), data->tree); |
92 | struct skin_element *next_vp = SKINOFFSETTOPTR(get_skin_buffer(data), tree->next); | ||
92 | 93 | ||
93 | if (vp) | 94 | if (vp) |
94 | { | 95 | { |
@@ -105,9 +106,9 @@ int sb_postproccess(enum screen_type screen, struct wps_data *data) | |||
105 | return 1; | 106 | return 1; |
106 | } | 107 | } |
107 | 108 | ||
108 | static char *infovp_label[NB_SCREENS]; | 109 | static OFFSETTYPE(char*) infovp_label[NB_SCREENS]; |
109 | static char *oldinfovp_label[NB_SCREENS]; | 110 | static OFFSETTYPE(char*) oldinfovp_label[NB_SCREENS]; |
110 | void sb_set_info_vp(enum screen_type screen, char *label) | 111 | void sb_set_info_vp(enum screen_type screen, OFFSETTYPE(char*) label) |
111 | { | 112 | { |
112 | infovp_label[screen] = label; | 113 | infovp_label[screen] = label; |
113 | } | 114 | } |
@@ -116,15 +117,19 @@ struct viewport *sb_skin_get_info_vp(enum screen_type screen) | |||
116 | { | 117 | { |
117 | struct wps_data *data = skin_get_gwps(CUSTOM_STATUSBAR, screen)->data; | 118 | struct wps_data *data = skin_get_gwps(CUSTOM_STATUSBAR, screen)->data; |
118 | struct skin_viewport *vp = NULL; | 119 | struct skin_viewport *vp = NULL; |
120 | char *label; | ||
119 | if (oldinfovp_label[screen] && | 121 | if (oldinfovp_label[screen] && |
120 | strcmp(oldinfovp_label[screen], infovp_label[screen])) | 122 | (oldinfovp_label[screen] != infovp_label[screen])) |
121 | { | 123 | { |
122 | /* UI viewport changed, so force a redraw */ | 124 | /* UI viewport changed, so force a redraw */ |
123 | oldinfovp_label[screen] = infovp_label[screen]; | 125 | oldinfovp_label[screen] = infovp_label[screen]; |
124 | viewportmanager_theme_enable(screen, false, NULL); | 126 | viewportmanager_theme_enable(screen, false, NULL); |
125 | viewportmanager_theme_undo(screen, true); | 127 | viewportmanager_theme_undo(screen, true); |
126 | } | 128 | } |
127 | vp = skin_find_item(infovp_label[screen], SKIN_FIND_UIVP, data); | 129 | label = SKINOFFSETTOPTR(get_skin_buffer(data), infovp_label[screen]); |
130 | if (infovp_label[screen] == VP_DEFAULT_LABEL) | ||
131 | label = VP_DEFAULT_LABEL_STRING; | ||
132 | vp = skin_find_item(label, SKIN_FIND_UIVP, data); | ||
128 | if (!vp) | 133 | if (!vp) |
129 | return NULL; | 134 | return NULL; |
130 | if (vp->parsed_fontid == 1) | 135 | if (vp->parsed_fontid == 1) |
@@ -270,7 +275,7 @@ void sb_skin_init(void) | |||
270 | { | 275 | { |
271 | FOR_NB_SCREENS(i) | 276 | FOR_NB_SCREENS(i) |
272 | { | 277 | { |
273 | oldinfovp_label[i] = NULL; | 278 | oldinfovp_label[i] = VP_DEFAULT_LABEL; |
274 | } | 279 | } |
275 | } | 280 | } |
276 | 281 | ||