diff options
4 files changed, 10 insertions, 7 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ProgressBar.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ProgressBar.java index 3229ed1a9a..080b63bd12 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ProgressBar.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ProgressBar.java @@ -154,7 +154,7 @@ void releaseWidget () { */ public void setMaximum (int maximum) { checkWidget (); - if (maximum < 0 || maximum <= min) return; + if (maximum <= min) return; max = maximum; if (value > maximum) value = maximum; updateBar (value, min, max); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java index bae15016c0..41b06d67aa 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Scale.java @@ -312,10 +312,10 @@ public void setIncrement (int value) { */ public void setMaximum (int value) { checkWidget (); - if (value < 0 || value <= getMinimum()) return; int hAdjustment = OS.gtk_range_get_adjustment (handle); GtkAdjustment adjustment = new GtkAdjustment (); OS.memmove (adjustment, hAdjustment); + if (value <= adjustment.lower) return; adjustment.upper = (float) value; OS.memmove (hAdjustment, adjustment); OS.g_signal_handlers_block_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED); @@ -338,10 +338,11 @@ public void setMaximum (int value) { */ public void setMinimum (int value) { checkWidget (); - if (value < 0 || value >= getMaximum()) return; + if (value < 0) return; int hAdjustment = OS.gtk_range_get_adjustment (handle); GtkAdjustment adjustment = new GtkAdjustment (); OS.memmove (adjustment, hAdjustment); + if (value >= adjustment.upper) return; adjustment.lower = (float) value; OS.memmove (hAdjustment, adjustment); OS.g_signal_handlers_block_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java index 03cfe2c950..69bace2810 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ScrollBar.java @@ -495,9 +495,9 @@ public void setIncrement (int value) { */ public void setMaximum (int value) { checkWidget (); - if (value < 0 || value <= getMinimum()) return; GtkAdjustment adjustment = new GtkAdjustment (); OS.memmove (adjustment, handle); + if (value <= adjustment.lower) return; adjustment.upper = (float) value; OS.memmove (handle, adjustment); OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED); @@ -520,9 +520,10 @@ public void setMaximum (int value) { */ public void setMinimum (int value) { checkWidget (); - if (value < 0 || value >= getMaximum()) return; + if (value < 0) return; GtkAdjustment adjustment = new GtkAdjustment (); OS.memmove (adjustment, handle); + if (value >= adjustment.upper) return; adjustment.lower = (float) value; OS.memmove (handle, adjustment); OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED); diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Slider.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Slider.java index 3828407bb6..870650ab71 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Slider.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Slider.java @@ -372,10 +372,10 @@ public void setIncrement (int value) { */ public void setMaximum (int value) { checkWidget (); - if (value < 0 || value <= getMinimum()) return; int hAdjustment = OS.gtk_range_get_adjustment (handle); GtkAdjustment adjustment = new GtkAdjustment (); OS.memmove (adjustment, hAdjustment); + if (value <= adjustment.lower) return; adjustment.upper = (double) value; OS.memmove (hAdjustment, adjustment); OS.g_signal_handlers_block_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED); @@ -398,10 +398,11 @@ public void setMaximum (int value) { */ public void setMinimum (int value) { checkWidget (); - if (value < 0 || value >= getMaximum()) return; + if (value < 0) return; int hAdjustment = OS.gtk_range_get_adjustment (handle); GtkAdjustment adjustment = new GtkAdjustment (); OS.memmove (adjustment, hAdjustment); + if (value >= adjustment.upper) return; adjustment.lower = (double) value; OS.memmove (hAdjustment, adjustment); OS.g_signal_handlers_block_matched (hAdjustment, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED); |