Embedding multible java applets and focus problems

Lubos Lunak l.lunak at suse.cz
Mon Oct 13 17:51:07 BST 2003


On Monday 13 of October 2003 18:15, Koos Vriezen wrote:
> On Mon, 13 Oct 2003, Lubos Lunak wrote:
[snip]
> > > If ReparentNotify is a guaranteed event, I think second patch is
> > > preferable (might make QApplication::syncX() not needed any more ...
> > > yes work like before).
> >
> >  ReparentNotify is a guaranteed event, you'll get it after doing
> > XReparentWindow() into the embedder. However, given my comment above,
> > wouldn't it be simpler to add 'if( w == window ) return;' at the top of
> > embed()?
>
> My first thought too, but ReparentNotify does
>             window = e->xreparent.window;
>             embed( window );
> and assuming this code is there for a good reason, I made those two
> alternative patches.

 Aha, I haven't noticed this. Well, as I've already said, more comments 
wouldn't hurt. I'd support Leon's idea of splitting embed() then. 

>  > On Sunday 12 of October 2003 16:20, Koos Vriezen wrote:
> > > Another thing is focus on applets (again), a java text box doesn't get
> > > any keys delivered when it has the focus. Also, hopefully this is a
> > > hint, if you ALT-TAB to another window, so that the java text box hides
> > > behind the new active window, the konqueror taskbar item starts to
> > > blink a few time.
> >
> >  http://webcvs.kde.org/cgi-bin/cvsweb.cgi/kdelibs/kdeui/
> > qxembed.cpp.diff?r1=1.34&r2=1.35&f=h - this change is the reason for the
> > blinking. I'm not very familiar with QXEmbed internals, but I find the
> > log message 'Smallish improvement of focus signaling.' both useless and
> > not true. Definitely at least setting focus back after geting focus out
> > event is wrong, and the other changes are suspicious too. Hard to say for
> > sure without really knowing what the code is supposed to do - it seems to
> > be a common KDE standard not to bother with explanatory comments, but X11
> > related code is way too complicated to be understood just from reading
> > it.
> >
> >  However, reverting this change doesn't affect this problem itself, and
> > when comparing HEAD and KDE_3_1_BRANCH versions of qxembed.cpp, I don't
> > see anything relevant; with KDE-3.1.4 it works for me though.
>
> I must have noticed that earlier if that particular patch was to blame.
> I'm guessing of course, but the kwin-iii merge with the 'focus stealing
> prevention'. At least that sounds suspicious :) Also this focus problem is
> a recent one for sure (haven't seen it before the merge, and I use an
> applet with a text box quite often - but don't ask when exactly).

 That patch is to blame only for the taskbar entry blinking. But Konqueror 
HEAD doesn't work, regardless of the window manager - it doesn't work with 
KWin HEAD, KWin from 3.1, Metacity or FVWM2, so don't blame it on KWin. But I 
have no idea who to blame instead.

-- 
Lubos Lunak
KDE developer
---------------------------------------------------------------------
SuSE CR, s.r.o.  e-mail: l.lunak at suse.cz , l.lunak at kde.org
Drahobejlova 27  tel: +420 2 9654 2373
190 00 Praha 9   fax: +420 2 9654 2374
Czech Republic   http://www.suse.cz/



More information about the kfm-devel mailing list