[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/plasma/shells/screensaver
From: Carlo Segato <brandon.ml () gmail ! com>
Date: 2008-08-26 2:02:24
Message-ID: 1219716144.012392.27858.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 852578 by segato:
fixes for windows
M +8 -5 CMakeLists.txt
M +42 -2 plasmaapp.cpp
M +1 -1 plasmaapp.h
M +1 -1 savercorona.h
--- trunk/KDE/kdebase/workspace/plasma/shells/screensaver/CMakeLists.txt \
#852577:852578 @@ -16,11 +16,14 @@
kde4_add_ui_files(plasma-overlay_SRCS saverconfig.ui)
kde4_add_executable(plasma-overlay ${plasma-overlay_SRCS})
-
-target_link_libraries(plasma-overlay plasma kworkspace ${KDE4_KIO_LIBS})
-if(X11_Xrender_FOUND)
- target_link_libraries(plasma-overlay ${X11_Xrender_LIB})
-endif(X11_Xrender_FOUND)
+if(NOT WIN32)
+ target_link_libraries(plasma-overlay plasma kworkspace ${KDE4_KIO_LIBS})
+ if(X11_Xrender_FOUND)
+ target_link_libraries(plasma-overlay ${X11_Xrender_LIB})
+ endif(X11_Xrender_FOUND)
+else(NOT WIN32)
+ target_link_libraries(plasma-overlay plasma ${KDE4_KIO_LIBS})
+endif(NOT WIN32)
set_target_properties(plasma-overlay PROPERTIES OUTPUT_NAME plasma-overlay)
install(TARGETS plasma-overlay ${INSTALL_TARGETS_DEFAULT_ARGS})
--- trunk/KDE/kdebase/workspace/plasma/shells/screensaver/plasmaapp.cpp \
#852577:852578 @@ -25,6 +25,14 @@
#include "plasmaapp.h"
+#ifdef Q_WS_WIN
+#ifdef _WIN32_WINNT
+#undef _WIN32_WINNT
+#endif
+#define _WIN32_WINNT 0x0500
+#include <windows.h>
+#endif
+
#include <unistd.h>
#ifndef _SC_PHYS_PAGES
@@ -60,19 +68,24 @@
#include "savercorona.h"
#include "saverview.h"
+#ifdef Q_WS_X11
#include <X11/Xlib.h>
#include <X11/extensions/Xrender.h>
+#endif
Atom tag; //FIXME should this be a member var or what?
const unsigned char DIALOG = 1; //FIXME this is really bad code
const unsigned char VIEW = 2;
+#ifdef Q_WS_X11
Display* dpy = 0;
Colormap colormap = 0;
Visual *visual = 0;
+#endif
void checkComposite()
{
+#ifdef Q_WS_X11
dpy = XOpenDisplay(0); // open default display
if (!dpy) {
kError() << "Cannot connect to the X server" << endl;
@@ -104,20 +117,29 @@
kDebug() << (colormap ? "Plasma has an argb visual" : "Plasma lacks an argb \
visual") << visual << colormap;
kDebug() << ((KWindowSystem::compositingActive() && colormap) ? "Plasma can use \
COMPOSITE for effects"
: "Plasma is \
COMPOSITE-less") << "on" << dpy; +#endif
}
PlasmaApp* PlasmaApp::self()
{
if (!kapp) {
checkComposite();
+#ifdef Q_WS_X11
return new PlasmaApp(dpy, visual ? Qt::HANDLE(visual) : 0, colormap ? \
Qt::HANDLE(colormap) : 0); +#else
+ return new PlasmaApp(0, 0, 0);
+#endif
}
return qobject_cast<PlasmaApp*>(kapp);
}
PlasmaApp::PlasmaApp(Display* display, Qt::HANDLE visual, Qt::HANDLE colormap)
+#ifdef Q_WS_X11
: KUniqueApplication(display, visual, colormap),
+#else
+ : KUniqueApplication(),
+#endif
m_corona(0),
m_view(0)
{
@@ -172,6 +194,15 @@
sysctl(mib, 2, &memorySize, &len, NULL, 0);
memorySize /= 1024;
#endif
+#ifdef Q_WS_WIN
+ size_t memorySize;
+
+ MEMORYSTATUSEX statex;
+ statex.dwLength = sizeof (statex);
+ GlobalMemoryStatusEx (&statex);
+
+ memorySize = (statex.ullTotalPhys/1024) + (statex.ullTotalPageFile/1024);
+#endif
// If you have no suitable sysconf() interface and are not FreeBSD,
// then you are out of luck and get a compile error.
#endif
@@ -193,7 +224,9 @@
enableCheats(KCmdLineArgs::parsedArgs()->isSet("cheats"));
//we have to keep an eye on created windows
+#ifdef Q_WS_X11
tag = XInternAtom(QX11Info::display(), "_KDE_SCREENSAVER_OVERRIDE", False);
+#endif
qApp->installEventFilter(this);
// this line initializes the corona.
@@ -291,7 +324,7 @@
}
}
-uint PlasmaApp::viewWinId()
+WId PlasmaApp::viewWinId()
{
if (m_view) {
//kDebug() << m_view->winId();
@@ -344,7 +377,11 @@
bool PlasmaApp::hasComposite()
{
+#ifdef Q_WS_X11
return colormap && KWindowSystem::compositingActive();
+#else
+ return false;
+#endif
}
//I think we need this for when the corona loads the default setup
@@ -403,7 +440,9 @@
m_view->setWindowOpacity(m_idleOpacity);
m_view->showView();
}
+#ifndef Q_WS_WIN
emit viewCreated(m_view->effectiveWinId());
+#endif
}
bool PlasmaApp::eventFilter(QObject *obj, QEvent *event)
@@ -443,8 +482,9 @@
//FIXME when returning from a subdialog to another dialog,
//kbd focus is broken, only esc/enter work
}
-
+#ifdef Q_WS_X11
XChangeProperty(QX11Info::display(), widget->effectiveWinId(), tag, tag, \
8, PropModeReplace, &data, 1); +#endif
kDebug() << "tagged" << widget << widget->effectiveWinId() << (data != \
0); }
}
--- trunk/KDE/kdebase/workspace/plasma/shells/screensaver/plasmaapp.h #852577:852578
@@ -88,7 +88,7 @@
/**
* @return the window id of our view, or 0 if there is none
*/
- uint viewWinId();
+ WId viewWinId();
private Q_SLOTS:
void cleanup();
--- trunk/KDE/kdebase/workspace/plasma/shells/screensaver/savercorona.h \
#852577:852578 @@ -27,7 +27,7 @@
/**
* @short A Corona with desktop-y considerations
*/
-class PLASMA_EXPORT SaverCorona : public Plasma::Corona
+class SaverCorona : public Plasma::Corona
{
Q_OBJECT
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic