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:
authorCampbell Barton <ideasman42@gmail.com>2013-06-03 00:59:00 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-06-03 00:59:00 +0400
commit0c004723fe60fa93947d9c7ca4ec119a30a32372 (patch)
treefd438ef48fe10ddf2a17a8f929ded3edd1e05d56 /source/blender/windowmanager
parentc5ed6765b9c46630579be5e43cab74965f0be9da (diff)
fix [#35434] Segmentation fault switching screen layout from python
(take 2), only free popup handlers.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 91b7b81940b..de961afefd8 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -247,7 +247,10 @@ void wm_event_do_notifiers(bContext *C)
if (note->window == win) {
if (note->category == NC_SCREEN) {
if (note->data == ND_SCREENBROWSE) {
- /* do not free handlers here! [#35434] */
+ /* free popup handlers only [#35434] */
+ wmWindow *win = CTX_wm_window(C);
+ UI_remove_popup_handlers_all(C, &win->modalhandlers);
+
ED_screen_set(C, note->reference); // XXX hrms, think this over!
if (G.debug & G_DEBUG_EVENTS)