Hi,
On Wed, 2009-08-12 at 13:12 +0200, Carsten Behling wrote:
> I currently try to understand the directfb GDK backend code for event
> handling.
>
> Can anybody tell me why the dfb_events_io_func is used to call
> dfb_events_dispatch ?
>
> In the win32 backend and the old linux-fb backend there is the
> dispatch
> function registered as follws:
>
> static GSourceFuncs xxx_events_funcs = {
> xxx_events_prepare,
> xxx_events_check,
> xxx_events_dispatch,
> NULL
> };
>
> ...
>
> void
> _gdk_events_init (void)
> {
> GSource *source;
>
> source = g_source_new (&xxx_events_funcs, sizeof (GSource));
> ...
> g_source_attach (source, NULL);
> }
>
> ...
>
> Why using the detour with g_io_channel_unix_new(...) ?
Because it is much simpler to use a GIOChannel than to implement all
GSourceFuncs. And it boils down to the same functionality.
> BTW, is the dfb_events_io_func correctly attached with
> g_source_set_callback(..) in _gdk_events_init(..) ?
> Should we use g_io_add_watch(...) instead ?
The code looks correct to me. One could also use g_io_add_watch() here.
The difference is that the current code sets
g_source_set_can_recurse (source, TRUE);
which would not be called by g_io_add_watch(). I am not sure if this is
done intentionally. But I don't think it should be changed unless there
is a good reason.
Sven
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev