* net/dbus.el (dbus-init-bus): Declare. Apply it for the :system
[bpt/emacs.git] / lisp / net / dbus.el
index 894d7c6..c1222a6 100644 (file)
 ;; 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))