Use imlib2 for taking screenshot; if it fails, use Xlib (issue #574)

This commit is contained in:
o9000 2016-03-27 23:27:34 +02:00
parent dcc163ec0b
commit 955be3658b

View file

@ -567,7 +567,10 @@ void get_snapshot(const char *path)
XSync(server.display, False);
Imlib_Image img = NULL;
imlib_context_set_drawable(panel->temp_pmap);
Imlib_Image img = imlib_create_image_from_drawable(0, 0, 0, panel->area.width, panel->area.height, 1);
if (!img) {
XImage *ximg =
XGetImage(server.display, panel->temp_pmap, 0, 0, panel->area.width, panel->area.height, AllPlanes, ZPixmap);
@ -588,9 +591,7 @@ void get_snapshot(const char *path)
}
XDestroyImage(ximg);
img = imlib_create_image_using_data(panel->area.width, panel->area.height, pixels);
} else {
imlib_context_set_drawable(panel->temp_pmap);
img = imlib_create_image_from_drawable(0, 0, 0, panel->area.width, panel->area.height, 1);
}
}
if (img) {