Merge pull request #255 from WORD559/master

Can force status bar to update early by sending a USR1 signal to the …
This commit is contained in:
tobi-wan-kenobi 2018-05-06 10:41:23 +02:00 committed by GitHub
commit 1d1e360e46
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 12 deletions

View file

@ -3,6 +3,7 @@
import os
import sys
import logging
import signal
import bumblebee.theme
import bumblebee.engine
import bumblebee.config
@ -18,6 +19,9 @@ except Exception:
def main():
def sig_USR1_handler(signum,stack):
engine.write_output()
config = bumblebee.config.Config(sys.argv[1:])
if config.debug():
@ -45,6 +49,7 @@ def main():
output=output,
inp=inp,
)
signal.signal(10,sig_USR1_handler)
engine.run()
except KeyboardInterrupt as error:
inp.stop()

View file

@ -255,22 +255,25 @@ class Engine(object):
"""Start the event loop"""
self._output.start()
while self.running():
self._output.begin()
for module in self._modules:
self._current_module = module
module.update_wrapper(module.widgets())
if module.error == None:
for widget in module.widgets():
widget.link_module(module)
self._output.draw(widget=widget, module=module, engine=self)
else:
self._output.draw(widget=module.errorWidget(), module=module, engine=self)
self._output.flush()
self._output.end()
self.write_output()
if self.running():
self.input.wait(float(self._config.get("interval", 1)))
self._output.stop()
self.input.stop()
def write_output(self):
self._output.begin()
for module in self._modules:
self._current_module = module
module.update_wrapper(module.widgets())
if module.error == None:
for widget in module.widgets():
widget.link_module(module)
self._output.draw(widget=widget, module=module, engine=self)
else:
self._output.draw(widget=module.errorWidget(), module=module, engine=self)
self._output.flush()
self._output.end()
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4