[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43251] branches/soc-2011-onion-uv-tools/ source/blender/editors/uvedit/uvedit_smart_stitch.c: Smart stitch now respects the user preference of mouse select left vs right
Antony Riakiotakis
kalast at gmail.com
Tue Jan 10 01:31:26 CET 2012
Revision: 43251
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43251
Author: psy-fi
Date: 2012-01-10 00:31:19 +0000 (Tue, 10 Jan 2012)
Log Message:
-----------
Smart stitch now respects the user preference of mouse select left vs right
Modified Paths:
--------------
branches/soc-2011-onion-uv-tools/source/blender/editors/uvedit/uvedit_smart_stitch.c
Modified: branches/soc-2011-onion-uv-tools/source/blender/editors/uvedit/uvedit_smart_stitch.c
===================================================================
--- branches/soc-2011-onion-uv-tools/source/blender/editors/uvedit/uvedit_smart_stitch.c 2012-01-09 23:53:35 UTC (rev 43250)
+++ branches/soc-2011-onion-uv-tools/source/blender/editors/uvedit/uvedit_smart_stitch.c 2012-01-10 00:31:19 UTC (rev 43251)
@@ -1260,7 +1260,29 @@
}
}
+static void stitch_select(bContext *C, Scene *scene, wmEvent *event, StitchState *stitch_state){
+ /* add uv under mouse to processed uv's */
+ float co[2];
+ NearestHit hit;
+ ARegion *ar= CTX_wm_region(C);
+ Image *ima= CTX_data_edit_image(C);
+ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &co[0], &co[1]);
+ ED_find_nearest_uv_vert(scene, ima, stitch_state->em, co, NULL, &hit);
+
+ if(hit.efa)
+ {
+ /* Add vertex to selection, deselect all common uv's of vert other
+ * than selected and update the preview. This behavior was decided so that
+ * you can do stuff like deselect the opposite stitchable vertex and the initial still gets deselected */
+
+ /* This works due to setting of tmp in find nearest uv vert */
+ UvElement *element = ED_get_uv_element(stitch_state->element_map, hit.efa, hit.uv);
+ stitch_select_uv(element, stitch_state, 0);
+
+ }
+}
+
static int stitch_modal(bContext *C, wmOperator *op, wmEvent *event)
{
StitchState *stitch_state;
@@ -1278,6 +1300,16 @@
case LEFTMOUSE:
+ if(event->shift && (U.flag & USER_LMOUSESELECT)){
+ if(event->val == KM_RELEASE){
+ stitch_select(C, scene, event, stitch_state);
+
+ if(!stitch_process_data(stitch_state, scene, 0)){
+ return stitch_cancel(C, op);
+ }
+ }
+ break;
+ }
case PADENTER:
case RETKEY:
if(stitch_process_data(stitch_state, scene, 1)){
@@ -1352,27 +1384,9 @@
if(!event->shift){
return stitch_cancel(C, op);
}
- if(event->val == KM_RELEASE){
- /* add uv under mouse to processed uv's */
- float co[2];
- NearestHit hit;
- ARegion *ar= CTX_wm_region(C);
- Image *ima= CTX_data_edit_image(C);
+ if(event->val == KM_RELEASE && !(U.flag & USER_LMOUSESELECT)){
+ stitch_select(C, scene, event, stitch_state);
- UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &co[0], &co[1]);
- ED_find_nearest_uv_vert(scene, ima, stitch_state->em, co, NULL, &hit);
-
- if(hit.efa)
- {
- /* Add vertex to selection, deselect all common uv's of vert other
- * than selected and update the preview. This behavior was decided so that
- * you can do stuff like deselect the opposite stitchable vertex and the initial still gets deselected */
-
- /* This works due to setting of tmp in find nearest uv vert */
- UvElement *element = ED_get_uv_element(stitch_state->element_map, hit.efa, hit.uv);
- stitch_select_uv(element, stitch_state, 0);
-
- }
if(!stitch_process_data(stitch_state, scene, 0)){
return stitch_cancel(C, op);
}
More information about the Bf-blender-cvs
mailing list