Domanda

Come fare domanda di X11 per ascoltare il segnale DBus. Che per ascoltare dovrebbe essere lanciato dBus gmainloop del segnale, e per X11 app Xevent loop. Quindi non v'è un modo elegante per fare questo? O devo correre gmainloop in un altro thread.

Saluti, Levon

È stato utile?

Soluzione

Se si desidera bloccare in due o più cose (dire X e dbus) avete bisogno di un ciclo principale. Si potrebbe utilizzare ciclo principale di GLib o libev o di altre librerie.

Ecco due esempi di utilizzo Xlib con ciclo principale di GLib:

  1. http://git.gnome.org/browse /gtk+/tree/gdk/x11/gdkeventsource.c
  2. http://git.gnome.org/browse /metacity/tree/src/core/eventqueue.c

Altri suggerimenti

Non dovresti essere in grado di ottenere un descrittore di file per il ciclo degli eventi X? Poi si dovrebbe essere in grado di aggiungerlo al gobject mainloop.

Da quello che posso vedere, ConnectionNumber(xdpy) darà il file descrittore, che è quindi possibile aggiungere a una fonte, che è possibile utilizzare con g_source_add_poll().

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top