]> Dogcows Code - chaz/openbox/blobdiff - otk/rendercolor.cc
add ABOUT-NLS
[chaz/openbox] / otk / rendercolor.cc
index 568e2c7c752e547ed2426b819b0da9188ed8a76e..5917b00732bba72a70ebb08c10946c3deaad1fba 100644 (file)
@@ -1,13 +1,13 @@
 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
 
-#ifdef    HAVE_CONFIG_H
-#  include "../config.h"
-#endif // HAVE_CONFIG_H
+#include "config.h"
 
 #include "rendercolor.hh"
 #include "display.hh"
 #include "screeninfo.hh"
 
+#include <cstdio>
+
 namespace otk {
 
 std::map<unsigned long, RenderColor::CacheItem*> *RenderColor::_cache = 0;
@@ -33,17 +33,6 @@ RenderColor::RenderColor(int screen, unsigned char red,
   create();
 }
 
-RenderColor::RenderColor(int screen, unsigned char red,
-                        unsigned char green, unsigned char blue)
-  : _screen(screen),
-    _red(red),
-    _green(green),
-    _blue(blue),
-    _gc(0)
-{
-  create();
-}
-
 RenderColor::RenderColor(int screen, RGB rgb)
   : _screen(screen),
     _red(rgb.r),
@@ -63,6 +52,7 @@ void RenderColor::create()
 
   if (item) {
     _gc = item->gc;
+    _pixel = item->pixel;
     ++item->count;
   } else {
     XGCValues gcv;
@@ -82,21 +72,24 @@ void RenderColor::create()
       xcol.pixel = 0;
     }
 
-    gcv.foreground = xcol.pixel;
+    _pixel = xcol.pixel;
+    gcv.foreground = _pixel;
     gcv.cap_style = CapProjecting;
     _gc = XCreateGC(**display, info->rootWindow(),
                    GCForeground | GCCapStyle, &gcv);
     assert(_gc);
 
     // insert into the cache
-    _cache[_screen][color] = new CacheItem(_gc);
+    item = new CacheItem(_gc, _pixel);
+    _cache[_screen][color] = item;
+    ++item->count;
   }
 }
 
 RenderColor::~RenderColor()
 {
   unsigned long color = _blue | _green << 8 | _red << 16;
-  
+
   CacheItem *item = _cache[_screen][color];
   assert(item); // it better be in the cache ...
 
This page took 0.023523 seconds and 4 git commands to generate.