- Fix fadeout timeouts not being cleanly canceled
This commit is contained in:
parent
c07b87eace
commit
2ae0b8204c
1 changed files with 7 additions and 3 deletions
|
|
@ -133,15 +133,18 @@ class VoiceOverlayWindow(OverlayWindow):
|
|||
self.fade_opacity = 1.0
|
||||
if self.inactive_timeout:
|
||||
GLib.source_remove(self.inactive_timeout)
|
||||
self.inactive_timeout = None
|
||||
if self.fadeout_timeout:
|
||||
GLib.source_remove(self.fade_opacity)
|
||||
GLib.source_remove(self.fadeout_timeout)
|
||||
self.fadeout_timeout = None
|
||||
|
||||
if self.fade_out_inactive:
|
||||
GLib.timeout_add_seconds(self.inactive_time, self.overlay_inactive)
|
||||
self.inactive_timeout = GLib.timeout_add_seconds(self.inactive_time, self.overlay_inactive)
|
||||
|
||||
def overlay_inactive(self):
|
||||
self.fade_start= perf_counter()
|
||||
GLib.timeout_add(self.inactive_fade_time/200 * 1000, self.overlay_fadeout)
|
||||
self.fadeout_timeout = GLib.timeout_add(self.inactive_fade_time/200 * 1000, self.overlay_fadeout)
|
||||
self.inactive_timeout = None
|
||||
return False
|
||||
|
||||
def overlay_fadeout(self):
|
||||
|
|
@ -150,6 +153,7 @@ class VoiceOverlayWindow(OverlayWindow):
|
|||
time_percent = (now - self.fade_start) / self.inactive_fade_time
|
||||
if time_percent>=1.0:
|
||||
self.fade_opacity = self.fade_out_limit
|
||||
self.fadeout_timeout = None
|
||||
return False
|
||||
|
||||
self.fade_opacity = self.fade_out_limit + ((1.0 - self.fade_out_limit) * (1.0 - time_percent))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue