X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Frendercolor.cc;h=be9521bf5fded0bd44c9f8b95e8897a15b9d0967;hb=41a03629c9f166f7a1b427ed1634b44c6c38da6e;hp=eb3ffdbc3e3cf3957621ec3fa1501a9df360d5aa;hpb=3fe7bded58fb82fd2c1c2a5f9ad2e8f453fa0609;p=chaz%2Fopenbox diff --git a/otk/rendercolor.cc b/otk/rendercolor.cc index eb3ffdbc..be9521bf 100644 --- a/otk/rendercolor.cc +++ b/otk/rendercolor.cc @@ -8,6 +8,12 @@ #include "display.hh" #include "screeninfo.hh" +extern "C" { +#ifdef HAVE_STDIO_H +# include +#endif +} + namespace otk { std::map *RenderColor::_cache = 0; @@ -47,13 +53,12 @@ void RenderColor::create() { unsigned long color = _blue | _green << 8 | _red << 16; - printf("CREATE COLOR: %lx\n", color); - // try get a gc from the cache CacheItem *item = _cache[_screen][color]; if (item) { _gc = item->gc; + _pixel = item->pixel; ++item->count; } else { XGCValues gcv; @@ -81,7 +86,7 @@ void RenderColor::create() assert(_gc); // insert into the cache - item = new CacheItem(_gc); + item = new CacheItem(_gc, _pixel); _cache[_screen][color] = item; ++item->count; } @@ -94,8 +99,6 @@ RenderColor::~RenderColor() CacheItem *item = _cache[_screen][color]; assert(item); // it better be in the cache ... - printf("DESTROY COLOR: %lx %d\n", color, item->count); - if (--item->count <= 0) { // remove from the cache XFreeGC(**display, _gc);