tint2conf: force refresh fix
This commit is contained in:
@@ -167,6 +167,7 @@ static void viewRowActivated(GtkTreeView *tree_view, GtkTreePath *path, GtkTreeV
|
||||
|
||||
static void select_first_theme();
|
||||
static void load_all_themes();
|
||||
static void reload_all_themes();
|
||||
|
||||
// ====== Globals ======
|
||||
|
||||
@@ -256,7 +257,7 @@ int main(int argc, char **argv)
|
||||
{"ThemeEdit", GTK_STOCK_PROPERTIES, _("_Edit theme..."), NULL, _("Edit the selected theme"), G_CALLBACK(edit_theme)},
|
||||
{"ThemeMakeDefault", GTK_STOCK_APPLY, _("_Make default"), NULL, _("Replace the default theme with the selected one"), G_CALLBACK(make_selected_theme_default)},
|
||||
{"ThemeRefresh", GTK_STOCK_REFRESH, _("Refresh"), NULL, _("Redraw the selected theme"), G_CALLBACK(refresh_current_theme)},
|
||||
{"RefreshAll", GTK_STOCK_REFRESH, _("Refresh all"), NULL, _("Redraw all themes"), G_CALLBACK(load_all_themes)},
|
||||
{"RefreshAll", GTK_STOCK_REFRESH, _("Refresh all"), NULL, _("Redraw all themes"), G_CALLBACK(reload_all_themes)},
|
||||
{"Quit", GTK_STOCK_QUIT, _("_Quit"), "<control>Q", _("Quit"), G_CALLBACK(gtk_main_quit)},
|
||||
{"HelpMenu", NULL, _("_Help"), NULL, NULL, NULL},
|
||||
{"HelpAbout", GTK_STOCK_ABOUT, _("_About"), "<Control>A", _("About"), G_CALLBACK(menuAbout)}};
|
||||
@@ -837,6 +838,37 @@ static void load_all_themes()
|
||||
}
|
||||
}
|
||||
|
||||
static void reload_all_themes()
|
||||
{
|
||||
ensure_default_theme_exists();
|
||||
|
||||
gtk_list_store_clear(GTK_LIST_STORE(theme_list_store));
|
||||
theme_selection_changed(NULL, NULL);
|
||||
|
||||
gboolean found_themes = FALSE;
|
||||
if (load_user_themes())
|
||||
found_themes = TRUE;
|
||||
if (load_system_themes())
|
||||
found_themes = TRUE;
|
||||
|
||||
if (found_themes) {
|
||||
select_first_theme();
|
||||
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model;
|
||||
gboolean have_iter;
|
||||
|
||||
model = gtk_tree_view_get_model(GTK_TREE_VIEW(g_theme_view));
|
||||
have_iter = gtk_tree_model_get_iter_first(model, &iter);
|
||||
while (have_iter) {
|
||||
gtk_list_store_set(theme_list_store, &iter, COL_SNAPSHOT, NULL, COL_FORCE_REFRESH, TRUE, -1);
|
||||
have_iter = gtk_tree_model_iter_next(model, &iter);
|
||||
}
|
||||
|
||||
g_timeout_add(SNAPSHOT_TICK, (GSourceFunc)update_snapshot, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
static void load_specific_themes(char **paths, int count)
|
||||
{
|
||||
ensure_default_theme_exists();
|
||||
|
||||
Reference in New Issue
Block a user