summaryrefslogtreecommitdiffstats
path: root/ibus/clientmanager.py
blob: 92030dae7c26f00da88719da5839c255678561d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import ibus

class ClientManager (ibus.Object):
	def __init__ (self):
		self._clients = {}

	def register_client (self, name, ibusconn):
		if ibusconn in self._clients:
			raise ibus.IBusException ("client has been registered")
		client = ibus.Client (name, ibusconn)
		self._clients[ibusconn] = client
		ibusconn.connect ("destroy", self._ibusconn_destroy_cb)
		return client

	def lookup_client (self, ibusconn):
		return self._clients[ibusconn]

	def _ibusconn_destroy_cb (self, ibusconn):
		del self._clients[ibusconn]