showing in UI when grab was not possible

pull/14/head
sezanzeb 4 years ago
parent 141a147aa2
commit db1f2a0d9d

@ -602,7 +602,7 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Click on a cell below and hit a key on your device.</property>
<property name="tooltip_text" translatable="yes">Click on a cell below and hit a key on your device. If you have your preset active, the reported keycodes may be wrong.</property>
<property name="margin_top">5</property>
<property name="margin_bottom">5</property>
<property name="label" translatable="yes">Key</property>

@ -254,7 +254,14 @@ class Window:
)
if self.keycode_reader is not None:
self.keycode_reader.stop_injecting()
self.keycode_reader = KeycodeInjector(self.selected_device)
try:
self.keycode_reader = KeycodeInjector(self.selected_device)
except OSError:
self.get('status_bar').push(
CTX_ERROR,
f'Could not grab device "{self.selected_device}"'
)
def on_select_device(self, dropdown):
"""List all presets, create one if none exist yet."""

@ -190,8 +190,12 @@ class KeycodeInjector:
worker.start()
# wait for the process to notify creation of the new injection
# device, to keep the logs in order.
pipe[0].recv()
self.processes.append(worker)
status = pipe[0].recv()
if status != FAILED:
self.processes.append(worker)
if len(self.processes) == 0:
raise OSError('Could not grab any device')
def stop_injecting(self):
"""Stop injecting keycodes."""

Loading…
Cancel
Save