----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/109282/#review28554 -----------------------------------------------------------
Reg. switcher skipping: SkipSwitcher isn't NETWM and wasn't added to KWindowSystem / NET because of the libs freeze. Also see bug #191310 One could pass the window a type like NET::Override (while that's "honest" but not NETWM compliant) or eg. NET::Desktop or NET::Dock (though bumping it to the above layer until it's re-embedded) However, *actually* when a (managed) window gets embedded, kwin should unmanage it (thus drop it from the focuschain, thus switcher) since we don't care about non-toplevel windows. Thus i actually don't see why the window would need to be set "NET::Hidden | NET::SkipTaskbar | NET::SkipPager" at all. It's about to be embedded the very next moment and the flicker has occurred at this point as well. Reg. flicker: what *could* (<- means: i don't like that too much) be done is to schedule every maprequest for some 50ms (by this also managing) what would also protect us reg. bug #192470 - Thomas Lübking On March 4, 2013, 7:29 p.m., Martin Gräßlin wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/109282/ > ----------------------------------------------------------- > > (Updated March 4, 2013, 7:29 p.m.) > > > Review request for kdelibs and David Faure. > > > Description > ------- > > KWindowSystem::doNotMange is a method which performs a D-Bus call to KWin to > inform KWin about a window with a specific title to not manage it. Manage > here actually meens to set the window to state hidden, but it's nevertheless > properly managed and e.g. appears in the Alt+Tab window switcher and is also > shown in the taskbar. > > It's rather obvious that KHTML should not expect the window manager KWin and > should not interact with it through D-Bus - after all it's an X11 window > manager and we normally talk X. This hack had been added for the Java applet > years ago. > > The reason for this is that the Java windowing system abstraction AWT is too > limited. It doesn't allow direct interaction with the window system causing > the Applet window to be first mapped to the screen and then getting embedded. > This causes a short flicker which is worked around by the doNotManage hack. > To suppress this flicker KHTML now sets the appropriate flag and also the > flicker is hardly visible anyway because nowadays our computers are much > faster ;-) and we have compositing. > > The doNotManage call clearly falls too short and therefore this change > improves the situation by setting the hidden flag and in addition the skip > pager and skip taskbar. This at least makes sure that the applets are not > shown in the taskbar, though they are still shown in Alt+Tab. Seems like we > never exported the SkipSwitcher flag. > > > Diffs > ----- > > khtml/java/kjavaappletwidget.cpp e9adc4c > > Diff: http://git.reviewboard.kde.org/r/109282/diff/ > > > Testing > ------- > > installed Java, got it somehow magically configured to even have a plugin, > found a website, applet is shown. > > > Thanks, > > Martin Gräßlin > >