Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/intern/screen.c')
-rw-r--r--source/blender/blenkernel/intern/screen.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c
index 4125a35cb33..83aac79ae0b 100644
--- a/source/blender/blenkernel/intern/screen.c
+++ b/source/blender/blenkernel/intern/screen.c
@@ -53,6 +53,9 @@
#include "BKE_idprop.h"
#include "BKE_screen.h"
+#include "WM_api.h"
+#include "WM_types.h"
+
/* ************ Spacetype/regiontype handling ************** */
/* keep global; this has to be accessible outside of windowmanager */
@@ -179,6 +182,7 @@ ARegion *BKE_area_region_copy(SpaceType *st, ARegion *ar)
BLI_listbase_clear(&newar->panels_category);
BLI_listbase_clear(&newar->panels_category_active);
BLI_listbase_clear(&newar->ui_lists);
+ BLI_listbase_clear(&newar->widgetmaps);
newar->swinid = 0;
/* use optional regiondata callback */
@@ -290,6 +294,7 @@ void BKE_spacedata_id_unref(struct SpaceLink *sl, const struct ID *id)
void BKE_area_region_free(SpaceType *st, ARegion *ar)
{
uiList *uilst;
+ struct wmWidgetMap *wmap, *wmap_tmp;
if (st) {
ARegionType *art = BKE_regiontype_from_id(st, ar->regiontype);
@@ -326,6 +331,12 @@ void BKE_area_region_free(SpaceType *st, ARegion *ar)
MEM_freeN(uilst->properties);
}
}
+
+ for (wmap = ar->widgetmaps.first; wmap; wmap = wmap_tmp) {
+ wmap_tmp = wmap->next;
+ WM_widgetmap_delete(wmap);
+ }
+ BLI_listbase_clear(&ar->widgetmaps);
BLI_freelistN(&ar->ui_lists);
BLI_freelistN(&ar->ui_previews);
BLI_freelistN(&ar->panels_category);