[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25431] trunk/blender/source/blender: Fix [#20397] Saving with F2 on multiple windows layout crashes
Matt Ebb
matt at mke3.net
Thu Dec 17 11:01:09 CET 2009
Revision: 25431
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25431
Author: broken
Date: 2009-12-17 11:01:08 +0100 (Thu, 17 Dec 2009)
Log Message:
-----------
Fix [#20397] Saving with F2 on multiple windows layout crashes
Modified Paths:
--------------
trunk/blender/source/blender/editors/screen/screen_edit.c
trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
Modified: trunk/blender/source/blender/editors/screen/screen_edit.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_edit.c 2009-12-17 09:23:47 UTC (rev 25430)
+++ trunk/blender/source/blender/editors/screen/screen_edit.c 2009-12-17 10:01:08 UTC (rev 25431)
@@ -1487,9 +1487,11 @@
oldscreen= win->screen;
- /* is there only 1 area? */
+ /* nothing wrong with having only 1 area, as far as I can see...
+ // is there only 1 area?
if(oldscreen->areabase.first==oldscreen->areabase.last)
return NULL;
+ */
oldscreen->full = SCREENFULL;
BLI_snprintf(newname, sizeof(newname), "%s-%s", oldscreen->id.name+2, "temp");
Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2009-12-17 09:23:47 UTC (rev 25430)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2009-12-17 10:01:08 UTC (rev 25431)
@@ -997,13 +997,24 @@
case EVT_FILESELECT_OPEN:
case EVT_FILESELECT_FULL_OPEN:
{
+ ScrArea *sa;
+
+ /* sa can be null when window A is active, but mouse is over window B */
+ /* in this case, open file select in original window A */
+ if (handler->op_area == NULL) {
+ bScreen *screen = CTX_wm_screen(C);
+ sa = (ScrArea *)screen->areabase.first;
+ } else
+ sa = handler->op_area;
+
if(event->val==EVT_FILESELECT_OPEN)
- ED_area_newspace(C, handler->op_area, SPACE_FILE);
+ ED_area_newspace(C, sa, SPACE_FILE);
else
- ED_screen_full_newspace(C, handler->op_area, SPACE_FILE);
+ ED_screen_full_newspace(C, sa, SPACE_FILE); /* sets context */
/* settings for filebrowser, sfile is not operator owner but sends events */
- sfile= (SpaceFile*)CTX_wm_space_data(C);
+ sa = CTX_wm_area(C);
+ sfile= (SpaceFile*)sa->spacedata.first;
sfile->op= handler->op;
ED_fileselect_set_params(sfile);
More information about the Bf-blender-cvs
mailing list