Displayed value in spinner boxes not updated while changing

Bug #553263 reported by Captain Chaos
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Inkscape
Triaged
Wishlist
Unassigned
inkscape (Ubuntu)
Triaged
Wishlist
Unassigned

Bug Description

Binary package hint: inkscape

When increasing the value in a spinner box by clicking and holding the up or down buttons, the displayed value in the box is not updated. You have to guess when you have arrived in the neighbourhood of the value you want and then let the mouse button go, and only then is the value it has arrived at displayed.

For example, if you select a shape and open the Fill and Stroke panel and then click and hold the up or down button in the Width spinner box on the Stroke style tab, the line width is increased or decreased smoothly while you're holding the mouse button down, but the value in the box is not updated. Only when you let go of the mouse button is the new value shown. The same goes for the Miter limit spinner box.

This is suboptimal. The displayed value should be continuously updated while you're holding the mouse button down.

ProblemType: Bug
Architecture: amd64
Date: Thu Apr 1 14:36:38 2010
DistroRelease: Ubuntu 9.10
InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release amd64 (20091027)
NonfreeKernelModules: nvidia
Package: inkscape 0.47~pre4-0ubuntu1
ProcVersionSignature: Ubuntu 2.6.31-20.58-generic
SourcePackage: inkscape
Uname: Linux 2.6.31-20-generic x86_64

Revision history for this message
Captain Chaos (launchpad-chaos) wrote :
Revision history for this message
su_v (suv-lp) wrote :

possibly related to GTK+ issues with value-changed events/interruptibility for spinbuttons?
Bug #168044 “crash adjusting slider when spinbutton has focus (GTK bug?)”
Bug #167781 “opacity in selected style loses focus on kbd value scroll”
Bug #506287 “opacity and blur slider slow and incremental with 0.47 / smooth with 0.46”

tags: added: ui
Changed in inkscape:
importance: Undecided → Wishlist
Revision history for this message
su_v (suv-lp) wrote :

reproduced with Inkscape 0.47 r22583 (gtk2 2.18.2) and 0.47+devel r9307 (gtk2 2.18.9) on OS X 10.5.8

Revision history for this message
Captain Chaos (launchpad-chaos) wrote :

Wishlist? Isn't that a bit low for a genuine bug, and an annoying one at that?

I've noticed that in the low values of the line thickness control, for simple shapes, the displayed value *is* continually updated. I think it's related to the redraw speed of the shape that is being affected.

What appears to be happening while I hold down my mouse button is, for each value increase:

1. increase value
2. repaint shape with new value
3. repaint spinner box

But this process is interrupted when the value is increased again (apparently that happens asynchronously), and if it was still redrawing the shape at that point the spinner box is never repainted and the displayed value never updated. When the line thickness is low and the shape simple, my PC can repaint the entire shape before the next value increase, so the displayed value gets updated. If the shape is too complex, or when the line becomes too thick, it takes too long to paint the entire shape before the next value increase. I can actually see this happening: while I'm increasing the line thickness, progressively less and less of the shape gets repainted from top to bottom.

This could be as easy to fix as to make sure the spinner box is repainted first, and *then* the affected shape.

Revision history for this message
Captain Chaos (launchpad-chaos) wrote :

Another fix might be to update the value synchronously, on the event dispatch thread (unless I'm misunderstanding the Gnome / GTK / X11 display event model; I'm only a Java programmer... ;-)).

Revision history for this message
su_v (suv-lp) wrote :

I'm not a programmer myself - just helping with bug triage. I set it to Wishlist following your initial description as "suboptimal" behavior and because it doesn't prevent to adjust/set the value for the spin box. But I confirm it is a usability issue and also happens when using the scroll wheel to adjust the spinbutton values.

(Possibly related: entries in the undo history for each step even if the spinbox value isn't updated?)

Revision history for this message
Jon A. Cruz (jon-joncruz) wrote :

This is not as simple as it may appear. The immediate difference from the paradigm Captain Chaos is used to is that Inkscape is currently a *single* threaded application, and there is not UI event dispatch thread different from a main execution thread.

Revision history for this message
Captain Chaos (launchpad-chaos) wrote :

Alright. How easy would it be to repaint the spinbox before repainting the shape?

Revision history for this message
Jon A. Cruz (jon-joncruz) wrote :

It's not.

GTK+ has an event-driven, cross-platform object oriented GUI toolkit. Circumventing the designed flow is not easy, can negatively impact performance and can cause hard to address bugs that might show up only on certain platforms, with certain themes or with certain engines and backends.

Revision history for this message
su_v (suv-lp) wrote :

duplicate of Bug #184622 “Document property's spinboxes' autorepeat not updating correctly”?

Revision history for this message
Captain Chaos (launchpad-chaos) wrote :

Yes it seems so, from the description in that bug. I note that that bug is two and a half years old, and nothing seems to have been done in all that time, although it seems to have finally been set to "New" three hours ago... (?)

Changed in inkscape:
status: New → Confirmed
Changed in inkscape (Ubuntu):
status: New → Confirmed
Changed in inkscape (Ubuntu):
importance: Undecided → Wishlist
Changed in inkscape:
status: Confirmed → Triaged
Changed in inkscape (Ubuntu):
status: Confirmed → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.