Am Thu, 9 Jun 2011 11:51:56 +0100 schrieb David Edmundson <[email protected]>:
> The problem is that due to the design of telepathy the contact list > and the window that displays a chat work as two completely separate > applications, with communication over dbus. > ... > However the documentation for KWindowSystem::forceWindowAcitve implies > that it's very naughty to use it. Yes, it is ;-) The best way to do this is to hint the WM that the windows belong together, eg. by setting the same leader (which can but does not have to be one of the windows) or setting one as transient for the other (what has other effects depending on the window type of the transient one) For the beginning, try KWindowSystem::setMainWindow() what will create the transient connection and is - given your description - likely what you want (eg. a QDockWidget is transient for it's main window) You'd likely call that in the contact list and need to know Widget::winId() from the message window. To fake a group connection, you'll unfortunately but likely (i'm not really sure...) have to set the releavant property using X11 directly (XChangeProperty), so rather first try whether the above suits you well. > I assume for the other two, KWin is suppressing my call to activate > the window (though I'm guessing here) because you think the user is > busy using a different application. Yes. This is often caused by acting on mouse press instead of release, but the timestamp check is faaaar more wonky than an explicit connection, so the latter one is preferable. Cheers, Thomas _______________________________________________ KDE-Telepathy mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-telepathy
