]> Pileus Git - grits/commitdiff
Avoid excess updates
authorAndy Spencer <andy753421@gmail.com>
Wed, 10 Feb 2010 14:09:42 +0000 (14:09 +0000)
committerAndy Spencer <andy753421@gmail.com>
Wed, 10 Feb 2010 14:09:42 +0000 (14:09 +0000)
src/gis-opengl.c

index 34e4c8d7349d6f02298e07278612f9cea5e90602..8f03e8df4cc9c95f568877dfc2c1d7d7ce7ad625 100644 (file)
@@ -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
 }