[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.4/kdebase
From: Luboš Luňák <l.lunak () kde ! org>
Date: 2005-07-21 14:46:40
Message-ID: 1121957200.056222.22547.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 437324 by lunakl:
Backport r73813 (no flickering for opengl).
M +4 -3 kcontrol/screensaver/Makefile.am
A kcontrol/screensaver/configure.in.in
M +3 -4 kcontrol/screensaver/kssmonitor.h
A kcontrol/screensaver/kswidget.cpp [License: no copyright]
A kcontrol/screensaver/kswidget.h [License: no copyright]
M +1 -1 kcontrol/screensaver/testwin.cpp
M +2 -2 kcontrol/screensaver/testwin.h
M +2 -2 kdesktop/lock/Makefile.am
M +9 -0 kdesktop/lock/configure.in.in
M +33 -16 kdesktop/lock/lockprocess.cc
M +1 -1 kdesktop/lock/lockprocess.h
--- branches/KDE/3.4/kdebase/kcontrol/screensaver/Makefile.am #437323:437324
@@ -1,11 +1,12 @@
-AM_CPPFLAGS = $(all_includes)
+AM_CPPFLAGS = $(GLINC) $(all_includes)
kde_module_LTLIBRARIES = kcm_screensaver.la
-kcm_screensaver_la_SOURCES = advanceddialogimpl.ui scrnsave.cpp testwin.cpp \
saverlist.cpp saverconfig.cpp advanceddialog.cpp +kcm_screensaver_la_SOURCES = \
advanceddialogimpl.ui scrnsave.cpp testwin.cpp saverlist.cpp \ + \
saverconfig.cpp advanceddialog.cpp kswidget.cpp kcm_screensaver_la_LDFLAGS = -module \
-avoid-version $(all_libraries) -no-undefined
-kcm_screensaver_la_LIBADD = $(LIB_KSYCOCA) $(DPMSLIB)
+kcm_screensaver_la_LIBADD = $(LIB_KSYCOCA) $(DPMSLIB) $(GLLIB)
METASOURCES = AUTO
noinst_HEADERS = scrnsave.h
--- branches/KDE/3.4/kdebase/kcontrol/screensaver/kssmonitor.h #437323:437324
@@ -1,13 +1,12 @@
#ifndef KSSMONITOR_H
#define KSSMONITOR_H
-#include <qxembed.h>
+#include "kswidget.h"
-class KSSMonitor : public QXEmbed
+class KSSMonitor : public KSWidget
{
- Q_OBJECT
public:
- KSSMonitor( QWidget *parent ) : QXEmbed( parent ) {}
+ KSSMonitor( QWidget *parent ) : KSWidget( parent ) {}
// we don't want no steenking palette change
virtual void setPalette( const QPalette & ) {}
--- branches/KDE/3.4/kdebase/kcontrol/screensaver/testwin.cpp #437323:437324
@@ -4,7 +4,7 @@
class QXEmbed;
TestWin::TestWin()
- : QXEmbed(0, 0, WStyle_Customize | WStyle_NoBorder | WX11BypassWM )
+ : KSWidget(0, 0, WStyle_Customize | WStyle_NoBorder | WX11BypassWM )
{
setFocusPolicy(StrongFocus);
KWin::setState( winId(), NET::StaysOnTop );
--- branches/KDE/3.4/kdebase/kcontrol/screensaver/testwin.h #437323:437324
@@ -1,9 +1,9 @@
#ifndef TESTWIN_H
#define TESTWIN_H
-#include <qxembed.h>
+#include "kswidget.h"
-class TestWin : public QXEmbed
+class TestWin : public KSWidget
{
Q_OBJECT
public:
--- branches/KDE/3.4/kdebase/kdesktop/lock/Makefile.am #437323:437324
@@ -1,8 +1,8 @@
## Makefile.am of kdebase/kdesktop/lock
-INCLUDES = -I.. -I$(top_srcdir)/kcheckpass -I$(top_srcdir)/kdmlib $(all_includes)
+INCLUDES = -I.. -I$(top_srcdir)/kcheckpass -I$(top_srcdir)/kdmlib $(GLINC) \
$(all_includes) kdesktop_lock_LDFLAGS = $(all_libraries) $(KDE_RPATH)
-kdesktop_lock_LDADD = ../libkdesktopsettings.la ../../kdmlib/libdmctl.la \
$(LIB_KIO) $(LIB_XF86MISC) +kdesktop_lock_LDADD = ../libkdesktopsettings.la \
../../kdmlib/libdmctl.la $(LIB_KIO) $(LIB_XF86MISC) $(GLLIB)
####### Files
--- branches/KDE/3.4/kdebase/kdesktop/lock/configure.in.in #437323:437324
@@ -26,3 +26,12 @@
fi
LDFLAGS="$xss_save_ldflags"
+
+AC_HAVE_GL(
+ [
+ AC_CHECK_LIB(GL,glXChooseVisual,
+ [
+ AC_DEFINE(HAVE_GLXCHOOSEVISUAL, 1, [Define if you have glXChooseVisual()])
+ ])
+ ],[]
+ )
--- branches/KDE/3.4/kdebase/kdesktop/lock/lockprocess.cc #437323:437324
@@ -80,6 +80,10 @@
#include <X11/extensions/xf86misc.h>
#endif
+#ifdef HAVE_GLXCHOOSEVISUAL
+#include <GL/glx.h>
+#endif
+
#define LOCK_GRACE_DEFAULT 5000
#define AUTOLOGOUT_DEFAULT 600
@@ -95,6 +99,7 @@
//
LockProcess::LockProcess(bool child, bool useBlankOnly)
: QWidget(0L, "saver window", WX11BypassWM),
+ mOpenGLVisual(0),
child_saver(child),
mParent(0),
mUseBlankOnly(useBlankOnly),
@@ -138,10 +143,6 @@
gXA_VROOT = XInternAtom (qt_xdisplay(), "__SWM_VROOT", False);
gXA_SCREENSAVER_VERSION = XInternAtom (qt_xdisplay(), "_SCREENSAVER_VERSION", \
False);
- XWindowAttributes attrs;
- XGetWindowAttributes(qt_xdisplay(), winId(), &attrs);
- mColorMap = attrs.colormap;
-
connect(&mHackProc, SIGNAL(processExited(KProcess *)),
SLOT(hackExited(KProcess *)));
@@ -371,6 +372,10 @@
kdDebug(1204) << "Screensaver is type OpenGL and OpenGL is forbidden" << endl;
mForbidden = true;
}
+ if (saverTypes[i] == "OpenGL")
+ {
+ mOpenGLVisual = true;
+ }
}
}
@@ -390,8 +395,29 @@
//
void LockProcess::createSaverWindow()
{
- // We only create the window once, but we reset its attributes every
- // time.
+ Visual* visual = CopyFromParent;
+ XSetWindowAttributes attrs;
+ int flags = 0;
+#ifdef HAVE_GLXCHOOSEVISUAL
+ if( mOpenGLVisual )
+ {
+ int attribs[] = { GLX_RGBA, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, x11Depth(), \
None }; + 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;
+ XFree( i );
+ }
+ }
+#endif
+ Window w = XCreateWindow( x11Display(), RootWindow( x11Display(), x11Screen()),
+ x(), y(), width(), height(), 0, x11Depth(), InputOutput, visual, flags, \
&attrs ); + create( w );
// Some xscreensaver hacks check for this property
const char *version = "KDE 2.0";
@@ -400,19 +426,10 @@
(unsigned char *) version, strlen(version));
XSetWindowAttributes attr;
- if (mColorMap != None)
- {
- attr.colormap = mColorMap;
- }
- else
- {
- attr.colormap = DefaultColormapOfScreen(
- ScreenOfDisplay(qt_xdisplay(), qt_xscreen()));
- }
attr.event_mask = KeyPressMask | ButtonPressMask | PointerMotionMask |
VisibilityChangeMask | ExposureMask;
XChangeWindowAttributes(qt_xdisplay(), winId(),
- CWEventMask | CWColormap, &attr);
+ CWEventMask, &attr);
// erase();
--- branches/KDE/3.4/kdebase/kdesktop/lock/lockprocess.h #437323:437324
@@ -100,12 +100,12 @@
int mLockGrace;
int mPriority;
bool mBusy;
- Colormap mColorMap;
KProcess mHackProc;
int mRootWidth;
int mRootHeight;
QString mSaverExec;
QString mSaver;
+ bool mOpenGLVisual;
bool child_saver;
QValueList<int> child_sockets;
int mParent;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic