diff options
author | Simon Rettberg | 2019-02-18 11:55:58 +0100 |
---|---|---|
committer | Simon Rettberg | 2019-02-18 11:55:58 +0100 |
commit | aa7530630e595b80d5db54655fd827b61edc0fd7 (patch) | |
tree | 048cb74072450c7592f254c3537ac8f252d09d73 /hacks/glx/topblock.c | |
parent | Forgot one DPMS killing instance (diff) | |
parent | Update to 5.42 (diff) | |
download | xscreensaver-aa7530630e595b80d5db54655fd827b61edc0fd7.tar.gz xscreensaver-aa7530630e595b80d5db54655fd827b61edc0fd7.tar.xz xscreensaver-aa7530630e595b80d5db54655fd827b61edc0fd7.zip |
Merge branch 'master' into openslxv23
Diffstat (limited to 'hacks/glx/topblock.c')
-rw-r--r-- | hacks/glx/topblock.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/hacks/glx/topblock.c b/hacks/glx/topblock.c index 9161d38..59a463f 100644 --- a/hacks/glx/topblock.c +++ b/hacks/glx/topblock.c @@ -179,13 +179,20 @@ ENTRYPOINT void free_topBlock(ModeInfo *mi) { topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; - NODE *llCurrent, *llOld; - llCurrent = tb->blockNodeRoot; - while (llCurrent != NULL) { - llOld = llCurrent; - llCurrent = llCurrent->next; - free(llOld); - } + NODE *llCurrent, *llOld; + + if (!tb->glx_context) return; + glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *tb->glx_context); + + llCurrent = tb->blockNodeRoot; + while (llCurrent != NULL) { + llOld = llCurrent; + llCurrent = llCurrent->next; + free(llOld); + } + if (tb->trackball) gltrackball_free (tb->trackball); + if (glIsList(tb->carpet)) glDeleteLists(tb->carpet, 1); + if (glIsList(tb->block)) glDeleteLists(tb->block, 1); } /* setup */ @@ -309,7 +316,7 @@ draw_topBlock (ModeInfo *mi) if (!tb->glx_context) return; - glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(tb->glx_context)); + glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *tb->glx_context); mi->polygon_count = 0; generateNewBlock(mi); |