all repos — tint2 @ 83b6d1ac729c903e61922cac3c11dc323daf3a67

fork of the tint2 desktop panel for my custom setup - only minimized windows across all desktops for the taskbar

Changed launcher_icon_theme option to work as an override. If not present, we use xsettings to obtain the current theme or default to hicolor if xsettings not present

git-svn-id: http://tint2.googlecode.com/svn/trunk@733 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
o9000 o9000
commit

83b6d1ac729c903e61922cac3c11dc323daf3a67

parent

f5a18cc4f49100667bc6344883a9f2399e3f47b2

M src/config.csrc/config.c

@@ -635,8 +635,9 @@ free(path);

} else if (strcmp(key, "launcher_icon_theme") == 0) { // if XSETTINGS manager running, tint2 use it. - if (!icon_theme_name) - icon_theme_name = strdup(value); + if (icon_theme_name_config) + free(icon_theme_name_config); + icon_theme_name_config = strdup(value); } else if (strcmp(key, "launcher_icon_asb") == 0) { extract_values(value, &value1, &value2, &value3);
M src/launcher/launcher.csrc/launcher/launcher.c

@@ -52,7 +52,8 @@ int launcher_tooltip_enabled;

int launcher_alpha; int launcher_saturation; int launcher_brightness; -char *icon_theme_name; +char *icon_theme_name_config; +char *icon_theme_name_xsettings; XSettingsClient *xsettings_client; Imlib_Image scale_icon(Imlib_Image original, int icon_size);

@@ -66,7 +67,8 @@ launcher_tooltip_enabled = 0;

launcher_alpha = 100; launcher_saturation = 0; launcher_brightness = 0; - icon_theme_name = NULL; + icon_theme_name_config = NULL; + icon_theme_name_xsettings = NULL; xsettings_client = NULL; }

@@ -124,8 +126,10 @@ free(l->data);

} g_slist_free(panel_config.launcher.list_apps); panel_config.launcher.list_apps = NULL; - free(icon_theme_name); - icon_theme_name = NULL; + free(icon_theme_name_config); + icon_theme_name_config = NULL; + free(icon_theme_name_xsettings); + icon_theme_name_xsettings = NULL; launcher_enabled = 0; }

@@ -474,5 +478,9 @@

// Populates the list_themes list void launcher_load_themes(Launcher *launcher) { - launcher->list_themes = load_themes(icon_theme_name); + launcher->list_themes = load_themes(icon_theme_name_config + ? icon_theme_name_config + : icon_theme_name_xsettings + ? icon_theme_name_xsettings + : "hicolor"); }
M src/launcher/launcher.hsrc/launcher/launcher.h

@@ -40,7 +40,8 @@ extern int launcher_tooltip_enabled;

extern int launcher_alpha; extern int launcher_saturation; extern int launcher_brightness; -extern char *icon_theme_name; // theme name +extern char *icon_theme_name_xsettings; // theme name +extern char *icon_theme_name_config; extern XSettingsClient *xsettings_client; // default global data
M src/launcher/xsettings-client.csrc/launcher/xsettings-client.c

@@ -51,12 +51,12 @@ {

//printf("xsettings_notify_cb\n"); if ((action == XSETTINGS_ACTION_NEW || action == XSETTINGS_ACTION_CHANGED) && name != NULL && setting != NULL) { if (!strcmp(name, "Net/IconThemeName") && setting->type == XSETTINGS_TYPE_STRING) { - if (icon_theme_name) { - if (strcmp(icon_theme_name, setting->data.v_string) == 0) + if (icon_theme_name_xsettings) { + if (strcmp(icon_theme_name_xsettings, setting->data.v_string) == 0) return; - free(icon_theme_name); + free(icon_theme_name_xsettings); } - icon_theme_name = strdup(setting->data.v_string); + icon_theme_name_xsettings = strdup(setting->data.v_string); int i; for (i = 0 ; i < nb_panel ; i++) {
M src/tint2conf/properties.csrc/tint2conf/properties.c

@@ -1867,6 +1867,7 @@ gchar *path = g_build_filename(g_get_home_dir(), ".local/share/applications", NULL);

load_desktop_files(path); g_free(path); + icon_theme_changed(); load_icons(launcher_apps); load_icons(all_apps); fprintf(stderr, "Desktop files loaded\n"); fflush(stderr);
M src/tint2conf/properties_rw.csrc/tint2conf/properties_rw.c

@@ -387,7 +387,7 @@ (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(launcher_spacing)));

fprintf(fp, "launcher_background_id = %d\n", 1 + gtk_combo_box_get_active(GTK_COMBO_BOX(launcher_background))); fprintf(fp, "launcher_icon_size = %d\n", (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(launcher_icon_size))); gchar *icon_theme = get_current_icon_theme(); - if (icon_theme) { + if (icon_theme && !g_str_equal(icon_theme, "")) { fprintf(fp, "launcher_icon_theme = %s\n", icon_theme); g_free(icon_theme); icon_theme = NULL;