On Sat, 2003-12-06 at 18:41, bulia byak wrote:
I cannot make it work. I added
gtk_widget_grab_focus (&(dtw->canvas->widget));
into sp_desktop_widget_new in desktop.c. For debugging, I also added
gtk_signal_connect (GTK_OBJECT (&(dtw->canvas->widget)), "event", GTK_SIGNAL_FUNC (sp_canvas_event_handler), &(dtw->canvas->widget));
and put some debug output into sp_canvas_event_handler. With or without the grab, it looks like the canvas widget gets keypresses, but does not pass them on to the event context. That is, it does pass it to the event context but only when the mouse is within the canvas.
Ick.
To be honest I still don't totally understand how events are handed off to event contexts in Sodipodi/Inkscape. :/
Maybe we need to grab focus on the event context, not on the canvas? But how to do that? I think the event context is not a GTK widget.
Well, ultimately _some_ widget must receive the events and passing them on to the event context. We need to figure out which widget that is/should be.
-mental