Review Request 127631: [ksmserver] We must be sure that kwin process is ended

Anthony Fieroni bvbfan at abv.bg
Mon Apr 11 10:37:00 UTC 2016



> On Април 11, 2016, 8:45 преди обяд, Martin Gräßlin wrote:
> > > otherwise kwindowsystem::self() is nullptr
> > 
> > how can KWindowSystem::self() be null? And why should that have anything to do with KWin? KWindowSystem does not depend on a window manager running.
> 
> Thomas Lübking wrote:
>     The entire thing sounds as if the problem would be that the session restorage in kwin overrides the placement for restored windows (with the restored position)
>     
>     That's however not a bug (at least it's intended) and I've no idea why that's relevant to the weird geometry handling of SNI items (which looks *faaaar* too complex - the position of remapped windows is usually maintained by QWidget ...)
> 
> Anthony Fieroni wrote:
>     I saw the code, it looks like KWindowSystem not depend on Kwin, but Kwin *must* be started *before* use of kwindowsystem. Thomas may right, because setGeometry even not work on sessions restored app.
>     When session was finish if start apps with kmail --session session-id everything wors fine.
> 
> Anthony Fieroni wrote:
>     Now, after Thomas comment, i even think only widget->show() must works because widget has internal frameGeometry and position.
> 
> Martin Gräßlin wrote:
>     > but Kwin must be started before use of kwindowsystem
>     
>     no, really there is no reason for that. KWindowSystem doesn't depend on a window manager running.
> 
> Anthony Fieroni wrote:
>     Then, correct KWin to kwindowsystem to start working. If there is no bug this will works on all cases -> https://git.reviewboard.kde.org/r/127216/ but it's not.
> 
> Martin Gräßlin wrote:
>     I don't know why you have problems, but it's impossible that KWindowSystem::self() returns a nullptr. You can check the code to verify. Something is really broken on your side, but I don't know what. Maybe missing plugins installed?
> 
> Thomas Lübking wrote:
>     it's not a hard dependecy on the instace, the sni geometry handling is just plain broken.
>     the workaround operates on configure events on the mapped window which will go nowhere if there's no running wm.
>     
>     the client needs to handle the no-wm case, ie. configure the window correctly, but to repeat myself: such requirement implies that either sni or qwidget/qwindow is completely fucked up.
>     
>     qwindow/qwidget::setGeometry should justwork(tm)
> 
> Anthony Fieroni wrote:
>     setGeometry *not* works, i can confirm since i'm test it. Nothing works if Kwin is started *after* usage of kwindowsystem::self().
>     Martin yeah nullprt is impossible.
> 
> Martin Gräßlin wrote:
>     then this is a bug in Qt's xcb plugin and needs to be fixed there. Setting a geometry without a window manager must be possible.
> 
> Anthony Fieroni wrote:
>     Wait a little, the bug is not in xcb. I'm not clear or what. This *happend* only on session restored apps, when kwindowsystem::self() is before kwin statup, only in this case. If run a app after kwin is started *all* works fine setGeometry(), move() - no problems.

Thomas Lübking wrote:
 The entire thing sounds as if the problem would be that the session restorage in kwin overrides the placement for restored windows (with the restored position)
 
For me, this is best explanation. Adn give you the easiest, no pain, working solution - wait kwin to start completely.


- Anthony


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127631/#review94513
-----------------------------------------------------------


On Април 10, 2016, 10:46 след обяд, Anthony Fieroni wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127631/
> -----------------------------------------------------------
> 
> (Updated Април 10, 2016, 10:46 след обяд)
> 
> 
> Review request for kwin, Plasma, David Edmundson, Martin Gräßlin, and Thomas Lübking.
> 
> 
> Repository: plasma-workspace
> 
> 
> Description
> -------
> 
> We must proceed with autoStart0 when kwin process is ended otherwise kwindowsystem::self() is nullptr. Every restored session app cannot use kwindowsystem. This depends of cpu speed, it can be faster enough to start wm before ksmserver restore apps and kwindowsystem will be usable.
> 
> 
> Diffs
> -----
> 
>   ksmserver/startup.cpp f118b55 
> 
> Diff: https://git.reviewboard.kde.org/r/127631/diff/
> 
> 
> Testing
> -------
> 
> It's needed to fix this bug -> https://git.reviewboard.kde.org/r/127216/
> I don't know how to proceed if kwin fails to start in every way, can we process - i think not?
> 
> 
> Thanks,
> 
> Anthony Fieroni
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20160411/26da3c3c/attachment.html>


More information about the Plasma-devel mailing list