X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=utils%2Fgrabclient.c;h=0568d9b911557479c89c795d5fe4399e42efc1d0;hp=2c426be83e797329566c7304e2a819b68274c53b;hb=96a411663168b0ba5432b407a83be55f3df0c802;hpb=bbd0773f2adde4927a6196361d4061e70bf48cd9 diff --git a/utils/grabclient.c b/utils/grabclient.c index 2c426be8..0568d9b9 100644 --- a/utils/grabclient.c +++ b/utils/grabclient.c @@ -104,7 +104,7 @@ static void checkerboard (Screen *screen, Drawable drawable) { Display *dpy = DisplayOfScreen (screen); - int x, y; + unsigned int x, y; int size = 24; XColor fg, bg; XGCValues gcv; @@ -180,7 +180,8 @@ hack_subproc_environment (Display *dpy) When grabbing desktop images, the Window will be unmapped first. */ void -load_random_image (Screen *screen, Window window, Drawable drawable) +load_random_image (Screen *screen, Window window, Drawable drawable, + char **name_ret) { Display *dpy = DisplayOfScreen (screen); char *grabber = get_string_resource ("desktopGrabber", "DesktopGrabber"); @@ -218,4 +219,24 @@ load_random_image (Screen *screen, Window window, Drawable drawable) system (cmd); free (cmd); XSync (dpy, True); + + if (name_ret) + { + Atom type; + int format; + unsigned long nitems, bytesafter; + char *name=NULL; + + *name_ret = NULL; + + if (XGetWindowProperty (dpy, window, + XInternAtom (dpy, XA_XSCREENSAVER_IMAGE_FILENAME, + False), + 0, 1024, False, XA_STRING, + &type, &format, &nitems, &bytesafter, + (unsigned char **) &name) + == Success + && type != None) + *name_ret = strdup(name); + } }