Window root;
Visual *visual;
Damage damage;
- long timestamp;
int width;
int height;
int timer_active;
+ long timestamp;
+ long configTimestamp;
+
Atom singleton;
char command[1024];
int command_continuation;
if (res == NULL)
return 0;
- DBG(("%s timestamp %ld (last %ld)\n", DisplayString(dpy), res->timestamp, ctx->display->timestamp));
- if (res->timestamp == ctx->display->timestamp &&
+ DBG(("%s timestamp %ld (last %ld), config %ld (last %ld)\n",
+ DisplayString(dpy),
+ res->timestamp, ctx->timestamp,
+ res->configTimestamp, ctx->configTimestamp));
+ if (res->timestamp == ctx->timestamp &&
+ res->configTimestamp == ctx->configTimestamp &&
res->timestamp != res->configTimestamp) { /* mutter be damned */
XRRFreeScreenResources(res);
return 0;
}
- ctx->display->timestamp = res->timestamp;
+ ctx->timestamp = res->timestamp;
+ ctx->configTimestamp = res->configTimestamp;
+
for (n = 0; n < ctx->nclone; n++) {
struct output *output = &ctx->clones[n].src;
XRROutputInfo *o;
output->x, output->y, output->rotation, output->mode.id,
c->x, c->y, c->rotation, c->mode));
- changed |= output->rotation |= c->rotation;
+ changed |= output->rotation != c->rotation;
output->rotation = c->rotation;
changed |= output->x != c->x;