kdebase/kcontrol/background patch
IceFox <[email protected]>
| Newsgroups | gmane.comp.kde.darwin |
|---|---|
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Went through the background kcontrol module and created a patch for the OS X project. One this is that Qt provides a desktop class http://doc.trolltech.com/3.3/qdesktopwidget.html which can be used to obtain the number of screens and the current desktop so are the kwin/x11 calls even needed? I have forwarded this to whom I think is the current author get get it approved. - -Benjamin Meyer -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQE/9xTL1rZ3LTw38vIRAoSjAJ0VaQ6imEI23KS9GOvg2MS9SFf6jACfdbF+ pVlsoWx9lGC1C0+HkwuQ1oc= =4iDI -----END PGP SIGNATURE----- _______________________________________________ KDE-Darwin mailing list [email protected] http://www.opendarwin.org/mailman/listinfo/kde-darwin
background.patch
(text/x-diff, 5.4 KB)
? diff
Index: bgadvanced.cpp
===================================================================
RCS file: /home/kde/kdebase/kcontrol/background/bgadvanced.cpp,v
retrieving revision 1.11
diff -u -3 -p -r1.11 bgadvanced.cpp
--- bgadvanced.cpp 20 Oct 2003 20:29:14 -0000 1.11
+++ bgadvanced.cpp 3 Jan 2004 19:04:17 -0000
@@ -31,6 +31,7 @@
#include <qslider.h>
#include <qspinbox.h>
#include <qwhatsthis.h>
+#include <qapplication.h>
#include <kconfig.h>
#include <kcolorbutton.h>
@@ -44,15 +45,22 @@
#include "bgadvanced.h"
#include "bgadvanced_ui.h"
+#ifdef Q_WS_X11
#include <X11/Xlib.h>
+#endif
/**** BGAdvancedDialog ****/
static QCString desktopConfigname()
{
int desktop=0;
+#ifdef Q_WS_X11
if (qt_xdisplay())
desktop = DefaultScreen(qt_xdisplay());
+#else
+ desktop = QApplication::desktop()->primaryScreen();
+#endif
+
QCString name;
if (desktop == 0)
name = "kdesktoprc";
Index: bgdialog.cpp
===================================================================
RCS file: /home/kde/kdebase/kcontrol/background/bgdialog.cpp,v
retrieving revision 1.33
diff -u -3 -p -r1.33 bgdialog.cpp
--- bgdialog.cpp 1 Dec 2003 23:14:06 -0000 1.33
+++ bgdialog.cpp 3 Jan 2004 19:04:17 -0000
@@ -62,8 +62,14 @@ BGDialog::BGDialog(QWidget* parent, KCon
m_multidesktop = _multidesktop;
m_previewUpdates = true;
+#ifdef Q_WS_X11
m_Max = m_multidesktop ? KWin::numberOfDesktops() : 1;
m_Desk = m_multidesktop ? KWin::currentDesktop() : 1;
+#else
+ m_Max = m_multidesktop ? QApplication::desktop()->numScreens() : 1;
+ m_Desk = m_multidesktop ? QApplication::desktop()->primaryScreen() : 1;
+#endif
+
m_eDesk = m_pGlobals->commonBackground() ? 0 : m_Desk;
m_copyAllDesktops = true;
Index: bgrender.cpp
===================================================================
RCS file: /home/kde/kdebase/kcontrol/background/bgrender.cpp,v
retrieving revision 1.4
diff -u -3 -p -r1.4 bgrender.cpp
--- bgrender.cpp 20 Oct 2003 20:29:14 -0000 1.4
+++ bgrender.cpp 3 Jan 2004 19:04:17 -0000
@@ -28,8 +28,9 @@
#include "bgrender.h"
+#ifdef Q_WS_X11
#include <X11/Xlib.h>
-
+#endif
/**** KBackgroundRenderer ****/
@@ -165,6 +166,7 @@ int KBackgroundRenderer::doBackground(bo
static unsigned int tileHeight = 0;
if( tileWidth == 0 )
{
+#ifdef Q_WS_X11
int tile_val = QPixmap::defaultDepth() >= 24 ? 1 : 2;
// some dithering may be needed even with bpb==15/16, so don't use tileWidth==1
// for them
@@ -172,6 +174,7 @@ int KBackgroundRenderer::doBackground(bo
if( XQueryBestTile( qt_xdisplay(), qt_xrootwin(), tile_val, tile_val,
&tileWidth, &tileHeight ) != Success )
tileWidth = tileHeight = tile_val; // some defaults
+#endif
}
switch (bgmode) {
@@ -388,8 +391,11 @@ wp_out:
return retval;
}
-
+#ifdef Q_WS_X11
extern bool qt_use_xrender; // in Qt ( qapplication_x11.cpp )
+#else
+static bool qt_use_xrender = FALSE;
+#endif
void KBackgroundRenderer::wallpaperBlend( const QRect& d, QImage& wp, int ww, int wh )
{
Index: bgsettings.cpp
===================================================================
RCS file: /home/kde/kdebase/kcontrol/background/bgsettings.cpp,v
retrieving revision 1.12
diff -u -3 -p -r1.12 bgsettings.cpp
--- bgsettings.cpp 29 Dec 2003 19:20:59 -0000 1.12
+++ bgsettings.cpp 3 Jan 2004 19:04:18 -0000
@@ -504,8 +504,12 @@ KBackgroundSettings::KBackgroundSettings
if (!config) {
int screen_number = 0;
+#ifdef Q_WS_X11
if (qt_xdisplay())
screen_number = DefaultScreen(qt_xdisplay());
+#else
+ screen_number = QApplication::desktop()->primaryScreen();
+#endif
QCString configname;
if (screen_number == 0)
configname = "kdesktoprc";
@@ -1107,10 +1111,11 @@ void KGlobalBackgroundSettings::readSett
m_shadowEnabled = m_pConfig->readBoolEntry("ShadowEnabled", true);
m_Names.clear();
+#ifdef Q_WS_X11
NETRootInfo info( qt_xdisplay(), NET::DesktopNames | NET::NumberOfDesktops );
for ( int i = 0 ; i < info.numberOfDesktops() ; ++i )
m_Names.append( QString::fromUtf8(info.desktopName(i+1)) );
-
+#endif
dirty = false;
}
Index: main.cpp
===================================================================
RCS file: /home/kde/kdebase/kcontrol/background/main.cpp,v
retrieving revision 1.13
diff -u -3 -p -r1.13 main.cpp
--- main.cpp 8 Nov 2003 23:43:50 -0000 1.13
+++ main.cpp 3 Jan 2004 19:04:18 -0000
@@ -28,8 +28,10 @@
#include "main.h"
+#ifdef Q_WS_X11
/* as late as possible, as it includes some X headers without protecting them */
#include <X11/Xlib.h>
+#endif
/**** DLL Interface ****/
typedef KGenericFactory<KBackground, QWidget> KBackGndFactory;
@@ -45,8 +47,12 @@ KBackground::KBackground(QWidget *parent
: KCModule(KBackGndFactory::instance(), parent, name)
{
int screen_number = 0;
+#ifdef Q_WS_X11
if (qt_xdisplay())
screen_number = DefaultScreen(qt_xdisplay());
+#else
+ screen_number = QApplication::desktop()->primaryScreen();
+#endif
QCString configname;
if (screen_number == 0)
configname = "kdesktoprc";
@@ -84,8 +90,12 @@ void KBackground::save()
client->attach();
int screen_number = 0;
+#ifdef Q_WS_X11
if (qt_xdisplay())
screen_number = DefaultScreen(qt_xdisplay());
+#else
+ screen_number = QApplication::desktop()->primaryScreen();
+#endif
QCString appname;
if (screen_number == 0)
appname = "kdesktop";