Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-08-17 10:09:45 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-08-17 10:09:45 (GMT)
commitfb829989c7c04d1d5063df3a2c64d28f1f541704 (patch)
tree7f500ce5e64bb977ed15ff4b519eaa2a0e20f4e2 /shell
parente5ed8275a1f375da460b3a757994f39ba80c4f08 (diff)
Get tasks adding to work
Diffstat (limited to 'shell')
-rw-r--r--shell/HomeWindow.py31
1 files changed, 27 insertions, 4 deletions
diff --git a/shell/HomeWindow.py b/shell/HomeWindow.py
index 9534a81..f19f4e0 100644
--- a/shell/HomeWindow.py
+++ b/shell/HomeWindow.py
@@ -1,5 +1,6 @@
import gtk
import goocanvas
+import wnck
from sugar.canvas.IconItem import IconItem
from sugar.canvas.DonutItem import DonutItem
@@ -7,10 +8,32 @@ from sugar.canvas.DonutItem import DonutItem
class TasksItem(DonutItem):
def __init__(self):
DonutItem.__init__(self, 200)
- self.add_piece(30)
- self.add_piece(30)
- self.add_piece(30)
- self.add_piece(10)
+
+ self._items = {}
+
+ screen = wnck.screen_get_default()
+ for window in screen.get_windows():
+ if not window.is_skip_tasklist():
+ self._add(window)
+ screen.connect('window_opened', self.__window_opened_cb)
+ screen.connect('window_closed', self.__window_closed_cb)
+
+ def __window_opened_cb(self, screen, window):
+ if not window.is_skip_tasklist():
+ self._add(window)
+
+ def __window_closed_cb(self, screen, window):
+ if not window.is_skip_tasklist():
+ self._remove(window)
+
+ def _remove(self, window):
+ item = self._items[window.get_xid()]
+ self.remove_child(item)
+ del self._items[window.get_xid()]
+
+ def _add(self, window):
+ item = self.add_piece(100 / 8)
+ self._items[window.get_xid()] = item
class ActivityItem(IconItem):
def __init__(self, activity):