------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=127749
ogoffart kde org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
------- Additional Comments From ogoffart kde org 2006-06-07 18:06 -------
SVN commit 549156 by ogoffart:
Fix Bug 127749: kopete freezes on desktop right click
BUG: 127749
I've taken the patch from jaguarwan, and added some check to assure good
reentrency due to the call to the evebt loop.
Please have a test.
M +13 -2 kopeteaway.cpp
--- branches/kopete/0.12/kopete/libkopete/kopeteaway.cpp #549155:549156
@ -198,6 +198,8 @
Kopete::Away::~Away()
{
+ if(this == instance)
+ instance = 0L;
delete d;
}
@ -324,9 +326,18 @
// isn't blanked/locked, because activity while blanked is impossible
and
// activity while locked never matters (if there is any, it's probably
just
// the cleaner wiping the keyboard :).
-
+
+
+ /* we should be able to respond to KDesktop queries to avoid a
deadlock, so we allow the event loop to be called */
+ static bool rentrency_protection=false;
+ if(rentrency_protection)
+ return;
+ rentrency_protection=true;
DCOPRef screenSaver("kdesktop", "KScreensaverIface");
- DCOPReply isBlanked = screenSaver.call("isBlanked");
+ DCOPReply isBlanked = screenSaver.callExt("isBlanked" ,
DCOPRef::UseEventLoop, 10);
+ rentrency_protection=false;
+ if(!instance) //this may have been deleted in the event loop
+ return;
if (!(isBlanked.isValid() && isBlanked.type == "bool" &&
((bool)isBlanked)))
{
// DCOP failed, or returned something odd, or the screensaver is
_______________________________________________
kopete-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kopete-devel