parentdir = g_build_path(G_DIR_SEPARATOR_S, dir, "..", NULL);
- argv = g_new(gchar*, 7);
+ argv = g_new(gchar*, 9);
argv[0] = g_strdup("tar");
argv[1] = g_strdup("-c");
argv[2] = g_strdup("-z");
argv[3] = g_strdup("-f");
argv[4] = g_strdup(to);
- argv[5] = g_strdup(glob);
- argv[6] = NULL;
- if (g_spawn_sync(parentdir, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL,
+ argv[5] = g_strdup("-C");
+ argv[6] = g_strdup(parentdir);
+ argv[7] = g_strdup(glob);
+ argv[8] = NULL;
+ if (g_spawn_sync(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL,
NULL, &errtxt, &exitcode, &e))
{
if (exitcode != EXIT_SUCCESS)
glob = g_strdup_printf("%s/openbox-3/", name);
- argv = g_new(gchar*, 7);
+ argv = g_new(gchar*, 9);
argv[0] = g_strdup("tar");
argv[1] = g_strdup("-x");
argv[2] = g_strdup("-z");
argv[3] = g_strdup("-f");
argv[4] = g_strdup(file);
- argv[5] = g_strdup(glob);
- argv[6] = NULL;
- if (!g_spawn_sync(to, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL,
+ argv[5] = g_strdup("-C");
+ argv[6] = g_strdup(to);
+ argv[7] = g_strdup(glob);
+ argv[8] = NULL;
+ if (!g_spawn_sync(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL,
NULL, &errtxt, &exitcode, &e))
gtk_msg(GTK_MESSAGE_ERROR, _("Unable to run the \"tar\" command: %s"),
e->message);
static GtkListStore *theme_store;
static void add_theme_dir(const gchar *dirname);
-static void reset_theme_names(GtkWidget *w);
static void on_theme_names_selection_changed(GtkTreeSelection *sel,
gpointer data);
G_CALLBACK(on_theme_names_selection_changed),
NULL);
- reset_theme_names(w);
-
mapping = FALSE;
}
{
gchar *name;
- if ((name = archive_install(path))) {
- GtkWidget *w;
- GList *it;
- gint i;
-
- w = glade_xml_get_widget(glade, "theme_names");
- mapping = TRUE;
- reset_theme_names(w);
- mapping = FALSE;
-
- /* go to the newly installed theme */
- for (it = themes, i = 0; it; it = g_list_next(it), ++i)
- if (!strcmp(it->data, name)) break;
- if (it) {
- GtkTreePath *path;
-
- path = gtk_tree_path_new_from_indices(i, -1);
- gtk_tree_view_set_cursor(GTK_TREE_VIEW(w), path, NULL, FALSE);
- gtk_tree_path_free(path);
- }
-
- g_free(name);
- }
+ if ((name = archive_install(path)))
+ tree_set_string("theme/name", name);
+ g_free(name);
}
-
-
-
-
-
-static void reset_theme_names(GtkWidget *w)
+void theme_load_all()
{
gchar *name;
gchar *p;
GList *it, *next;
gint i;
+ GtkWidget *w;
GtkTreePath *path = NULL;
-
RrFont *active, *inactive, *menu_t, *menu_i, *osd;
+ mapping = TRUE;
+
+ w = get_widget("theme_names");
name = tree_get_string("theme/name", "TheBear");
for (it = themes; it; it = g_list_next(it))
}
g_free(name);
+
+ mapping = FALSE;
}
static void add_theme_dir(const gchar *dirname)