[prev in list] [next in list] [prev in thread] [next in thread]
List: kmail-devel
Subject: PATCH: problem with restore and multiple desktops
From: Luís_Pedro_Coelho <luis () luispedro ! org>
Date: 2005-03-30 20:08:49
Message-ID: 200503302108.50023.luis () luispedro ! org
[Download RAW message or body]
Hi,
This is a patch to fix the following bug:
1. open kmail on Desktop 1
2. click on system tray to make it disappear
3. re-click to make it re-appear
4. ALT-F3->Desktop->Move to Desktop 2
5. Go to Desktop 3
6. Click on system tray
and PUFF you're taken to Desktop 2 where the system tray still thinks that
kmail is, except it isn't.
This patch corrects this behaviour.
Ok to commit?
bye,
--
luispedro
http://blog.luispedro.org/
http://luispedro.org/
["kmsystemtray.patch" (text/x-diff)]
Index: kmsystemtray.cpp
===================================================================
RCS file: /home/kde/kdepim/kmail/kmsystemtray.cpp,v
retrieving revision 1.60
diff -u -3 -p -b -r1.60 kmsystemtray.cpp
--- kmsystemtray.cpp 6 Dec 2004 17:50:18 -0000 1.60
+++ kmsystemtray.cpp 28 Mar 2005 18:52:49 -0000
@@ -80,8 +80,7 @@ KMSystemTray::KMSystemTray(QWidget *pare
if ( mainWidget ) {
QWidget * mainWin = mainWidget->topLevelWidget();
if ( mainWin ) {
- mDesktopOfMainWin = KWin::windowInfo( mainWin->winId(),
- NET::WMDesktop ).desktop();
+ mDesktopOfMainWin = KWin::windowInfo( mainWin->winId(), NET::WMDesktop ).desktop();
mPosOfMainWin = mainWin->pos();
}
}
@@ -392,6 +391,8 @@ void KMSystemTray::showKMail()
assert(mainWin);
if(mainWin)
{
+ KWin::WindowInfo cur = KWin::windowInfo( mainWin->winId(), NET::WMDesktop );
+ if ( cur.valid() ) mDesktopOfMainWin = cur.desktop();
// switch to appropriate desktop
if ( mDesktopOfMainWin != NET::OnAllDesktops )
KWin::setCurrentDesktop( mDesktopOfMainWin );
@@ -418,8 +419,7 @@ void KMSystemTray::hideKMail()
assert(mainWin);
if(mainWin)
{
- mDesktopOfMainWin = KWin::windowInfo( mainWin->winId(),
- NET::WMDesktop ).desktop();
+ mDesktopOfMainWin = KWin::windowInfo( mainWin->winId(), NET::WMDesktop ).desktop();
mPosOfMainWin = mainWin->pos();
// iconifying is unnecessary, but it looks cooler
KWin::iconifyWindow( mainWin->winId() );
_______________________________________________
KMail developers mailing list
KMail-devel@kde.org
https://mail.kde.org/mailman/listinfo/kmail-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic