diff options
author | Simon Rettberg | 2019-02-18 11:55:41 +0100 |
---|---|---|
committer | Simon Rettberg | 2019-02-18 11:55:41 +0100 |
commit | ae69a754244c4e475c8d2591772ca8e005071d83 (patch) | |
tree | 58b3fa7abc2dcfe3c23e1c0ce108950c720826ab /hacks/glx/topblock.c | |
parent | Update gitignore (diff) | |
download | xscreensaver-ae69a754244c4e475c8d2591772ca8e005071d83.tar.gz xscreensaver-ae69a754244c4e475c8d2591772ca8e005071d83.tar.xz xscreensaver-ae69a754244c4e475c8d2591772ca8e005071d83.zip |
Update to 5.42
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); |