Link Here
|
34 |
|
34 |
|
35 |
static int WallpaperDisplayPrivateIndex; |
35 |
static int WallpaperDisplayPrivateIndex; |
36 |
|
36 |
|
|
|
37 |
Damage damage; |
38 |
|
37 |
typedef struct _WallpaperBackground |
39 |
typedef struct _WallpaperBackground |
38 |
{ |
40 |
{ |
39 |
char *image; |
41 |
char *image; |
Link Here
|
375 |
CWBackPixel | CWBorderPixel | CWColormap, |
377 |
CWBackPixel | CWBorderPixel | CWColormap, |
376 |
&attr); |
378 |
&attr); |
377 |
|
379 |
|
|
|
380 |
/** LOR **/ |
381 |
damage = XDamageCreate (dpy, s->root , XDamageReportRawRectangles); |
382 |
/** LOR **/ |
383 |
|
378 |
XSetWMProperties (dpy, ws->fakeDesktop, NULL, NULL, |
384 |
XSetWMProperties (dpy, ws->fakeDesktop, NULL, NULL, |
379 |
programArgv, programArgc, &xsh, &xwmh, NULL); |
385 |
programArgv, programArgc, &xsh, &xwmh, NULL); |
380 |
|
386 |
|
Link Here
|
392 |
|
398 |
|
393 |
XFixesDestroyRegion (dpy, region); |
399 |
XFixesDestroyRegion (dpy, region); |
394 |
|
400 |
|
|
|
401 |
/*** LOR2 |
395 |
XMapWindow (dpy, ws->fakeDesktop); |
402 |
XMapWindow (dpy, ws->fakeDesktop); |
396 |
XLowerWindow (dpy, ws->fakeDesktop); |
403 |
XLowerWindow (dpy, ws->fakeDesktop); |
|
|
404 |
****/ |
397 |
} |
405 |
} |
398 |
|
406 |
|
399 |
static void |
407 |
static void |
Link Here
|
405 |
XDestroyWindow (s->display->display, ws->fakeDesktop); |
413 |
XDestroyWindow (s->display->display, ws->fakeDesktop); |
406 |
|
414 |
|
407 |
ws->fakeDesktop = None; |
415 |
ws->fakeDesktop = None; |
|
|
416 |
|
417 |
/*** LOR4 ****/ |
418 |
if (damage) |
419 |
XDamageDestroy (s->display->display, damage); |
420 |
/*** LOR4 ****/ |
421 |
|
408 |
} |
422 |
} |
409 |
|
423 |
|
410 |
static void |
424 |
static void |
Link Here
|
585 |
CompScreen *s; |
599 |
CompScreen *s; |
586 |
WALLPAPER_DISPLAY (d); |
600 |
WALLPAPER_DISPLAY (d); |
587 |
|
601 |
|
|
|
602 |
|
603 |
/*** LOR5-1 ***/ |
604 |
int damage_event,damage_error; |
605 |
/*** LOR5-1 ***/ |
606 |
|
607 |
|
588 |
UNWRAP (wd, d, handleEvent); |
608 |
UNWRAP (wd, d, handleEvent); |
589 |
(*d->handleEvent) (d, event); |
609 |
(*d->handleEvent) (d, event); |
|
|
610 |
|
611 |
|
590 |
WRAP (wd, d, handleEvent, wallpaperHandleEvent); |
612 |
WRAP (wd, d, handleEvent, wallpaperHandleEvent); |
591 |
|
613 |
|
|
|
614 |
|
592 |
for (s = d->screens; s; s = s->next) |
615 |
for (s = d->screens; s; s = s->next) |
593 |
{ |
616 |
{ |
|
|
617 |
|
618 |
|
594 |
WALLPAPER_SCREEN (s); |
619 |
WALLPAPER_SCREEN (s); |
595 |
|
620 |
|
|
|
621 |
/*** LOR5 ****/ |
622 |
Display *dpy=s->display->display; |
623 |
XDamageQueryExtension (dpy, &damage_event, &damage_error); |
624 |
if (event->type == damage_event + XDamageNotify) |
625 |
{ |
626 |
XDamageNotifyEvent *de = (XDamageNotifyEvent*) event; |
627 |
|
628 |
|
629 |
if (s->root == de->drawable) |
630 |
{ |
631 |
|
632 |
XMapWindow ( dpy , ws->fakeDesktop); |
633 |
XLowerWindow ( dpy , ws->fakeDesktop); |
634 |
} |
635 |
} |
636 |
/*** LOR5 ****/ |
637 |
|
638 |
|
596 |
if (!s->desktopWindowCount && ws->fakeDesktop == None |
639 |
if (!s->desktopWindowCount && ws->fakeDesktop == None |
597 |
&& ws->nBackgrounds) |
640 |
&& ws->nBackgrounds) |
598 |
createFakeDesktopWindow (s); |
641 |
createFakeDesktopWindow (s); |