@ -205,11 +205,16 @@ class _PaletteMenuWidget(Gtk.Menu):
return False
return False
def _motion_notify_cb ( self , widget , event ) :
def _motion_notify_cb ( self , widget , event ) :
rect = self . _invoker . get_rect ( )
x = event . x_root
x = event . x_root
y = event . y_root
y = event . y_root
in_invoker = x > = rect . x and x < ( rect . x + rect . width ) \
and y > = rect . y and y < ( rect . y + rect . height )
if type ( self . _invoker ) is CellRendererInvoker :
in_invoker = self . _invoker . point_in_cell_renderer ( x , y )
else :
rect = self . _invoker . get_rect ( )
in_invoker = x > = rect . x and x < ( rect . x + rect . width ) \
and y > = rect . y and y < ( rect . y + rect . height )
if in_invoker != self . _mouse_in_invoker :
if in_invoker != self . _mouse_in_invoker :
self . _mouse_in_invoker = in_invoker
self . _mouse_in_invoker = in_invoker
self . _reevaluate_state ( )
self . _reevaluate_state ( )
@ -1256,7 +1261,7 @@ class CellRendererInvoker(Invoker):
def __motion_notify_event_cb ( self , widget , event ) :
def __motion_notify_event_cb ( self , widget , event ) :
if event . window != widget . get_bin_window ( ) :
if event . window != widget . get_bin_window ( ) :
return
return
if self . _ point_in_cell_renderer( event . x , event . y ) :
if self . point_in_cell_renderer( event . x , event . y ) :
tree_view = self . _tree_view
tree_view = self . _tree_view
path , column_ , x_ , y_ = tree_view . get_path_at_pos ( int ( event . x ) ,
path , column_ , x_ , y_ = tree_view . get_path_at_pos ( int ( event . x ) ,
@ -1295,7 +1300,7 @@ class CellRendererInvoker(Invoker):
return False
return False
def __button_release_event_cb ( self , widget , event ) :
def __button_release_event_cb ( self , widget , event ) :
if event . button == 1 and self . _ point_in_cell_renderer( event . x ,
if event . button == 1 and self . point_in_cell_renderer( event . x ,
event . y ) :
event . y ) :
tree_view = self . _tree_view
tree_view = self . _tree_view
path , column_ , x_ , y_ = tree_view . get_path_at_pos ( int ( event . x ) ,
path , column_ , x_ , y_ = tree_view . get_path_at_pos ( int ( event . x ) ,
@ -1303,14 +1308,14 @@ class CellRendererInvoker(Invoker):
self . _cell_renderer . emit ( ' clicked ' , path )
self . _cell_renderer . emit ( ' clicked ' , path )
# So the treeview receives it and knows a drag isn't going on
# So the treeview receives it and knows a drag isn't going on
return False
return False
if event . button == 3 and self . _ point_in_cell_renderer( event . x ,
if event . button == 3 and self . point_in_cell_renderer( event . x ,
event . y ) :
event . y ) :
self . notify_right_click ( )
self . notify_right_click ( )
return True
return True
else :
else :
return False
return False
def _ point_in_cell_renderer( self , event_x , event_y ) :
def point_in_cell_renderer( self , event_x , event_y ) :
pos = self . _tree_view . get_path_at_pos ( int ( event_x ) , int ( event_y ) )
pos = self . _tree_view . get_path_at_pos ( int ( event_x ) , int ( event_y ) )
if pos is None :
if pos is None :
return False
return False