Summary: | regression: kdewallet-password and kdesu dialogues are no longer shown "always on top" and "on all desktops" | ||
---|---|---|---|
Product: | [Unmaintained] kmail | Reporter: | S. Burmeister <sven.burmeister> |
Component: | general | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | l.lunak, nancy |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
S. Burmeister
2006-09-10 16:03:52 UTC
That's not a regression, that's a fix. The dialog should be shown for the window which caused them, nothing more. If you have any specific real problems, please report them. What exactly was the problem with "always on top"? Found another real issue, except for the application covering the dialogue because the "always on top" lack. If I use konqueror on desktop 1 but kontact is open on desktop 5 and I click on an email-address on a website, the composer is opened on the same desktop the browser is on. This makes sense and should not be changed. However, if I send that email, the dialouge asking for the kwallet (smtp-password) pops-up on the desktop kontact is on. This happens because of the lack of "show on all desktops". The composer is greyed out and does nothing. To the user it is not obvious why. This is a consequence of the regression. Reopening since there was no reaction to the issues that relate to this bug. KMail developers: See comment #3. It seems like you always pass the mainwindow as the parent for kwallet, but the parent has to be the window to which the dialog is related to, i.e. the composer window in this case. If you code is something like "kwallet_function( ..., mainwindow->winId())", then changing that to "kwallet_function( ..., qApp->activeWindow() ? qApp->activeWindow()->winId() : mainwindow->winId())" should do I think. SVN commit 593938 by vkrause: Try harder to find an appropriate parent for the kwallet password dialog. Based on a suggestion of Lubos, should fix #133861 and might also help with #131756. BUG: 133861 CCBUG: 131756 M +8 -2 kmkernel.cpp --- branches/KDE/3.5/kdepim/kmail/kmkernel.cpp #593937:593938 @@ -2247,9 +2247,15 @@ if ( !Wallet::isEnabled() || walletOpenFailed ) return 0; + // find an appropriate parent window for the wallet dialog + WId window = 0; + if ( qApp->activeWindow() ) + window = qApp->activeWindow()->winId(); + else if ( getKMMainWidget() ) + window = getKMMainWidget()->topLevelWidget()->winId(); + delete mWallet; - mWallet = Wallet::openWallet( Wallet::NetworkWallet(), - getKMMainWidget() ? getKMMainWidget()->topLevelWidget()->winId() : 0 ); + mWallet = Wallet::openWallet( Wallet::NetworkWallet(), window ); if ( !mWallet ) { walletOpenFailed = true; Shall I file another bug for the "always on top"? If kontact is in tray and one composes a new mail, i.e. by clicking on a link and sends it, the kwallet-dialogue pops-up behind the composer window. If the composer window covers it, e.g. because of a small resolution, or because of the window being that big, or in the middle of the screen, the user cannot see the kwallet-dialogue. Does this still happen with the fix? Actually the kwallet dialog should now be displayed on top of the composer. If the fix is in 3.5.5, yes. If kontact is open on another desktop, the kwallet-dialogue still pops-up on that desktop, if I open a composer on another one. If I remember correctly, the "always on top" was not set too. So it blocks kontact's UI but can still be brought behind it, if the user clicks next to it by accident. If kontact is minimized, the kwallet-dialogue pops-up on the same desktop as the composer, yet behind it. The fix is not in 3.5.5 but will be in 3.5.6. With the fix I'm unable to reproduce any of the problems you are describing. *** Bug 136336 has been marked as a duplicate of this bug. *** |