scroll to the current theme whenever theme previews are re-done.
void on_font_active_font_set(GtkFontButton *w, gpointer data)
{
+ if (mapping) return;
+
preview_update_set_active_font(write_font(w, "ActiveWindow"));
}
void on_font_inactive_font_set(GtkFontButton *w, gpointer data)
{
+ if (mapping) return;
+
preview_update_set_inactive_font(write_font(w, "InactiveWindow"));
}
void on_font_menu_header_font_set(GtkFontButton *w, gpointer data)
{
+ if (mapping) return;
+
preview_update_set_menu_header_font(write_font(w, "MenuHeader"));
}
void on_font_menu_item_font_set(GtkFontButton *w, gpointer data)
{
+ if (mapping) return;
+
preview_update_set_menu_item_font(write_font(w, "MenuItem"));
}
void on_font_display_font_set(GtkFontButton *w, gpointer data)
{
+ if (mapping) return;
+
preview_update_set_osd_font(write_font(w, "OnScreenDisplay"));
}
sn_launchee_context_setup_window
(sn_cx, GDK_WINDOW_XWINDOW(GDK_WINDOW(mainwin->window)));
- gtk_widget_show_all(mainwin);
-
if (sn_cx)
sn_launchee_context_complete(sn_cx);
if (obc_theme_install)
theme_install(obc_theme_install);
+ /* the main window is not shown here ! it is shown when the theme previews
+ are completed */
gtk_main();
- preview_update_set_list_store(NULL);
preview_update_set_active_font(NULL);
preview_update_set_inactive_font(NULL);
preview_update_set_menu_header_font(NULL);
<widget class="GtkWindow" id="main_window">
<property name="border_width">13</property>
- <property name="visible">True</property>
<property name="title" translatable="yes">Openbox Configuration Manager</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="can_focus">True</property>
<property name="show_style">True</property>
<property name="show_size">True</property>
- <property name="use_font">True</property>
+ <property name="use_font">False</property>
<property name="use_size">False</property>
<property name="focus_on_click">True</property>
<signal name="font_set" handler="on_font_inactive_font_set" last_modification_time="Fri, 25 May 2007 16:03:13 GMT"/>
<property name="can_focus">True</property>
<property name="show_style">True</property>
<property name="show_size">True</property>
- <property name="use_font">True</property>
+ <property name="use_font">False</property>
<property name="use_size">False</property>
<property name="focus_on_click">True</property>
<signal name="font_set" handler="on_font_menu_header_font_set" last_modification_time="Fri, 25 May 2007 16:03:17 GMT"/>
<property name="can_focus">True</property>
<property name="show_style">True</property>
<property name="show_size">True</property>
- <property name="use_font">True</property>
+ <property name="use_font">False</property>
<property name="use_size">False</property>
<property name="focus_on_click">True</property>
<signal name="font_set" handler="on_font_menu_item_font_set" last_modification_time="Fri, 25 May 2007 16:03:20 GMT"/>
<property name="can_focus">True</property>
<property name="show_style">True</property>
<property name="show_size">True</property>
- <property name="use_font">True</property>
+ <property name="use_font">False</property>
<property name="use_size">False</property>
<property name="focus_on_click">True</property>
<signal name="font_set" handler="on_font_display_font_set" last_modification_time="Fri, 25 May 2007 16:03:23 GMT"/>
<property name="can_focus">True</property>
<property name="show_style">True</property>
<property name="show_size">True</property>
- <property name="use_font">True</property>
+ <property name="use_font">False</property>
<property name="use_size">False</property>
<property name="focus_on_click">True</property>
<signal name="font_set" handler="on_font_active_font_set" last_modification_time="Fri, 25 May 2007 16:03:09 GMT"/>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Copyright (c) 2003-2007
Dana Jansens <danakj@orodu.net>
-Tim Riley <tr@slackzone.org>
-Javeed Shaikh <syscrash2k@gmail.com></property>
+Tim Riley <tr@slackzone.org></property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
#include "preview_update.h"
+#include "main.h"
static gboolean restart_theme_preview_update = TRUE;
+static GtkTreeView *tree_view = NULL;
static GtkListStore *list_store = NULL;
static gchar *title_layout = NULL;
static RrFont *active_window_font = NULL;
list_store, NULL);
}
-void preview_update_set_list_store(GtkListStore *ls)
+void preview_update_set_tree_view(GtkTreeView *tr, GtkListStore *ls)
{
+ g_assert(!!tr == !!ls);
+
if (list_store) g_idle_remove_by_data(list_store);
+ tree_view = tr;
list_store = ls;
if (list_store) preview_update_all();
if (restart_theme_preview_update) {
if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(ls), &iter))
- return;
+ return FALSE;
restart_theme_preview_update = FALSE;
} else {
if (!gtk_tree_model_iter_next(GTK_TREE_MODEL(ls), &iter)) {
+ GtkTreePath *path;
+
restart_theme_preview_update = TRUE;
- return;
+
+ gtk_tree_view_get_cursor(tree_view, &path, NULL);
+ gtk_tree_view_scroll_to_cell(tree_view, path, NULL,
+ FALSE, 0, 0);
+ gtk_tree_path_free(path);
+
+ gtk_widget_show_all(mainwin);
+
+ return FALSE;
}
}
inactive_window_font, menu_title_font,
menu_item_font, osd_font),
-1);
+
+ return TRUE;
}
void preview_update_all();
-void preview_update_set_list_store (GtkListStore *ls);
+void preview_update_set_tree_view (GtkTreeView *tr, GtkListStore *ls);
void preview_update_set_active_font (RrFont *f);
void preview_update_set_inactive_font (RrFont *f);
void preview_update_set_menu_header_font (RrFont *f);
gchar *s = N_("A preferences manager for Openbox");
gchar *s = N_("Copyright (c) 2003-2007\n"
"Dana Jansens <danakj@orodu.net>\n"
- "Tim Riley <tr@slackzone.org>\n"
- "Javeed Shaikh <syscrash2k@gmail.com>");
+ "Tim Riley <tr@slackzone.org>");
#include "gettext.h"
#include "archive.h"
#include "theme.h"
+#include "preview.h"
static gboolean mapping = FALSE;
/* widget setup */
theme_store = gtk_list_store_new(2, G_TYPE_STRING, GDK_TYPE_PIXBUF);
gtk_tree_view_set_model(GTK_TREE_VIEW(w), GTK_TREE_MODEL(theme_store));
- preview_update_set_list_store(theme_store);
+ preview_update_set_tree_view(GTK_TREE_VIEW(w), theme_store);
g_object_unref (theme_store);
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(w)),
if ((name = archive_install(path))) {
GtkWidget *w;
- GtkTreePath *path;
GList *it;
gint i;
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_view_scroll_to_cell(GTK_TREE_VIEW(w), path, NULL,
- FALSE, 0, 0);
+ gtk_tree_path_free(path);
}
g_free(name);
gchar *p;
GList *it, *next;
gint i;
+ GtkTreePath *path = NULL;
RrFont *active, *inactive, *menu_t, *menu_i, *osd;
1, NULL,
-1);
- if(!strcmp(name, it->data)) {
- GtkTreePath *path;
+ if(!strcmp(name, it->data))
path = gtk_tree_path_new_from_indices(i, -1);
- gtk_tree_view_set_cursor(GTK_TREE_VIEW(w), path, NULL, FALSE);
- gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(w), path, NULL,
- FALSE, 0, 0);
- }
-
++i;
}
preview_update_all();
+ /* do this after starting the preview update */
+ if (path) {
+ gtk_tree_view_set_cursor(GTK_TREE_VIEW(w), path, NULL, FALSE);
+ gtk_tree_path_free(path);
+ }
+
g_free(name);
}