From 90049ff52cfe2babeed34be94df58f15b6a4bfa7 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauld.mccarthy@gmail.com>
Date: Sun, 24 Jan 2016 13:20:16 +0000
Subject: [PATCH] Tweak to SliceCanvas globject manamgement - if an idle create
 task fails, it clears the pending flag for a GLOBject.

---
 fsl/fsleyes/gl/slicecanvas.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/fsl/fsleyes/gl/slicecanvas.py b/fsl/fsleyes/gl/slicecanvas.py
index 589add251..ef6217330 100644
--- a/fsl/fsleyes/gl/slicecanvas.py
+++ b/fsl/fsleyes/gl/slicecanvas.py
@@ -264,7 +264,9 @@ class SliceCanvas(props.HasProperties):
             disp.removeListener('overlayType',  self.name)
             disp.removeListener('enabled',      self.name)
 
-            if globj is not None:
+            # globj could be None, or could
+            # be False - see genGLObject.
+            if globj:
                 globj.deregister(self.name)
                 globj.destroy()
 
@@ -790,6 +792,7 @@ class SliceCanvas(props.HasProperties):
             # We need a GL context to create a new GL
             # object. If we can't get it now, 
             if not self._setGLContext():
+                self._glObjects.pop(overlay)
                 return
 
             globj = globject.createGLObject(overlay, display)
-- 
GitLab