Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/view/home/MeshBox.py4
-rw-r--r--shell/view/home/snowflakelayout.py17
-rw-r--r--shell/view/home/spreadlayout.py6
3 files changed, 16 insertions, 11 deletions
diff --git a/shell/view/home/MeshBox.py b/shell/view/home/MeshBox.py
index 00ca782..3b7c4a7 100644
--- a/shell/view/home/MeshBox.py
+++ b/shell/view/home/MeshBox.py
@@ -267,7 +267,7 @@ class ActivityView(hippo.CanvasBox):
self.set_layout(self._layout)
self._icon = self._create_icon()
- self._layout.add_center(self._icon)
+ self._layout.add(self._icon, center=True)
self._update_palette()
@@ -343,7 +343,7 @@ class ActivityView(hippo.CanvasBox):
def _color_changed_cb(self, activity, pspec):
self._layout.remove(self._icon)
self._icon = self._create_icon()
- self._layout.add_center(self._icon)
+ self._layout.add(self._icon, center=True)
self._icon.set_palette(self._palette)
def _private_changed_cb(self, activity, pspec):
diff --git a/shell/view/home/snowflakelayout.py b/shell/view/home/snowflakelayout.py
index 7e59bf2..1eb58cf 100644
--- a/shell/view/home/snowflakelayout.py
+++ b/shell/view/home/snowflakelayout.py
@@ -31,18 +31,21 @@ class SnowflakeLayout(gobject.GObject,hippo.CanvasLayout):
gobject.GObject.__init__(self)
self._nflakes = 0
- def add(self, child):
+ def add(self, child, center=False):
+ if not center:
+ self._nflakes += 1
+
self._box.append(child)
box_child = self._box.find_box_child(child)
- box_child.is_center = False
-
- self._nflakes += 1
+ box_child.is_center = center
- def add_center(self, child):
- self._box.append(child)
+ def remove(self, child):
box_child = self._box.find_box_child(child)
- box_child.is_center = True
+ if not box_child.is_center:
+ self._nflakes -= 1
+
+ self._box.remove(child)
def do_set_box(self, box):
self._box = box
diff --git a/shell/view/home/spreadlayout.py b/shell/view/home/spreadlayout.py
index 3edd717..3463169 100644
--- a/shell/view/home/spreadlayout.py
+++ b/shell/view/home/spreadlayout.py
@@ -218,6 +218,10 @@ class SpreadLayout(gobject.GObject, hippo.CanvasLayout):
def do_allocate(self, x, y, width, height,
req_width, req_height, origin_changed):
for child in self._box.get_layout_children():
+ # We need to always get requests to not confuse hippo
+ min_w, child_width = child.get_width_request()
+ min_h, child_height = child.get_height_request(child_width)
+
rect = child.grid_rect
if child.grid_rect:
child.allocate(rect.x * _CELL_SIZE,
@@ -227,8 +231,6 @@ class SpreadLayout(gobject.GObject, hippo.CanvasLayout):
origin_changed)
else:
vertical_offset = child.vertical_offset
- min_w, child_width = child.get_width_request()
- min_h, child_height = child.get_height_request(child_width)
child_x = x + (width - child_width) / 2
child_y = y + (height - child_height + vertical_offset) / 2
child.allocate(child_x, child_y, child_width, child_height,