Hi,

On Tue, 26 Jul 2011 21:07:56 +0200
Valentín <valen...@sanva.net> wrote:

> Hello!!
> 
> I have a problem with enter_notify_event and leave_notify_event. Let
> me explain:
> 
> I have an VBox with 5 EventBox widgets, and inside each EventBox I
> have a HBox with one Label and 2 Buttons. I connect the signals
> enter_notify_event and leave_notify_event of each of the EventBox
> widgets to a callback and everything seems to work well: If you move
> the mouse pointer vertically between EventBox widgets you can see the
> events --I print a message from those mentioned callbacks, and I also
> modify the Labels making their text bold on enter_notify_event and
> normal on leave_notify_event.
> 
> But If you move the mouse pointer horizontally --within the same
> EventBox-- you'll also get enter/leave_notify_events, and this
> shouldn't happen since the mouse pointer is always inside the
> EventBox. More precisely, you'll get a leave_notify_event when moving
> the pointer to a button (although the button is a child of the
> EventBox) and the corresponding enter_notify_event when going back
> from the button's area to another area also inside the EventBox.

This has nothing to do with vertical pointer movement vs. horizontal
pointer movement. As soon as you hover the button inside the event box
you'll get a leave notify event. That's normal and it only  happens
with widgets that have a GdkWindow (such as GtkButton).

I recently had to solve the same problem (having an icon, a label
and a button in an event box). First of all, what it sounds like
you're trying to do is control the prelight state of the event
boxes and render their content differently when they are prelit. 

What you can do to achieve this is override the enter_notify and
leave_notify handlers. In enter_notify, set the state to prelight. In
leave_notify, check whether the pointer has moved to the button or
whether it has left the event box entirely. You can do that with a
combination of gtk_widget_get_pointer() and gdk_window_get_geometry().

Here's how I did it in Thunar:

  
http://git.xfce.org/xfce/thunar/tree/thunar/thunar-shortcut-row.c?h=jannis/new-shortcuts-pane#n688

Hope this helps,
Jannis
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to