[kupfer: 16/31] Use both gtk and keybinder event time
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer: 16/31] Use both gtk and keybinder event time
- Date: Thu, 31 Dec 2009 12:55:48 +0000 (UTC)
commit ff52634ef3368f34facddde675e89eb01c9f4523
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date: Wed Dec 30 07:37:05 2009 +0100
Use both gtk and keybinder event time
In the launch module, use "both" the gtk event time and the keybinder
event time to get correct behavior on trigger/keybinding activation of
applications.
kupfer/keybindings.py | 8 ++++++++
kupfer/launch.py | 8 ++++++--
2 files changed, 14 insertions(+), 2 deletions(-)
---
diff --git a/kupfer/keybindings.py b/kupfer/keybindings.py
index 2d0bcbd..0b3f914 100644
--- a/kupfer/keybindings.py
+++ b/kupfer/keybindings.py
@@ -34,6 +34,14 @@ gobject.signal_new("keybinding", KeyboundObject, gobject.SIGNAL_RUN_LAST,
_currently_bound = {}
+def get_current_event_time():
+ "Return current event time as given by keybinder"
+ try:
+ import keybinder
+ except ImportError:
+ return 0
+ return keybinder.get_current_event_time()
+
def _register_bound_key(keystr, target):
_currently_bound[target] = keystr
diff --git a/kupfer/launch.py b/kupfer/launch.py
index 11f827b..a88bbdd 100644
--- a/kupfer/launch.py
+++ b/kupfer/launch.py
@@ -7,6 +7,7 @@ import gobject
from kupfer import pretty, config
from kupfer import scheduler
+from kupfer import keybindings
try:
import wnck
@@ -61,6 +62,9 @@ def application_id(app_info):
app_id = app_id[:-len(".desktop")]
return app_id
+def _current_event_time():
+ return gtk.get_current_event_time() or keybindings.get_current_event_time()
+
def launch_application(app_info, files=(), uris=(), paths=(), track=True, activate=True):
"""
Launch @app_info correctly, using a startup notification
@@ -86,7 +90,7 @@ def launch_application(app_info, files=(), uris=(), paths=(), track=True, activa
workspace = wnck.screen_get_default().get_active_workspace()
nbr = workspace.get_number() if workspace else -1
ctx.set_desktop(nbr)
- ctx.set_timestamp(gtk.get_current_event_time())
+ ctx.set_timestamp(_current_event_time())
if track:
app_id = application_id(app_info)
@@ -232,7 +236,7 @@ class ApplicationsMatcherService (pretty.OutputMixin):
return False
# for now, just take any window
- evttime = gtk.get_current_event_time()
+ evttime = _current_event_time()
for w in application_windows:
# we special-case the desktop
# only show desktop if it's the only window of this app
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]