Change the Activity execute method to add a result boolean (handle/not handled).
When the camera key is pressed the Shell send and command to the active activity, if that's not handled than it startup org.laptop.CameraActivity.
This commit is contained in:
parent
1d98e5f6bf
commit
5623c8a3b1
@ -90,6 +90,9 @@ class ActivityHost:
|
|||||||
else:
|
else:
|
||||||
return profile.get_color()
|
return profile.get_color()
|
||||||
|
|
||||||
|
def execute(self, command, args):
|
||||||
|
self._activity.execute(command, args)
|
||||||
|
|
||||||
def share(self):
|
def share(self):
|
||||||
self._activity.share()
|
self._activity.share()
|
||||||
self._chat_widget.share()
|
self._chat_widget.share()
|
||||||
|
@ -88,9 +88,12 @@ class Shell(gobject.GObject):
|
|||||||
self._frame = Frame(self)
|
self._frame = Frame(self)
|
||||||
self._frame.show_and_hide(3)
|
self._frame.show_and_hide(3)
|
||||||
|
|
||||||
def _open_terminal_cb(self):
|
def _handle_camera_key(self):
|
||||||
self.start_activity('org.sugar.Terminal')
|
if self._current_host:
|
||||||
return False
|
if self._current_host.execute('camera', []):
|
||||||
|
return
|
||||||
|
|
||||||
|
self.start_activity('org.laptop.CameraActivity')
|
||||||
|
|
||||||
def __global_key_pressed_cb(self, grabber, key):
|
def __global_key_pressed_cb(self, grabber, key):
|
||||||
if key == 'F1':
|
if key == 'F1':
|
||||||
@ -114,7 +117,7 @@ class Shell(gobject.GObject):
|
|||||||
elif key == '<shft><alt>F10':
|
elif key == '<shft><alt>F10':
|
||||||
self.toggle_chat_visibility()
|
self.toggle_chat_visibility()
|
||||||
elif key == '0xDC': # Camera key
|
elif key == '0xDC': # Camera key
|
||||||
pass
|
self._handle_camera_key()
|
||||||
elif key == '0xE0': # Overlay key
|
elif key == '0xE0': # Overlay key
|
||||||
self.toggle_chat_visibility()
|
self.toggle_chat_visibility()
|
||||||
elif key == '0x93': # Frame key
|
elif key == '0x93': # Frame key
|
||||||
|
@ -85,9 +85,9 @@ class ActivityDbusService(dbus.service.Object):
|
|||||||
return self._activity.get_shared()
|
return self._activity.get_shared()
|
||||||
|
|
||||||
@dbus.service.method(ACTIVITY_INTERFACE,
|
@dbus.service.method(ACTIVITY_INTERFACE,
|
||||||
in_signature="sas", out_signature="")
|
in_signature="sas", out_signature="b")
|
||||||
def execute(self, command, args):
|
def execute(self, command, args):
|
||||||
self._activity.execute(command, args)
|
return self._activity.execute(command, args)
|
||||||
|
|
||||||
class Activity(gtk.Window):
|
class Activity(gtk.Window):
|
||||||
"""Base Activity class that all other Activities derive from."""
|
"""Base Activity class that all other Activities derive from."""
|
||||||
@ -170,7 +170,7 @@ class Activity(gtk.Window):
|
|||||||
|
|
||||||
def execute(self, command, args):
|
def execute(self, command, args):
|
||||||
"""Execute the given command with args"""
|
"""Execute the given command with args"""
|
||||||
pass
|
return False
|
||||||
|
|
||||||
def __destroy_cb(self, window):
|
def __destroy_cb(self, window):
|
||||||
if self._bus:
|
if self._bus:
|
||||||
|
Loading…
Reference in New Issue
Block a user