X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Flauncher%2Fxsettings-client.c;h=a66c4b704b82d3743e08435f0910b8ddff531ec8;hb=f49c9bee1c435275576a25e1a99141bf553c8c3a;hp=fba79395096cbb0efbae902ce79d685ff81e1b97;hpb=cb9b34cd2126963c3650feeb48e036fb256e9660;p=chaz%2Ftint2 diff --git a/src/launcher/xsettings-client.c b/src/launcher/xsettings-client.c index fba7939..a66c4b7 100644 --- a/src/launcher/xsettings-client.c +++ b/src/launcher/xsettings-client.c @@ -51,27 +51,21 @@ void xsettings_notify_cb (const char *name, XSettingsAction action, XSettingsSet //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) { - printf("XSETTINGS_ACTION %s\n", setting->data.v_string); if (icon_theme_name) { if (strcmp(icon_theme_name, setting->data.v_string) == 0) return; - g_free(icon_theme_name); + free(icon_theme_name); } icon_theme_name = strdup(setting->data.v_string); - /* - cleanup_launcher(); + int i; - Panel *p; - for (i=0 ; i < nb_panel ; i++) { - p = &panel1[i]; - init_launcher_panel(p); + for (i = 0 ; i < nb_panel ; i++) { + Launcher *launcher = &panel1[i].launcher; + cleanup_launcher_theme(launcher); + launcher_load_themes(launcher); + launcher_load_icons(launcher); + launcher->area.resize = 1; } - /* - MBTrayApp *mb = (MBTrayApp *)data; - mb->theme_name = strdup(setting->data.v_string); - if (mb->theme_cb) - mb->theme_cb(mb, mb->theme_name); - */ } } } @@ -361,7 +355,6 @@ static void read_settings (XSettingsClient *client) XSettingsList *old_list = client->settings; client->settings = NULL; - printf("read_settings 1\n"); old_handler = XSetErrorHandler (ignore_errors); result = XGetWindowProperty (client->display, client->manager_window, server.atom._XSETTINGS_SETTINGS, 0, LONG_MAX, False, server.atom._XSETTINGS_SETTINGS, &type, &format, &n_items, &bytes_after, &data); @@ -419,25 +412,18 @@ XSettingsClient *xsettings_client_new (Display *display, int screen, XSettingsNo client->manager_window = None; client->settings = NULL; - XGrabServer (server.dsp); - client->manager_window = XGetSelectionOwner (server.dsp, server.atom._XSETTINGS_SCREEN); - if (client->manager_window != None) - XSelectInput (server.dsp, client->manager_window, PropertyChangeMask | StructureNotifyMask); - XUngrabServer (client->display); - XFlush (client->display); - - if (client->manager_window == None) { - printf("NO XSETTINGS manager, tint2 use config 'launcher_icon_theme'.\n"); - free (client); - return NULL; - } - if (client->watch) client->watch (RootWindow (display, screen), True, StructureNotifyMask, client->cb_data); check_manager_window (client); - return client; + if (client->manager_window == None) { + printf("NO XSETTINGS manager, tint2 use config 'launcher_icon_theme'.\n"); + free (client); + return NULL; + } + else + return client; }