> I'd rather go with > + if( topLevelWidget()->isActive()) > as that's safer. You mean isActiveWindow() ? The doc of isActiveWindow() says "When popup windows are visible, this property is TRUE for both the active window \e and for the popup." So maybe the right test is + if ( topLevelWidget() == qApp->activeWindow() ) which is closer to the X11 reality... > > Of course, the correct fix would be to have Qt handle the focusProxy ... > If that's the correct fix, why not to do it that way then? That was not an option for me when I wrote these XPLAIN / XEMBED patches. That would be a nasty patch into the innards of both Qt and KDE. Difficult to take a patch like this from an occasional contributor like me. Especially when we consider compatibility issues when linking with earlier versions of Qt. > Qt seems to have some support for being embedded already anyway. Just a flag as I can tell. Most likely arranged by Matthias Ettrich when he first wrote the first version. > I'm just not sure about the timeframe, now > that we're close to 3.2, and Qt X11 guys have few tough patches in their > queue from me already. :-). > I actually meant comments in code, I just cited the cvs log message > because in the commit there way no comment at all. And you have to admit > setting focus back on focus out events looks weird. X11 related code can be > a complicated thing even when commented. You are right Properly commenting QXEmbed would be a nice challenge. We could start by giving some pointers :-) *** qxembed.cpp.~1.44.~ 2003-09-25 14:16:54.000000000 -0400 --- qxembed.cpp 2003-10-13 14:32:41.000000000 -0400 *************** *** 51,56 **** --- 51,76 ---- #include "qxembed.h" + /* WARNING: + Breaking QXEmbed breaks most of KDE. + To make things worse, QXEmbed is a very + intricate code with inadequate comments. + + Suggested readings: + + - Xlib Reference Manual and X11 ICCCM Manual + (everything about focus, reparenting, window management) + - XEMBED specification: + + - XPLAIN and XEMBED: + + - Community knowledge: + + + + */ + #ifndef XK_ISO_Left_Tab #define XK_ISO_Left_Tab 0xFE20 #endif _______________________________________________ Kwin mailing list Kwin@mail.kde.org http://mail.kde.org/mailman/listinfo/kwin