[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17703] branches/blender2.5/blender/source /blender/editors/interface: * make function to map mouse into region coords

Nathan Letwory jesterking at letwory.net
Wed Dec 3 21:57:23 CET 2008


Revision: 17703
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17703
Author:   jesterking
Date:     2008-12-03 21:57:23 +0100 (Wed, 03 Dec 2008)

Log Message:
-----------
* make function to map mouse into region coords

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/interface/interface.c
    branches/blender2.5/blender/source/blender/editors/interface/interface.h
    branches/blender2.5/blender/source/blender/editors/interface/interface_ops.c

Modified: branches/blender2.5/blender/source/blender/editors/interface/interface.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface.c	2008-12-03 20:45:26 UTC (rev 17702)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface.c	2008-12-03 20:57:23 UTC (rev 17703)
@@ -185,6 +185,12 @@
 	*y= (int)(fy+0.5f);
 }
 
+void ui_window_to_region(const ARegion *ar, int *x, int *y)
+{
+	*x-= ar->winrct.xmin;
+	*y-= ar->winrct.ymin;
+}
+
 /* ******************* block calc ************************* */
 
 /* only for pulldowns */

Modified: branches/blender2.5/blender/source/blender/editors/interface/interface.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface.h	2008-12-03 20:45:26 UTC (rev 17702)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface.h	2008-12-03 20:57:23 UTC (rev 17703)
@@ -244,6 +244,7 @@
 extern void ui_block_to_window_rct(const struct ARegion *ar, uiBlock *block, rctf *graph, rcti *winr);
 extern void ui_window_to_block_fl(const struct ARegion *ar, uiBlock *block, float *x, float *y);
 extern void ui_window_to_block(const struct ARegion *ar, uiBlock *block, int *x, int *y);
+extern void ui_window_to_region(const ARegion *ar, int *x, int *y);
 
 extern double ui_get_but_val(uiBut *but);
 extern void ui_set_but_val(uiBut *but, double value);

Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_ops.c	2008-12-03 20:45:26 UTC (rev 17702)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_ops.c	2008-12-03 20:57:23 UTC (rev 17703)
@@ -2595,8 +2595,10 @@
 	if(BLI_in_rcti(&ar->winrct, x, y)) {
 		/* XXX still can be zero */
 		if(ar->v2d.mask.xmin!=ar->v2d.mask.xmax) {
-			/* mask is in different coord space - take that in account */
-			return BLI_in_rcti(&ar->v2d.mask, x-ar->winrct.xmin, y-ar->winrct.ymin);
+			int arx = x;
+			int ary = y;
+			ui_window_to_region(ar, &arx, &ary);
+			return BLI_in_rcti(&ar->v2d.mask, arx, ary);
 		}
 		return 1;
 	}





More information about the Bf-blender-cvs mailing list