Create the hosts when windows are displayed

This commit is contained in:
Marco Pesenti Gritti 2006-08-09 14:22:58 +02:00
parent a0c69066d4
commit a9a65f42df

View File

@ -48,10 +48,12 @@ class Shell:
def __init__(self, registry): def __init__(self, registry):
self._screen = wnck.screen_get_default() self._screen = wnck.screen_get_default()
self._registry = registry self._registry = registry
self._hosts = {}
self._console_windows = {}
def start(self): def start(self):
log_writer = LogWriter("Shell", False) #log_writer = LogWriter("Shell", False)
log_writer.start() #log_writer.start()
session_bus = dbus.SessionBus() session_bus = dbus.SessionBus()
bus_name = dbus.service.BusName('com.redhat.Sugar.Shell', bus=session_bus) bus_name = dbus.service.BusName('com.redhat.Sugar.Shell', bus=session_bus)
@ -66,8 +68,18 @@ class Shell:
self._home_window = HomeWindow(self) self._home_window = HomeWindow(self)
self._home_window.show() self._home_window.show()
self._hosts = {} self._screen.connect('window-opened', self.__window_opened_cb)
self._console_windows = {} self._screen.connect('window-closed', self.__window_closed_cb)
def __window_opened_cb(self, screen, window):
if window.get_window_type() == wnck.WINDOW_NORMAL:
xid = window.get_xid()
self._hosts[xid] = ActivityHost(self, xid)
def __window_closed_cb(self, screen, window):
if window.get_window_type() == wnck.WINDOW_NORMAL:
xid = window.get_xid()
self._hosts[xid] = None
def get_current_activity(self): def get_current_activity(self):
window = self._screen.get_active_window() window = self._screen.get_active_window()
@ -82,10 +94,6 @@ class Shell:
xid = parent.get_xid() xid = parent.get_xid()
if xid != None: if xid != None:
if self._hosts.has_key(xid):
return self._hosts[xid]
else:
self._hosts[xid] = ActivityHost(self, xid)
return self._hosts[xid] return self._hosts[xid]
return None return None