After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 689731 - Top of slider integral drag increments by decimal amounts
Top of slider integral drag increments by decimal amounts
Status: RESOLVED OBSOLETE
Product: GIMP
Classification: Other
Component: User Interface
2.8.0
Other All
: Normal enhancement
: ---
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks:
 
 
Reported: 2012-12-05 19:58 UTC by Gary Aitken
Modified: 2018-05-24 13:25 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Gary Aitken 2012-12-05 19:58:28 UTC
Pressing and dragging in the top portion of a slider increments by small decimal amounts, not by integral amounts.

Test:
Select paintbrush tool.
In "Size" slider, double click on value and type in 500<cr> to set it.
Position mouse over line separating grey and white (left and right) sides of slider, in upper half, and make sure mouse pointer changes to vertical pointing 
arrow.
Press and drag left and right.
The value changes at a precision of 0.01, by some odd-ball amount.
Value at left edge will be 1.00;
value at right boundary of slider will be ~1000, something like 1074.55;
dragging further right to right edge of display for me is ~9500.

For the fuzzy select tool, the upper slider drag goes by increments of 0.1,
from 0.0 to 255.0 and is clamped at the far right.  The lower fine-grained
drag also goes by 0.1 increments, but not over the complete range.
Comment 1 Gary Aitken 2012-12-06 03:33:44 UTC
Apparently this is the designed behavior, 
so I'm changing to an enhancement request.

Proposal:

Allow preference settings for granularity of sliders.
Possibly global, over-rideable at the tool level,
over-rideable at the individual control level.

example:

  value=175.000  granularity=1.500  minValue=-100.000  maxValue=400.000  deltaPtr=15  maxPtr=1024
  valueExtent=500.000
  granularityX100=150
  deltaPtr * valueExtent * 100 / maxPtr=732.422
  valueDelta / granularityX100=4.883
  valueDeltaX100=450.000
  valueDelta=4.500
  valueDelta=4.500  newValue=179.500

the math:
  valueDelta = ((double)deltaPtr / (double)maxPtr) * (valueExtent * 100.) / granularityX100;
  valueDelta = (double)((int)(valueDelta * 100) / granularityX100) * granularityX100 / 100.;
  newValue = value + valueDelta;

part of the above can be reduced to a constant:
  const1 = (valueExtent * 100.) / ((double)maxPtr * (double)granularityX100);
  valueDelta = const1 * (double)deltaPtr;
  valueDelta = (double)((int)(valueDelta * 100) / granularityX100) * granularityX100 / 100.;
  newValue = value + valueDelta;
Comment 2 prexpressions 2014-01-31 07:42:46 UTC
+1 for this feature request!

"The sliders are nearly useless for me as I typically use pens and brush sizes of 1,5, 10 and 20.  I need to change the size regularly and the sliders would be ideal yet my 'working' range is in a tiny little bit at the end of the slider value.

It would be a huge gain for me to some how set the max slider value to a value of my choice (say 50) rather than the current value of 1000"

Paul
Comment 3 GNOME Infrastructure Team 2018-05-24 13:25:15 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gimp/issues/438.