[main] Redraw on click
Whenever a module in the bar is clicked, immediately redraw the line, to make for a snappier user experience (especially when muting/unmuting).
This commit is contained in:
parent
89b97d7283
commit
b99c454a5a
3 changed files with 15 additions and 5 deletions
|
@ -1,9 +1,15 @@
|
|||
|
||||
class Output(object):
|
||||
def __init__(self, theme):
|
||||
def __init__(self, refresh, theme):
|
||||
self._theme = theme
|
||||
self._refresh = refresh
|
||||
self._callbacks = {}
|
||||
|
||||
def redraw(self):
|
||||
self._refresh.acquire()
|
||||
self._refresh.notify()
|
||||
self._refresh.release()
|
||||
|
||||
def add_callback(self, cmd, button, module=None):
|
||||
if module:
|
||||
module = module.replace("bumblebee.modules.", "")
|
||||
|
|
|
@ -25,10 +25,11 @@ def read_input(output):
|
|||
button = event.get("button", -1)
|
||||
)
|
||||
subprocess.Popen(shlex.split(cb), stdout=DEVNULL, stderr=DEVNULL)
|
||||
output.redraw()
|
||||
|
||||
class i3bar(bumblebee.output.Output):
|
||||
def __init__(self, theme):
|
||||
super(i3bar, self).__init__(theme)
|
||||
def __init__(self, refresh, theme):
|
||||
super(i3bar, self).__init__(refresh, theme)
|
||||
self._data = []
|
||||
|
||||
self.add_callback("i3-msg workspace prev_on_output", 4)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue