diff options
Diffstat (limited to 'apps/gui/statusbar-skinned.c')
-rw-r--r-- | apps/gui/statusbar-skinned.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/apps/gui/statusbar-skinned.c b/apps/gui/statusbar-skinned.c index 4dce84b787..8928378781 100644 --- a/apps/gui/statusbar-skinned.c +++ b/apps/gui/statusbar-skinned.c | |||
@@ -112,6 +112,12 @@ void sb_skin_data_load(enum screen_type screen, const char *buf, bool isfile) | |||
112 | struct wps_data *data = sb_skin[screen].data; | 112 | struct wps_data *data = sb_skin[screen].data; |
113 | 113 | ||
114 | int success; | 114 | int success; |
115 | /* We need to disable the theme here or else viewport_set_defaults() | ||
116 | * (which is called in the viewport tag parser) will crash because | ||
117 | * the theme is enabled but sb_set_info_vp() isnt set untill after the sbs | ||
118 | * is parsed. This only affects the default viewport which is ignored | ||
119 | * int he sbs anyway */ | ||
120 | viewportmanager_theme_enable(screen, false, NULL); | ||
115 | success = buf && skin_data_load(screen, data, buf, isfile); | 121 | success = buf && skin_data_load(screen, data, buf, isfile); |
116 | 122 | ||
117 | if (success) | 123 | if (success) |
@@ -136,6 +142,7 @@ void sb_skin_data_load(enum screen_type screen, const char *buf, bool isfile) | |||
136 | 142 | ||
137 | if (!success && isfile) | 143 | if (!success && isfile) |
138 | sb_create_from_settings(screen); | 144 | sb_create_from_settings(screen); |
145 | viewportmanager_theme_undo(screen, false); | ||
139 | } | 146 | } |
140 | static char *infovp_label[NB_SCREENS]; | 147 | static char *infovp_label[NB_SCREENS]; |
141 | static char *oldinfovp_label[NB_SCREENS]; | 148 | static char *oldinfovp_label[NB_SCREENS]; |