[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.5/kdebase/kdesktop
From: Andreas Kling <kling () impul ! se>
Date: 2006-08-18 20:50:08
Message-ID: 1155934208.177467.15402.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 574369 by kling:
Talk to the correct kicker and kwin instances in multi-head environments.
Fixes a bunch of flakiness, such as kicker disappearing when switching desktops.
M +7 -7 desktop.cc
M +8 -42 krootwm.cc
M +12 -8 main.cc
--- branches/KDE/3.5/kdebase/kdesktop/desktop.cc #574368:574369
@@ -62,6 +62,9 @@
// and then remove this include and fix reconnects in initRoot() -- ellis
//#include <kaccelbase.h>
+extern int kdesktop_screen_number;
+extern QCString kdesktop_name, kicker_name, kwin_name;
+
KRootWidget::KRootWidget() : QObject()
{
kapp->desktop()->installEventFilter(this);
@@ -124,9 +127,6 @@
// -----------------------------------------------------------------------------
#define DEFAULT_DELETEACTION 1
-// for multihead - from main.cc
-extern int kdesktop_screen_number;
-
KDesktop::WheelDirection KDesktop::m_eWheelDirection = KDesktop::m_eDefaultWheelDirection;
const char* KDesktop::m_wheelDirectionStrings[2] = { "Forward", "Reverse" };
@@ -149,7 +149,7 @@
m_pKwinmodule = new KWinModule( this );
kapp->dcopClient()->setNotifications(true);
- kapp->dcopClient()->connectDCOPSignal("kicker", "kicker", "desktopIconsAreaChanged(QRect, int)",
+ kapp->dcopClient()->connectDCOPSignal(kicker_name, kicker_name, "desktopIconsAreaChanged(QRect, int)",
"KDesktopIface", "desktopIconsAreaChanged(QRect, int)", false);
// Dont repaint on configuration changes during construction
@@ -292,7 +292,7 @@
QCString replyType;
QRect area;
- if ( kapp->dcopClient()->call("kicker", "kicker", "desktopIconsArea(int)",
+ if ( kapp->dcopClient()->call(kicker_name, kicker_name, "desktopIconsArea(int)",
data, replyType, result, false, 2000) )
{
QDataStream res(result, IO_ReadOnly);
@@ -674,7 +674,7 @@
m_bNeedRepaint |= 1;
updateWorkArea();
#endif
- kapp->dcopClient()->send( "kwin", "", "refresh()", "");
+ kapp->dcopClient()->send( kwin_name, "", "refresh()", "");
refreshIcons();
}
@@ -949,7 +949,7 @@
QCString replyType;
QRect area;
- if ( kapp->dcopClient()->call("kicker", "kicker", "desktopIconsArea(int)",
+ if ( kapp->dcopClient()->call(kicker_name, kicker_name, "desktopIconsArea(int)",
data, replyType, result, false, 2000) )
{
QDataStream res(result, IO_ReadOnly);
--- branches/KDE/3.5/kdebase/kdesktop/krootwm.cc #574368:574369
@@ -66,11 +66,8 @@
KRootWm * KRootWm::s_rootWm = 0;
+extern QCString kdesktop_name, kicker_name, kwin_name;
-// for multihead
-extern int kdesktop_screen_number;
-
-
KRootWm::KRootWm(KDesktop* _desktop) : QObject(_desktop)
{
s_rootWm = this;
@@ -556,15 +553,9 @@
// This allows the menu to disappear when clicking on the background another time
XUngrabPointer(qt_xdisplay(), CurrentTime);
XSync(qt_xdisplay(), False);
- // Ask kicker to showup the menu
- // make sure we send the message to the correct kicker
- QCString appname;
- if (kdesktop_screen_number == 0)
- appname = "kicker";
- else
- appname.sprintf("kicker-screen-%d", kdesktop_screen_number);
- DCOPRef( appname.data(), appname.data() ).send( "popupKMenu", global );
+ // Ask kicker to showup the menu
+ DCOPRef( kicker_name, kicker_name ).send( "popupKMenu", global );
break;
}
case CUSTOMMENU1:
@@ -756,53 +747,28 @@
KDesktopSettings::setShowMenubar( !(m_bShowMenuBar && menuBar) );
KDesktopSettings::writeConfig();
- // make sure we send the message to the correct screen
- QCString appname;
- if (kdesktop_screen_number == 0)
- appname = "kdesktop";
- else
- appname.sprintf("kdesktop-screen-%d", kdesktop_screen_number);
-
QByteArray data;
- kapp->dcopClient()->send( appname.data(), "KDesktopIface", "configure()", data);
+ kapp->dcopClient()->send( kdesktop_name, "KDesktopIface", "configure()", data);
// for the standalone menubar setting
kapp->dcopClient()->send( "menuapplet*", "menuapplet", "configure()", data );
- kapp->dcopClient()->send( "kicker", "kicker", "configureMenubar()", data );
+ kapp->dcopClient()->send( kicker_name, kicker_name, "configureMenubar()", data );
kapp->dcopClient()->send( "kwin*", "", "reconfigure()", data );
}
void KRootWm::slotUnclutterWindows()
{
- QCString appname;
- if (kdesktop_screen_number == 0)
- appname = "kwin";
- else
- appname.sprintf("kwin-screen-%d", kdesktop_screen_number);
-
- kapp->dcopClient()->send(appname.data(), "KWinInterface", "unclutterDesktop()", "");
+ kapp->dcopClient()->send(kwin_name, "KWinInterface", "unclutterDesktop()", "");
}
void KRootWm::slotCascadeWindows() {
- QCString appname;
- if (kdesktop_screen_number == 0)
- appname = "kwin";
- else
- appname.sprintf("kwin-screen-%d", kdesktop_screen_number);
-
- kapp->dcopClient()->send(appname.data(), "KWinInterface", "cascadeDesktop()", "");
+ kapp->dcopClient()->send(kwin_name, "KWinInterface", "cascadeDesktop()", "");
}
void KRootWm::slotLock() {
- QCString appname;
- if (kdesktop_screen_number == 0)
- appname = "kdesktop";
- else
- appname.sprintf("kdesktop-screen-%d", kdesktop_screen_number);
-
- kapp->dcopClient()->send(appname, "KScreensaverIface", "lock()", "");
+ kapp->dcopClient()->send(kdesktop_name, "KScreensaverIface", "lock()", "");
}
--- branches/KDE/3.5/kdebase/kdesktop/main.cc #574368:574369
@@ -57,6 +57,7 @@
// -----------------------------------------------------------------------------
int kdesktop_screen_number = 0;
+QCString kdesktop_name, kicker_name, kwin_name;
static void crashHandler(int sigId)
{
@@ -136,13 +137,17 @@
}
}
- QCString appname;
- if (kdesktop_screen_number == 0)
- appname = "kdesktop";
- else
- appname.sprintf("kdesktop-screen-%d", kdesktop_screen_number);
+ if (kdesktop_screen_number == 0) {
+ kdesktop_name = "kdesktop";
+ kicker_name = "kicker";
+ kwin_name = "kwin";
+ } else {
+ kdesktop_name.sprintf("kdesktop-screen-%d", kdesktop_screen_number);
+ kicker_name.sprintf("kicker-screen-%d", kdesktop_screen_number);
+ kwin_name.sprintf("kwin-screen-%d", kdesktop_screen_number);
+ }
- KAboutData aboutData( appname.data(), I18N_NOOP("KDesktop"),
+ KAboutData aboutData( kdesktop_name, I18N_NOOP("KDesktop"),
version, description, KAboutData::License_GPL,
"(c) 1998-2000, The KDesktop Authors");
aboutData.addAuthor("David Faure", 0, "faure@kde.org");
@@ -171,7 +176,7 @@
KUniqueApplication app;
app.disableSessionManagement(); // Do SM, but don't restart.
- KDesktopSettings::instance(appname + "rc");
+ KDesktopSettings::instance(kdesktop_name + "rc");
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
bool x_root_hack = args->isSet("x-root");
@@ -205,4 +210,3 @@
return app.exec();
}
-
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic