es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

gtk_events_pending( ) es TRUE, pero gtk_get_current_event( ) es NULL

Estoy intentando portar una aplicación antigua GTK+ a GTK2 y me he quedado con el siguiente problema: En la versión de GTK+, gtk_events_pending() devuelve 0, mientras que en la versión de GTK2 devuelve 1. Hay muy pocos cambios en el código, así que no entiendo por qué la misma función devuelve valores diferentes en GTK+ y GTK2. Entonces intenté averiguar qué evento está pendiente:

if (gtk_events_pending() == 0) {
  fprintf(stderr, "gtk_events_pending=0\n");
} else {
  fprintf(stderr, "gtk_events_pending=1\n");
  if (gtk_get_current_event() == NULL) {
    fprintf(stderr, "current event is NULL\n");
  }
}

Sin embargo, siempre obtengo NULL como evento actual. ¿Cómo puede ocurrir esto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Es posible que no haya eventos pendientes en la versión GTK2, pero la función está detectando algún tratamiento interno de eventos que no se clasifica como “evento” en la versión GTK+. También es posible que la forma en que se manejan o procesan los eventos haya cambiado entre las dos versiones, por lo que obtiene diferentes resultados.

    En cuanto a por qué siempre obtiene NULL como evento actual, podría ser que el evento ya se haya procesado o que la función gtk_get_current_event() no esté devolviendo el valor esperado debido a cambios en la versión GTK2.

    Para solucionar este problema, puede intentar depurar su código y observar el comportamiento del manejo de eventos en ambas versiones. También puede consultar la documentación de GTK o buscar ayuda en la comunidad de GTK para comprender los cambios en el manejo de eventos entre las dos versiones.

Comments are closed.