GTimeoutSources



Hi all,
        I'm going to end up having to write some enhancement to
the g_timeout_* api for my app, so I thought I'd consult the pro's ;-)
maybe that way I could send the patches upstream.

Firstly, I need something like:
    g_timeout_source_set_interval()

(I'm trying to use timeouts to animate animations with variable frame
durations)

I thought that if I'm going to tackle this, I might as well take a look at:
     http://bugzilla.gnome.org/show_bug.cgi?id=143061

This poses a number of problems,
    - GTimeoutSource is private to gmain.c so I cant ensure the correct
      type of GSource to g_timeout_source_set_interval() without makeing
      it public.
    - GSources are arbitrarily "listed" in the GMainContext so if a sorting
      concept were to be used (to address 143061) this would majorly change
      gmain.c (which may be due for a rework, but, I don't have the time to
      get that dirty).

The approach I was thinking of taking is to write a custom timout source
which would be a somthing like a "GTimeoutPool", where I could easily
add an adjustable interval *and* easily address the afore mentioned bug
(or enhancement request).

Ofcource this wouldn't do anything for slow applications already using the
g_timout_* api (as you couldn't really "hijack" the g_timeout api
since everybody uses g_source_remove() to remove timouts, I guess if you
streached it, something really ugly could be hacked out).

Would this enhancement be welcome (i.e. GTimeoutPool) ?

Any further ideas on how this could be done ?

Cheers,
                                       -Tristan

PS:
   Please keep me in CC since my connection with gtk-devel seems
to be intermittent these days.





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