[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/kcontrol/screensaver
From:       Luboš Luňák <l.lunak () kde ! org>
Date:       2005-11-30 19:01:57
Message-ID: 1133377317.377578.20259.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 484430 by lunakl:

Don't mix colormaps for multiple windows.



 M  +7 -4      kswidget.cpp  
 M  +4 -0      kswidget.h  


--- trunk/KDE/kdebase/workspace/kcontrol/screensaver/kswidget.cpp #484429:484430
@@ -8,7 +8,7 @@
 #endif
 
 KSWidget::KSWidget( QWidget* parent )
-    : QX11EmbedWidget( parent )
+    : QX11EmbedWidget( parent ), colormap( None )
 {
 // use visual with support for double-buffering, for opengl
 // this code is duplicated in kdebase/kdesktop/lock/
@@ -22,9 +22,6 @@
         if( XVisualInfo* i = glXChooseVisual( x11Display(), x11Screen(), attribs ))
         {
             visual = i->visual;
-            static Colormap colormap = 0;
-            if( colormap != 0 )
-                XFreeColormap( x11Display(), colormap );
             colormap = XCreateColormap( x11Display(), RootWindow( x11Display(), \
x11Screen()), visual, AllocNone );  attrs.colormap = colormap;
             flags |= CWColormap;
@@ -37,4 +34,10 @@
 #endif
 }
 
+KSWidget::~KSWidget()
+{
+    if( colormap != None )
+        XFreeColormap( x11Display(), colormap );
+}
+
 #include "kswidget.moc"
--- trunk/KDE/kdebase/workspace/kcontrol/screensaver/kswidget.h #484429:484430
@@ -3,12 +3,16 @@
 
 #include <QX11EmbedWidget>
 #include <qwidget.h>
+#include <X11/X.h>
 
 class KSWidget : public QX11EmbedWidget
 {
     Q_OBJECT
 public:
     KSWidget( QWidget *parent = NULL );
+    virtual ~KSWidget();
+private:
+    Colormap colormap;
 };
 
 #endif


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic