static void reload (unsigned int, void *closure) { CCSContext *context = (CCSContext *) closure; ccsDisableFileWatch (cFiles->mainWatch); ccsDisableFileWatch (cFiles->kwinWatch); ccsDisableFileWatch (cFiles->shortcutWatch); cFiles->main->reparseConfiguration(); cFiles->kwin->reparseConfiguration(); cFiles->shortcuts->reparseConfiguration(); ccsReadSettings (context); ccsEnableFileWatch (cFiles->mainWatch); ccsEnableFileWatch (cFiles->kwinWatch); ccsEnableFileWatch (cFiles->shortcutWatch); }
static void processFileEvent (unsigned int watchId, void *closure) { IniPrivData *data = (IniPrivData *) closure; char *fileName; /* our ini file has been modified, reload it */ if (data->iniFile) ccsIniClose (data->iniFile); fileName = getIniFileName (data->lastProfile); if (!fileName) return; data->iniFile = ccsIniOpen (fileName); ccsReadSettings (data->context); free (fileName); }
static Bool ccpInitCore (CompPlugin *p, CompCore *c) { CCPCore *cc; CompObject *o; int i; unsigned int *screens; if (!checkPluginABI ("core", CORE_ABIVERSION)) return FALSE; cc = malloc (sizeof (CCPCore)); if (!cc) return FALSE; ccsSetBasicMetadata (TRUE); o = compObjectFind (&core.base, COMP_OBJECT_TYPE_DISPLAY, NULL); if (o) { CompScreen *s; CORE_DISPLAY (o); for (s = d->screens, i = 0; s; s = s->next, i++); screens = calloc (i, sizeof (unsigned int)); if (!screens) { free (cc); return FALSE; } for (s = d->screens, i = 0; s; s = s->next) screens[i++] = s->screenNum; cc->context = ccsContextNew (screens, i); free (screens); } else cc->context = ccsContextNew (NULL, 0); if (!cc->context) { free (cc); return FALSE; } ccsReadSettings (cc->context); cc->context->changedSettings = ccsSettingListFree (cc->context->changedSettings, FALSE); cc->applyingSettings = FALSE; cc->reloadHandle = compAddTimeout (0, 0, ccpReload, 0); cc->timeoutHandle = compAddTimeout (CCP_UPDATE_MIN_TIMEOUT, CCP_UPDATE_MAX_TIMEOUT, ccpTimeout, 0); core.base.privates[corePrivateIndex].ptr = cc; WRAP (cc, c, initPluginForObject, ccpInitPluginForObject); WRAP (cc, c, setOptionForPlugin, ccpSetOptionForPlugin); return TRUE; }