From: Andy Spencer Date: Wed, 10 Feb 2010 14:09:42 +0000 (+0000) Subject: Avoid excess updates X-Git-Tag: v0.4~32 X-Git-Url: http://pileus.org/git/?p=grits;a=commitdiff_plain;h=e589cb4bee133b2df34853fbbcc24355e1f2f4c9 Avoid excess updates --- diff --git a/src/gis-opengl.c b/src/gis-opengl.c index 34e4c8d..8f03e8d 100644 --- a/src/gis-opengl.c +++ b/src/gis-opengl.c @@ -465,9 +465,11 @@ static gboolean on_key_press(GisOpenGL *opengl, GdkEventKey *event, gpointer _) return FALSE; } -static gboolean _update_errors_cb(gpointer sphere) +static gboolean _update_errors_cb(gpointer _opengl) { - roam_sphere_update_errors(sphere); + GisOpenGL *opengl = _opengl; + roam_sphere_update_errors(opengl->sphere); + opengl->ue_source = 0; return FALSE; } static void on_view_changed(GisOpenGL *opengl, @@ -476,8 +478,9 @@ static void on_view_changed(GisOpenGL *opengl, g_debug("GisOpenGL: on_view_changed"); _set_visuals(opengl); #ifndef ROAM_DEBUG - opengl->ue_source = g_idle_add_full(G_PRIORITY_HIGH_IDLE+30, - _update_errors_cb, opengl->sphere, NULL); + if (!opengl->ue_source) + opengl->ue_source = g_idle_add_full(G_PRIORITY_HIGH_IDLE+30, + _update_errors_cb, opengl, NULL); //roam_sphere_update_errors(opengl->sphere); #endif }