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>2007-07-06 12:36:59 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2007-07-06 12:36:59 (GMT)
commit7468faa840203399542c1b5085a8c744df4eb14f (patch)
tree8fc05a241ab183f848d56261e4810c44c882eccc /shell
parent9ec946d2d0f9b689e18076c5eb41b37344d56b2d (diff)
Implement palette groups. Use them to not popdown frame when hover a palette.
Diffstat (limited to 'shell')
-rw-r--r--shell/view/clipboardmenu.py2
-rw-r--r--shell/view/frame/ActivitiesBox.py7
-rw-r--r--shell/view/frame/FriendsBox.py1
-rw-r--r--shell/view/frame/frame.py17
4 files changed, 22 insertions, 5 deletions
diff --git a/shell/view/clipboardmenu.py b/shell/view/clipboardmenu.py
index 9be8fb8..648442a 100644
--- a/shell/view/clipboardmenu.py
+++ b/shell/view/clipboardmenu.py
@@ -44,6 +44,8 @@ class ClipboardMenu(Palette):
self._percent = percent
self._activity = activity
+ self.set_group_id('frame')
+
if percent < 100:
self._progress_bar = gtk.ProgressBar()
self._update_progress_bar()
diff --git a/shell/view/frame/ActivitiesBox.py b/shell/view/frame/ActivitiesBox.py
index 032a8bb..034ccab 100644
--- a/shell/view/frame/ActivitiesBox.py
+++ b/shell/view/frame/ActivitiesBox.py
@@ -18,6 +18,7 @@ import hippo
import logging
from sugar.graphics import units
+from sugar.graphics.palette import Palette
from sugar.graphics.xocolor import XoColor
from sugar.graphics.iconbutton import IconButton
from sugar import profile
@@ -27,7 +28,11 @@ from model import bundleregistry
class ActivityButton(IconButton):
def __init__(self, activity):
IconButton.__init__(self, icon_name=activity.get_icon())
- self.set_tooltip(activity.get_name())
+
+ palette = Palette(activity.get_name())
+ palette.set_group_id('frame')
+ self.set_palette(palette)
+
self._activity = activity
def get_bundle_id(self):
diff --git a/shell/view/frame/FriendsBox.py b/shell/view/frame/FriendsBox.py
index cde51f5..18b57d3 100644
--- a/shell/view/frame/FriendsBox.py
+++ b/shell/view/frame/FriendsBox.py
@@ -25,6 +25,7 @@ from model.BuddyModel import BuddyModel
class FriendIcon(BuddyIcon):
def __init__(self, shell, buddy):
BuddyIcon.__init__(self, shell, buddy)
+ self.get_palette().set_group_id('frame')
def prelight(self, enter):
if enter:
diff --git a/shell/view/frame/frame.py b/shell/view/frame/frame.py
index 2b21576..3f3367b 100644
--- a/shell/view/frame/frame.py
+++ b/shell/view/frame/frame.py
@@ -20,6 +20,11 @@ import gtk
import gobject
import hippo
+from sugar.graphics import animator
+from sugar.graphics import units
+from sugar.graphics import palettegroup
+from sugar.clipboard import clipboardservice
+
from view.frame.eventarea import EventArea
from view.frame.ActivitiesBox import ActivitiesBox
from view.frame.ZoomBox import ZoomBox
@@ -28,9 +33,6 @@ from view.frame.FriendsBox import FriendsBox
from view.frame.framewindow import FrameWindow
from view.frame.clipboardpanelwindow import ClipboardPanelWindow
from model.shellmodel import ShellModel
-from sugar.graphics import animator
-from sugar.graphics import units
-from sugar.clipboard import clipboardservice
MODE_NONE = 0
MODE_MOUSE = 1
@@ -126,6 +128,9 @@ class Frame(object):
self.mode = MODE_NONE
self.visible = False
+ self._palette_group = palettegroup.get_group('frame')
+ self._palette_group.connect('popdown', self._palette_group_popdown_cb)
+
self._left_panel = None
self._right_panel = None
self._top_panel = None
@@ -309,10 +314,14 @@ class Frame(object):
if not self._hover:
return
- if not self._is_hover():
+ if not self._is_hover() and not self._palette_group.is_up():
self._hover = False
self._mouse_listener.mouse_leave()
+ def _palette_group_popdown_cb(self, group):
+ if not self._is_hover():
+ self._mouse_listener.mouse_leave()
+
def _drag_motion_cb(self, window, context, x, y, time):
self._mouse_listener.mouse_enter()