Implement palette groups. Use them to not popdown frame when hover a palette.
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user