# HG changeset patch # User Drew Perttula # Date 2019-06-09 06:32:54 # Node ID 93e3a00b7cfc1b22681a4ef5af8dded6aecb649a # Parent 8b887918c00860b8323f1e61eaba5a8a9e713f9f KC had a new DoubleVar bug where setting from 0 to 1 would result in 0.000 Ignore-this: 30e08a24aef112c79cde7c9b62d1e45a diff --git a/bin/keyboardcomposer b/bin/keyboardcomposer --- a/bin/keyboardcomposer +++ b/bin/keyboardcomposer @@ -50,8 +50,8 @@ class SubScale(tk.Scale, Fadable): self.scale_var = kw.get('variable') or tk.DoubleVar() kw.update({ 'variable': self.scale_var, - 'from': 1, - 'to': 0, + 'from': 1., + 'to': 0., 'showvalue': 0, 'sliderlength': 15, 'res': 0.001, diff --git a/light9/Fadable.py b/light9/Fadable.py --- a/light9/Fadable.py +++ b/light9/Fadable.py @@ -76,6 +76,10 @@ class Fadable: # variable's display instead of using Label(textvariable=var) # and format it there. self.fade_var.set(round(value, 7)) + if self.fade_var.get() != value: + self.fade_var.set(value) + if self.fade_var.get() != value: + raise ValueError("doublevar won't set") def fade(self, value, length=0.5, step_time=10): """Fade to value in length seconds with steps every step_time @@ -131,7 +135,7 @@ class Fadable: newlevel = self.fade_end_level - amount else: newlevel = self.fade_var.get() - amount - newlevel = max(0, newlevel) + newlevel = max(0., newlevel) self.set_volume(newlevel, length) def set_volume(self, newlevel, length=0.3): @@ -146,12 +150,12 @@ class Fadable: """Toggles whether the volume is being muted.""" if self.last_level is None: self.last_level = self.fade_var.get() - if self.last_level == 0: # we don't want last_level to be zero, + if self.last_level == 0.: # we don't want last_level to be zero, # since it will make us toggle between 0 # and 0 - newlevel = 1 + newlevel = 1. else: - newlevel = 0 + newlevel = 0. else: newlevel = self.last_level self.last_level = None