[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29300] trunk/blender/source/blender/ editors/screen/screen_ops.c: Fix [#22494] Operator panel vanishes

Matt Ebb matt at mke3.net
Mon Jun 7 08:50:56 CEST 2010


Revision: 29300
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29300
Author:   broken
Date:     2010-06-07 08:50:56 +0200 (Mon, 07 Jun 2010)

Log Message:
-----------
Fix [#22494] Operator panel vanishes

Modified Paths:
--------------
    trunk/blender/source/blender/editors/screen/screen_ops.c

Modified: trunk/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_ops.c	2010-06-07 05:45:30 UTC (rev 29299)
+++ trunk/blender/source/blender/editors/screen/screen_ops.c	2010-06-07 06:50:56 UTC (rev 29300)
@@ -1326,6 +1326,9 @@
 	 * prevents dragging regions into other opposite regions */
 	for (ar=sa->regionbase.first; ar; ar=ar->next)
 	{
+		if (ar == scalear)
+			continue;
+		
 		if (scalear->alignment == RGN_ALIGN_TOP && ar->alignment == RGN_ALIGN_BOTTOM)
 			dist -= ar->winy;
 		else if (scalear->alignment == RGN_ALIGN_BOTTOM && ar->alignment == RGN_ALIGN_TOP)
@@ -1334,8 +1337,15 @@
 			dist -= ar->winx;
 		else if (scalear->alignment == RGN_ALIGN_RIGHT && ar->alignment == RGN_ALIGN_LEFT)
 			dist -= ar->winx;
+		
+		/* case of regions in regions, like operator properties panel */
+		/* these can sit on top of other regions such as headers, so account for this */
+		else if (edge == 'b' && scalear->alignment & RGN_ALIGN_TOP && ar->alignment == RGN_ALIGN_TOP && ar->regiontype == RGN_TYPE_HEADER)
+			dist -= ar->winy;
+		else if (edge == 't' && scalear->alignment & RGN_ALIGN_BOTTOM && ar->alignment == RGN_ALIGN_BOTTOM && ar->regiontype == RGN_TYPE_HEADER)
+			dist -= ar->winy;
 	}
-	
+
 	return dist;
 }
 





More information about the Bf-blender-cvs mailing list