gtk+ 1.2: widget grabs and signal stop emits



i have a bit of a problem with gtk+ 1.2 right now. although i intend
to move to gtk+ 2.X eventually, that is rather hard for my app (i have
lots of custom widgets that need porting to the new 2.X model before
the app can be ported), plus i use gtkmm, and am waiting on final API
stabilization there before i start the port.

i have a CList packed into/onto an EventBox. even if i return TRUE
from a button_release_event handler that i attach (not attach_after),
the default handler for the CList still returns FALSE and the event
propagates from the CList to the EventBox. it returns FALSE because
the clicked row's selected status doesn't change and/or the click was
in a part of the CList's allocated space that doesn't correspond to a
row.

to stop this, i am using gtk_signal_emit_stop_by_name(). the problem
with this is that it prevents the normal mechanism from working to
release the event grab on the widget that was setup when the
button_press event occured. or so it seems.

i don't have any real idea how to proceed on this. i cannot allow the
event to propagate to the EventBox, because this has totally different
semantics from an event on the CList. but i can't stop that with a
regular handler. i don't want to use connect_after() because thats
hard to do from gtkmm, and it too has the wrong semantics (i don't
want the CList default handler executed).

i know that GTK+ 2.X does this stuff "properly" but does anyone have
any idea how to proceed?

--p





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]