mirror of https://github.com/GNOME/gimp.git
Issue #4205 - The histogram dock scale is incorrect when an image is opened
In gimp_histogram_view_update_bins(), don't update the view's range if there's no histogram or the histogram is empty, to avoid discarding the existing range. Additionally, improve the range readjustment when the number of bins changes.
This commit is contained in:
parent
c297131d37
commit
0c899394b4
|
@ -844,21 +844,21 @@ gimp_histogram_view_notify (GimpHistogram *histogram,
|
|||
static void
|
||||
gimp_histogram_view_update_bins (GimpHistogramView *view)
|
||||
{
|
||||
gint new_bins = 256;
|
||||
gint new_bins = 0;
|
||||
|
||||
if (view->histogram)
|
||||
new_bins = gimp_histogram_n_bins (view->histogram);
|
||||
else if (view->bg_histogram)
|
||||
new_bins = gimp_histogram_n_bins (view->bg_histogram);
|
||||
|
||||
if (new_bins != view->n_bins)
|
||||
if (new_bins > 0 && new_bins != view->n_bins)
|
||||
{
|
||||
view->start = ROUND (((gdouble) view->start *
|
||||
(new_bins - 1) /
|
||||
(view->n_bins - 1)));
|
||||
view->end = ROUND (((gdouble) view->end *
|
||||
(new_bins - 1) /
|
||||
(view->n_bins - 1)));
|
||||
view->start = MIN (ROUND ((gdouble) view->start *
|
||||
new_bins / view->n_bins),
|
||||
new_bins - 1);
|
||||
view->end = MAX (ROUND ((gdouble) (view->end + 1) *
|
||||
new_bins / view->n_bins) - 1,
|
||||
0);
|
||||
|
||||
view->n_bins = new_bins;
|
||||
|
||||
|
|
Loading…
Reference in New Issue