[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: KCM Authorization (was: Re: Review Request: print-manager on kdereview)
From:       Daniel Nicoletti <dantti12 () gmail ! com>
Date:       2012-08-27 23:56:02
Message-ID: CACo8zOdLi+1vOkwvZRT21W1hxtO8JKN0xwvZCGmfnxLpZAcJ5w () mail ! gmail ! com
[Download RAW message or body]

2012/8/27 Thomas L=FCbking <thomas.luebking@gmail.com>:
> Am 27.08.2012, 22:53 Uhr, schrieb Daniel Nicoletti <dantti12@gmail.com>:
>
>
>> So to avoid the application quiting modules that need to perform
>> async tasks like talking to polkit or installing packages (Apper),
>> they need to create an event loop so that current module accept()
>> doesn't return (if it does quit() will be called).
>>
>> So the user clicks Apply, while setting the time or doing anything
>> the user clicks to close the window, the event loop will return
>> and some stuff will be already deleted which causes the crashes...
>
>
> As far as i understood the bottomline is the task to make an external
> process fully modal to the window, yesno?
>
> Aside that the NETWM spec probably SHOULD say that modal windows must not
> receive input focus and mouse events and also not be closed, weird ideas:
> a) add an eventfilter on the application to suck all input events (for th=
at
> window) so clicking apply etc. isn't possible and the window also will no=
t
> receive close events
> b) intercept sigterm and reject it as long as you're waiting for the asyn=
c
> return
The main problem won't be fixed with this, a kquitapp will still crash
the application.
(tho maybe b could work but to me seems quite complex...)
Nested event loops brings all kinds of trouble... surely there are places w=
here
you don't have an option, which is were you must check if the
application is quitting..
and in the KCM case only with QPointer I could do this kind of crash go awa=
y
QAppliction::isClosing() or something like that didn't do the trick
(don't recall why)...
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic