[output] Ignore empty commands
When receiving a "nop" (None) command, skip it. Otherwise, an exception is thrown and input processing stops. Also, remove the "communicate()" call to *not* wait until a process has finished until resuming input processing. Otherwise, whenever an external program (pavucontrol, nautilius, ...) is started, any further input processing is stalled until the program has been closed again. fixes #24
This commit is contained in:
parent
4819147410
commit
bf381794bd
1 changed files with 2 additions and 1 deletions
|
@ -52,12 +52,13 @@ class Command(object):
|
||||||
self._command = [ self._command ]
|
self._command = [ self._command ]
|
||||||
|
|
||||||
for cmd in self._command:
|
for cmd in self._command:
|
||||||
|
if not cmd: continue
|
||||||
if inspect.ismethod(cmd):
|
if inspect.ismethod(cmd):
|
||||||
cmd(self._event, self._widget)
|
cmd(self._event, self._widget)
|
||||||
else:
|
else:
|
||||||
c = cmd.format(*args, **kwargs)
|
c = cmd.format(*args, **kwargs)
|
||||||
DEVNULL = open(os.devnull, 'wb')
|
DEVNULL = open(os.devnull, 'wb')
|
||||||
subprocess.Popen(shlex.split(c), stdout=DEVNULL, stderr=DEVNULL).communicate()
|
subprocess.Popen(shlex.split(c), stdout=DEVNULL, stderr=DEVNULL)
|
||||||
|
|
||||||
class Output(object):
|
class Output(object):
|
||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
|
|
Loading…
Reference in a new issue