From dbd00f0eddab92e19b791c60770909b32d84afe5 Mon Sep 17 00:00:00 2001 From: Jens Granseuer Date: Sat, 27 Oct 2007 13:59:36 +0000 Subject: [PATCH] reduce the number if XCURSOR ifdefs and get rid of the special treatment 2007-10-27 Jens Granseuer * appearance-style.c: (cursor_size_scale_value_changed_cb), (update_cursor_size_scale), (cursor_theme_changed), (prepare_list): * appearance-themes.c: (theme_load_from_gconf): * theme-util.h: reduce the number if XCURSOR ifdefs and get rid of the special treatment for the default cursor theme 2007-10-27 Jens Granseuer * gnome-theme-info.c: (look_for_cursor_theme), (read_cursor_fonts), (gnome_theme_init): ensure we always have the "default" cursor theme in the list svn path=/trunk/; revision=8214 --- capplets/appearance/ChangeLog | 8 +++ capplets/appearance/appearance-style.c | 65 +++++++++---------------- capplets/appearance/appearance-themes.c | 4 +- capplets/appearance/theme-util.h | 10 ++-- capplets/common/ChangeLog | 6 +++ capplets/common/gnome-theme-info.c | 10 ++-- 6 files changed, 53 insertions(+), 50 deletions(-) diff --git a/capplets/appearance/ChangeLog b/capplets/appearance/ChangeLog index baeb924ea..3eb7676e7 100644 --- a/capplets/appearance/ChangeLog +++ b/capplets/appearance/ChangeLog @@ -1,3 +1,11 @@ +2007-10-27 Jens Granseuer + + * appearance-style.c: (cursor_size_scale_value_changed_cb), + (update_cursor_size_scale), (cursor_theme_changed), (prepare_list): + * appearance-themes.c: (theme_load_from_gconf): + * theme-util.h: reduce the number if XCURSOR ifdefs and get rid of the + special treatment for the default cursor theme + 2007-10-27 Jens Granseuer If the cursor theme changes, and the currently set size is not diff --git a/capplets/appearance/appearance-style.c b/capplets/appearance/appearance-style.c index 97d4cd8ad..9a2d75a76 100644 --- a/capplets/appearance/appearance-style.c +++ b/capplets/appearance/appearance-style.c @@ -370,10 +370,33 @@ cursor_size_changed_cb (int size, AppearanceData *data) gconf_client_set_int (data->client, CURSOR_SIZE_KEY, size, NULL); } +static void +cursor_size_scale_value_changed_cb (GtkRange *range, AppearanceData *data) +{ + GnomeThemeCursorInfo *theme; + gchar *name; + + name = gconf_client_get_string (data->client, CURSOR_THEME_KEY, NULL); + if (name == NULL) + return; + + theme = gnome_theme_cursor_info_find (name); + g_free (name); + + if (theme) { + gint size; + + size = g_array_index (theme->sizes, gint, (int) gtk_range_get_value (range)); + cursor_size_changed_cb (size, data); + } +} +#endif + static void update_cursor_size_scale (GnomeThemeCursorInfo *theme, AppearanceData *data) { +#ifdef HAVE_XCURSOR GtkWidget *cursor_size_scale; GtkWidget *cursor_size_label; GtkWidget *cursor_size_small_label; @@ -441,8 +464,8 @@ update_cursor_size_scale (GnomeThemeCursorInfo *theme, if (size != gconf_size) cursor_size_changed_cb (size, data); -} #endif +} static void cursor_theme_changed (GConfPropertyEditor *peditor, @@ -456,9 +479,7 @@ cursor_theme_changed (GConfPropertyEditor *peditor, if (value && (name = gconf_value_get_string (value))) theme = gnome_theme_cursor_info_find (name); -#ifdef HAVE_XCURSOR update_cursor_size_scale (theme, data); -#endif gtk_widget_set_sensitive (glade_xml_get_widget (data->xml, "cursor_themes_delete"), theme_is_writable (theme, THEME_TYPE_CURSOR)); @@ -526,29 +547,6 @@ cursor_theme_delete_cb (GtkWidget *button, AppearanceData *data) generic_theme_delete ("cursor_themes_list", THEME_TYPE_CURSOR, data); } -#ifdef HAVE_XCURSOR -static void -cursor_size_scale_value_changed_cb (GtkRange *range, AppearanceData *data) -{ - GnomeThemeCursorInfo *theme; - gchar *name; - - name = gconf_client_get_string (data->client, CURSOR_THEME_KEY, NULL); - if (name == NULL) - return; - - theme = gnome_theme_cursor_info_find (name); - g_free (name); - - if (theme) { - gint size; - - size = g_array_index (theme->sizes, gint, (int) gtk_range_get_value (range)); - cursor_size_changed_cb (size, data); - } -} -#endif - static void add_to_treeview (const gchar *tv_name, const gchar *theme_name, @@ -762,11 +760,7 @@ prepare_list (AppearanceData *data, GtkWidget *list, ThemeType type, GCallback c case THEME_TYPE_CURSOR: themes = gnome_theme_cursor_info_find_all (); thumbnail = NULL; -#ifdef HAVE_XCURSOR key = CURSOR_THEME_KEY; -#else - key = CURSOR_FONT_KEY; -#endif generator = NULL; thumb_cb = NULL; break; @@ -816,17 +810,6 @@ prepare_list (AppearanceData *data, GtkWidget *list, ThemeType type, GCallback c } g_list_free (themes); -#ifdef HAVE_XCURSOR - if (type == THEME_TYPE_CURSOR && !gnome_theme_cursor_info_find ("default")) { - GtkTreeIter i; - gtk_list_store_insert_with_values (store, &i, 0, - COL_LABEL, _("Default Pointer"), - COL_NAME, "default", - COL_THUMBNAIL, NULL, - -1); - } -#endif - sort_model = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (store)); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (sort_model), COL_LABEL, GTK_SORT_ASCENDING); diff --git a/capplets/appearance/appearance-themes.c b/capplets/appearance/appearance-themes.c index e790d4384..e9376578b 100644 --- a/capplets/appearance/appearance-themes.c +++ b/capplets/appearance/appearance-themes.c @@ -245,11 +245,9 @@ theme_load_from_gconf (GConfClient *client) if (theme->icon_theme_name == NULL) theme->icon_theme_name = g_strdup ("gnome"); -#ifdef HAVE_XCURSOR theme->cursor_theme_name = gconf_client_get_string (client, CURSOR_THEME_KEY, NULL); +#ifdef HAVE_XCURSOR theme->cursor_size = gconf_client_get_int (client, CURSOR_SIZE_KEY, NULL); -#else - theme->cursor_theme_name = gconf_client_get_string (client, CURSOR_FONT_KEY, NULL); #endif if (theme->cursor_theme_name == NULL) theme->cursor_theme_name = g_strdup ("default"); diff --git a/capplets/appearance/theme-util.h b/capplets/appearance/theme-util.h index 1f9d982e1..9eec3d054 100644 --- a/capplets/appearance/theme-util.h +++ b/capplets/appearance/theme-util.h @@ -22,15 +22,19 @@ #define METACITY_THEME_KEY "/apps/metacity/general/theme" #define ICON_THEME_KEY "/desktop/gnome/interface/icon_theme" #define COLOR_SCHEME_KEY "/desktop/gnome/interface/gtk_color_scheme" -#define CURSOR_FONT_KEY "/desktop/gnome/peripherals/mouse/cursor_font" -#define CURSOR_THEME_KEY "/desktop/gnome/peripherals/mouse/cursor_theme" -#define CURSOR_SIZE_KEY "/desktop/gnome/peripherals/mouse/cursor_size" #define LOCKDOWN_KEY "/desktop/gnome/lockdown/disable_theme_settings" #define BACKGROUND_KEY "/desktop/gnome/background/picture_filename" #define APPLICATION_FONT_KEY "/desktop/gnome/interface/font_name" #define DESKTOP_FONT_KEY "/apps/nautilus/preferences/desktop_font" #define MONOSPACE_FONT_KEY "/desktop/gnome/interface/monospace_font_name" +#ifdef HAVE_XCURSOR +# define CURSOR_THEME_KEY "/desktop/gnome/peripherals/mouse/cursor_theme" +# define CURSOR_SIZE_KEY "/desktop/gnome/peripherals/mouse/cursor_size" +#else +# define CURSOR_THEME_KEY "/desktop/gnome/peripherals/mouse/cursor_font" +#endif + enum { COL_THUMBNAIL, COL_LABEL, diff --git a/capplets/common/ChangeLog b/capplets/common/ChangeLog index b09304d71..b2103b206 100644 --- a/capplets/common/ChangeLog +++ b/capplets/common/ChangeLog @@ -1,3 +1,9 @@ +2007-10-27 Jens Granseuer + + * gnome-theme-info.c: (look_for_cursor_theme), (read_cursor_fonts), + (gnome_theme_init): ensure we always have the "default" cursor theme in + the list + 2007-10-27 Jens Granseuer * gnome-theme-info.c (gnome_theme_is_writable): diff --git a/capplets/common/gnome-theme-info.c b/capplets/common/gnome-theme-info.c index 1c3487549..9ff1c4fef 100644 --- a/capplets/common/gnome-theme-info.c +++ b/capplets/common/gnome-theme-info.c @@ -1085,7 +1085,7 @@ look_for_cursor_theme (const gchar *theme_dir) { gchar *cursors_dir = g_build_filename (theme_dir, "cursors", NULL); - if (g_file_test (cursors_dir, G_FILE_TEST_IS_DIR) || g_str_has_suffix (theme_dir, "default")) + if (g_file_test (cursors_dir, G_FILE_TEST_IS_DIR)) read_cursor_theme (theme_dir); g_free (cursors_dir); @@ -1801,7 +1801,7 @@ read_cursor_fonts (void) theme_info = gnome_theme_cursor_info_new (); - filename = g_build_filename (GNOMECC_DATA_DIR "/pixmaps", builtins[i][3], NULL); + filename = g_build_filename (GNOMECC_DATA_DIR, "pixmaps", builtins[i][3], NULL); theme_info->thumbnail = gdk_pixbuf_new_from_file (filename, NULL); g_free (filename); @@ -1980,7 +1980,11 @@ gnome_theme_init (gboolean *monitor_not_added) result = add_top_icon_theme_dir_monitor (top_theme_dir_uri, &real_monitor_not_added, 0, NULL); gnome_vfs_uri_unref (top_theme_dir_uri); -#ifndef HAVE_XCURSOR +#ifdef HAVE_XCURSOR + /* make sure we have the default theme */ + if (!gnome_theme_cursor_info_find ("default")) + read_cursor_theme ("default"); +#else /* If we don't have Xcursor, use the built-in cursor fonts instead */ read_cursor_fonts (); #endif