2010-11-15 22 views
0

J'essaie de réparer une fonction d'interrogation personnalisée (voir http://pastie.org/1298915). Il provient du code de base OS X de clutter library. Il est défini comme ceci:Comment combiner la gestion des événements mac et les événements gobject dans une fonction de sondage personnalisée?

void 
_clutter_events_osx_init (void) 
{ 
    g_assert (old_poll_func == NULL); 

    old_poll_func = g_main_context_get_poll_func (NULL); 
    g_main_context_set_poll_func (NULL, clutter_event_osx_poll_func); 
} 

void 
_clutter_events_osx_uninit (void) 
{ 
    if (old_poll_func) 
    { 
     g_main_context_set_poll_func (NULL, old_poll_func); 
     old_poll_func = NULL; 
    } 
} 

Il prend les événements de prises et de le transmettre à l'application mac os x natif. Le problème est que les événements de bibliothèque libsoup doivent être gérés correctement par libsoup, c'est pourquoi j'ai besoin d'utiliser un comportement de old_poll_func(). Mais je ne sais pas comment filtrer les événements sans fouillis et comment utiliser old_poll_func uniquement sur eux.

Répondre

0

Je pense qu'il n'y a pas de moyen simple de contourner les limitations de l'intégration mainloop dans le fouillis actuel.

On devrait jeter un coup d'oeil à l'intégration mainloop dans gdk/quartz, je crois que cela permettrait de gérer libsoup et tel correctement. Il devrait être facile d'adapter le code gdk pour le fouillis, juste du temps.