aboutsummaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorMathias Gumz <akira at fluxbox dot org>2011-10-21 06:34:37 (GMT)
committerMathias Gumz <akira at fluxbox dot org>2011-10-21 06:34:37 (GMT)
commit4f4d5e25d9a0cf1fc4c0d1a8b7777a560494b7a4 (patch)
treee257b0f849b9f573bb79f852000d6f8272e25960 /util
parent12f44680dfefde602f3387c6d385f4c5e68990e4 (diff)
downloadfluxbox-4f4d5e25d9a0cf1fc4c0d1a8b7777a560494b7a4.zip
fluxbox-4f4d5e25d9a0cf1fc4c0d1a8b7777a560494b7a4.tar.bz2
bugfix: fbsetroot needs to use 24bit visuals as well
12f44680dfefde602f3387c6d385f4c5e68990e4 introduced ARGB visuals. if fluxbox creates 32bit visuals for the container window or the root window: does not work.
Diffstat (limited to 'util')
-rw-r--r--util/fbsetroot.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/util/fbsetroot.cc b/util/fbsetroot.cc
index cb55e16..e18e829 100644
--- a/util/fbsetroot.cc
+++ b/util/fbsetroot.cc
@@ -54,6 +54,11 @@ using std::cerr;
54using std::endl; 54using std::endl;
55using std::string; 55using std::string;
56 56
57inline int getRootDepth(const FbTk::FbWindow& w) {
58 return (w.depth() == 32 ? 24 : w.depth());
59}
60
61
57fbsetroot::fbsetroot(int argc, char **argv, char *dpy_name) 62fbsetroot::fbsetroot(int argc, char **argv, char *dpy_name)
58 : FbTk::App(dpy_name), m_app_name(argv[0]) { 63 : FbTk::App(dpy_name), m_app_name(argv[0]) {
59 64
@@ -213,7 +218,7 @@ void fbsetroot::solid() {
213 pixmap = new Pixmap(XCreatePixmap(display(), 218 pixmap = new Pixmap(XCreatePixmap(display(),
214 root.window(), 219 root.window(),
215 root.width(), root.height(), 220 root.width(), root.height(),
216 root.depth())); 221 getRootDepth(root)));
217 222
218 XFillRectangle(display(), *pixmap, gc.gc(), 0, 0, 223 XFillRectangle(display(), *pixmap, gc.gc(), 0, 0,
219 root.width(), root.height()); 224 root.width(), root.height());
@@ -262,7 +267,7 @@ void fbsetroot::modula(int x, int y) {
262 // bitmap used as tile, needs to have the same depth as background pixmap 267 // bitmap used as tile, needs to have the same depth as background pixmap
263 r_bitmap = XCreatePixmap(display(), 268 r_bitmap = XCreatePixmap(display(),
264 root.window(), 16, 16, 269 root.window(), 16, 16,
265 root.depth()); 270 (root.depth() == 32 ? 24 : root.depth()));
266 271
267 FbTk::Color f(fore, screen), b(back, screen); 272 FbTk::Color f(fore, screen), b(back, screen);
268 273
@@ -286,7 +291,7 @@ void fbsetroot::modula(int x, int y) {
286 pixmap = new Pixmap(XCreatePixmap(display(), 291 pixmap = new Pixmap(XCreatePixmap(display(),
287 root.window(), 292 root.window(),
288 root.width(), root.height(), 293 root.width(), root.height(),
289 root.depth())); 294 getRootDepth(root)));
290 295
291 XFillRectangle(display(), *pixmap, gc.gc(), 0, 0, 296 XFillRectangle(display(), *pixmap, gc.gc(), 0, 0,
292 root.width(), root.height()); 297 root.width(), root.height());
@@ -332,7 +337,7 @@ void fbsetroot::gradient() {
332 pixmap = new Pixmap(XCreatePixmap(display(), 337 pixmap = new Pixmap(XCreatePixmap(display(),
333 root.window(), 338 root.window(),
334 root.width(), root.height(), 339 root.width(), root.height(),
335 root.depth())); 340 getRootDepth(root)));
336 341
337 342
338 XCopyArea(display(), tmp, *pixmap, gc.gc(), 0, 0, 343 XCopyArea(display(), tmp, *pixmap, gc.gc(), 0, 0,