Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <simon@laptop.org>2012-11-10 10:14:55 (GMT)
committer Simon Schampijer <simon@laptop.org>2012-11-10 10:14:55 (GMT)
commit9876f57bb48a9b9d4d978f2a6c26ac5d4a399bce (patch)
tree938ddd045a36ae71a11bbf5356b2ab4cde8d7f7a
parent780a2b5a59d9f719ca7b3a126c973857c47ea4f0 (diff)
Frame Palette interaction cleanup
- add a 'done' signal to the CurrentActivityPalette that is emitted when on item in the Palette is selected, when received in the ActivitiesTray we do hide the Frame - call 'popdown_all' on the PaletteGroup when the Frame is hidden, this makes sure that all the Palettes are popped down in that case - Journal Palette: remove the popdown call when 'show content' is selected, this introduced a race - this fixes as well SL #4171 Signed-off-by: Simon Schampijer <simon@laptop.org> Acked-by: Manuel QuiƱones <manuq@laptop.org>
-rw-r--r--src/jarabe/frame/activitiestray.py4
-rw-r--r--src/jarabe/frame/frame.py1
-rw-r--r--src/jarabe/view/palettes.py15
3 files changed, 14 insertions, 6 deletions
diff --git a/src/jarabe/frame/activitiestray.py b/src/jarabe/frame/activitiestray.py
index 5fb1826..f8e15c9 100644
--- a/src/jarabe/frame/activitiestray.py
+++ b/src/jarabe/frame/activitiestray.py
@@ -84,11 +84,11 @@ class ActivityButton(RadioToolButton):
palette = JournalPalette(self._home_activity)
else:
palette = CurrentActivityPalette(self._home_activity)
- palette.connect('popdown', self.__palette_popped_down_cb)
+ palette.connect('done', self.__palette_item_selected_cb)
palette.set_group_id('frame')
self.set_palette(palette)
- def __palette_popped_down_cb(self, widget):
+ def __palette_item_selected_cb(self, widget):
frame = jarabe.frame.get_view()
frame.hide()
diff --git a/src/jarabe/frame/frame.py b/src/jarabe/frame/frame.py
index 410e08b..44293bb 100644
--- a/src/jarabe/frame/frame.py
+++ b/src/jarabe/frame/frame.py
@@ -113,6 +113,7 @@ class Frame(object):
if self._animator:
self._animator.stop()
+ palettegroup.popdown_all()
self._animator = animator.Animator(0.5)
self._animator.add(_Animation(self, 0.0))
self._animator.start()
diff --git a/src/jarabe/view/palettes.py b/src/jarabe/view/palettes.py
index 8e77ea3..34944f3 100644
--- a/src/jarabe/view/palettes.py
+++ b/src/jarabe/view/palettes.py
@@ -22,6 +22,7 @@ import logging
from gi.repository import GConf
import glib
from gi.repository import Gtk
+from gi.repository import GObject
from sugar3 import env
from sugar3.graphics.palette import Palette
@@ -71,6 +72,13 @@ class BasePalette(Palette):
class CurrentActivityPalette(BasePalette):
+
+ __gsignals__ = {
+ 'done': (GObject.SignalFlags.RUN_FIRST,
+ None,
+ ([])),
+ }
+
def __init__(self, home_activity):
self._home_activity = home_activity
BasePalette.__init__(self, home_activity)
@@ -108,20 +116,20 @@ class CurrentActivityPalette(BasePalette):
self.menu_box.show_all()
def __resume_activate_cb(self, menu_item):
- self.popdown(immediate=True)
self._home_activity.get_window().activate(Gtk.get_current_event_time())
+ self.emit('done')
def __view_source__cb(self, menu_item):
- self.popdown(immediate=True)
setup_view_source(self._home_activity)
shell_model = shell.get_model()
if self._home_activity is not shell_model.get_active_activity():
self._home_activity.get_window().activate( \
Gtk.get_current_event_time())
+ self.emit('done')
def __stop_activate_cb(self, menu_item):
- self.popdown(immediate=True)
self._home_activity.get_window().close(1)
+ self.emit('done')
class ActivityPalette(Palette):
@@ -207,7 +215,6 @@ class JournalPalette(BasePalette):
self.connect('popup', self.__popup_cb)
def __open_activate_cb(self, menu_item):
- self.popdown(immediate=True)
self._home_activity.get_window().activate(Gtk.get_current_event_time())
def __popup_cb(self, palette):