summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/net/dbus.el10
2 files changed, 15 insertions, 0 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 21851fa7b89..69d02d2a68c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2009-08-18 Michael Albinus <michael.albinus@gmx.de>
+
+ * net/dbus.el (dbus-init-bus): Declare. Apply it for the :system
+ and :session buses.
+
2009-08-18 Kenichi Handa <handa@m17n.org>
* international/ucs-normalize.el (ucs-normalize-version): Changed
diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el
index 894d7c63787..c1222a66f66 100644
--- a/lisp/net/dbus.el
+++ b/lisp/net/dbus.el
@@ -34,12 +34,22 @@
;; option "--without-dbus". Declare used subroutines and variables.
(declare-function dbus-call-method "dbusbind.c")
(declare-function dbus-call-method-asynchronously "dbusbind.c")
+(declare-function dbus-init-bus "dbusbind.c")
(declare-function dbus-method-return-internal "dbusbind.c")
(declare-function dbus-method-error-internal "dbusbind.c")
(declare-function dbus-register-signal "dbusbind.c")
(defvar dbus-debug)
(defvar dbus-registered-functions-table)
+;; Initialize :system and :session buses. This adds their file
+;; descriptors to input_wait_mask, in order to detect incoming
+;; messages immediately.
+;; We must avoid to call the function twice for a bus, because the
+;; DBusWatch will be removed then.
+(when (and (featurep 'dbusbind) (not (featurep 'dbus)))
+ (dbus-init-bus :system)
+ (dbus-init-bus :session))
+
;; Pacify byte compiler.
(eval-when-compile
(require 'cl))