kwo pushed a commit to branch master. http://git.enlightenment.org/e16/e16.git/commit/?id=b27ff7ee74c0390c927fa5afa49ac4ccf2b257e0
commit b27ff7ee74c0390c927fa5afa49ac4ccf2b257e0 Author: Kim Woelders <k...@woelders.dk> Date: Wed May 6 07:51:23 2020 +0200 Fix technical/shapewin move mode through edge flip The technical etc. move modes using a shaped window ("avoid server grab" mode) would create a new shape window on every edge flip, which could only be removed by restarting e16. Broken since 0c16916258bde5de8874b96f6539be6e6b2ab2cf - v1.0.12. --- src/draw.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/draw.c b/src/draw.c index 511200e7..5b1cff73 100644 --- a/src/draw.c +++ b/src/draw.c @@ -1,6 +1,6 @@ /* * Copyright (C) 2000-2007 Carsten Haitzler, Geoff Harrison and various contributors - * Copyright (C) 2007-2018 Kim Woelders + * Copyright (C) 2007-2020 Kim Woelders * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to @@ -226,12 +226,16 @@ DrawEwinShape(EWin * ewin, int md, int x, int y, int w, int h, { EwinShapeSet(ewin); - psd = ECALLOC(ShapeData, 1); - ewin->shape_data = psd; + psd = (ShapeData *) ewin->shape_data; if (!psd) - goto done; - psd->root = WinGetXwin(VROOT); - EwinBorderGetSize(ewin, &psd->bl, &psd->br, &psd->bt, &psd->bb); + { + psd = ECALLOC(ShapeData, 1); + if (!psd) + goto done; + ewin->shape_data = psd; + psd->root = WinGetXwin(VROOT); + EwinBorderGetSize(ewin, &psd->bl, &psd->br, &psd->bt, &psd->bb); + } } psd = (ShapeData *) ewin->shape_data; if (!psd) --