try to scroll to theme. Currently appears to be a little broken somewhere.

Tue May 14 12:29:35 2002  Jonathan Blandford  <jrb@redhat.com>

	* theme-switcher.c (read_themes): try to scroll to theme.
	Currently appears to be a little broken somewhere.

Tue May 14 12:08:17 2002  Jonathan Blandford  <jrb@redhat.com>

	* theme-common.c (theme_common_init): confirm that the ~/.themes/
	directory exists.
Also:
Clean up ui-props a little.
commit fix to mouse properties
This commit is contained in:
Jonathan Blandford 2002-05-14 16:34:14 +00:00 committed by Jonathan Blandford
parent 331ec2dfa3
commit b87cde513f
7 changed files with 64 additions and 14 deletions

View file

@ -103,14 +103,17 @@ read_themes (GladeXML *dialog)
GList *gtk_theme_list;
GList *list;
GtkTreeModel *model;
GtkTreeView *tree_view;
gchar *current_theme;
gint i = 0;
gboolean current_theme_found = FALSE;
GtkTreeRowReference *row_ref = NULL;
client = gconf_client_get_default ();
gtk_theme_list = theme_common_get_list ();
model = gtk_tree_view_get_model (GTK_TREE_VIEW (WID ("theme_treeview")));
tree_view = GTK_TREE_VIEW (WID ("theme_treeview"));
model = gtk_tree_view_get_model (tree_view);
setting_model = TRUE;
gtk_list_store_clear (GTK_LIST_STORE (model));
@ -137,15 +140,21 @@ read_themes (GladeXML *dialog)
if (strcmp (current_theme, info->name) == 0)
{
GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("theme_treeview")));
GtkTreeSelection *selection;
GtkTreePath *path;
selection = gtk_tree_view_get_selection (tree_view);
gtk_tree_selection_select_iter (selection, &iter);
path = gtk_tree_model_get_path (model, &iter);
row_ref = gtk_tree_row_reference_new (model, path);
gtk_tree_path_free (path);
current_theme_found = TRUE;
}
if (i == MAX_ELEMENTS_BEFORE_SCROLLING)
{
GtkRequisition rectangle;
gtk_widget_size_request (WID ("theme_treeview"), &rectangle);
gtk_widget_size_request (GTK_WIDGET (tree_view), &rectangle);
gtk_widget_set_usize (WID ("theme_swindow"), -1, rectangle.height);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (WID ("theme_swindow")),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
@ -155,14 +164,29 @@ read_themes (GladeXML *dialog)
if (! current_theme_found)
{
GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("theme_treeview")));
GtkTreeSelection *selection = gtk_tree_view_get_selection (tree_view);
GtkTreeIter iter;
GtkTreePath *path;
gtk_list_store_prepend (GTK_LIST_STORE (model), &iter);
gtk_list_store_set (GTK_LIST_STORE (model), &iter,
THEME_NAME_COLUMN, current_theme,
-1);
gtk_tree_selection_select_iter (selection, &iter);
path = gtk_tree_model_get_path (model, &iter);
row_ref = gtk_tree_row_reference_new (model, path);
gtk_tree_path_free (path);
}
if (row_ref)
{
GtkTreePath *path;
path = gtk_tree_row_reference_get_path (row_ref);
gtk_tree_view_scroll_to_cell (tree_view, path, NULL, TRUE, 0.5, 0.0);
gtk_tree_path_free (path);
gtk_tree_row_reference_free (row_ref);
}
setting_model = FALSE;
@ -276,7 +300,7 @@ show_manage_themes (GtkWidget *button, gpointer data)
if (!gnome_vfs_uri_exists (uri)) {
/* Create the directory */
gnome_vfs_make_directory_for_uri (uri, 775);
gnome_vfs_make_directory_for_uri (uri, 0775);
}
gnome_vfs_uri_unref (uri);