Runaway QSlider : it's a Qt bug

Lubos Lunak l.lunak at suse.cz
Mon Mar 8 09:16:06 GMT 2004


On Sunday 07 of March 2004 11:39, Guillaume Laurent wrote:
> On Sunday 07 March 2004 11:33, Matthias Ettrich wrote:
> > While I don't argue that it might be possible to find a generic solution
> > to this and similar problems on the toolkit level, I'm not quite sure
> > how, yet. General rule: do not exclude user input when the mouse is
> > pressed down.

 Actually I think the general rule rather should be: do not use misleading or 
wrong names. ExcludeSocketNotifiers ignores socket notifiers events, but 
keeps them pending. The same for the hidden ExcludeTimers. But 
ExcludeUserInput doesn't really exclude user input (at least according to 
what my dictionary says 'exclude' means), it discards it -> it should be 
either fixed to do what it says, or it should be called DiscardUserInput.

 Guillaume is not the only one to run into this problem. In case the dreadful 
KDE bug #61412 hasn't been fixed in Qt yet, just e.g. have a look at 
QClipboard.

>
> But the problem is that at the time I'm excluding user events, I don't
> expect the mouse button to be down. It's true that this is a wrong
> assumption in the case of the qslider, given that it reacts to the mouse
> button being kept down.
>
> > The sitation is roughtly equivalent to installing an event filter on a
> > push button on press that eats all mouse release events. It is hard for
> > the toolkit to know why you might not want the button to remained pressed
> > down in this case.
>
> Indeed. I think I'll just replace the slot's content by the posting of a
> QCustomEvent and do the "long changes" in the event handler.

-- 
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 kde-core-devel mailing list