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:
authorTon Roosendaal <ton@blender.org>2011-03-22 18:20:25 +0300
committerTon Roosendaal <ton@blender.org>2011-03-22 18:20:25 +0300
commit636ceed094635ab80867d062377d9a8e6ddacfcb (patch)
treeba8bfebbd065ded59a75997de9051e6ccdce2f7e /source/blender/editors/space_image
parent287a185e909bf833414e14a50864e8cd0f80f0b8 (diff)
Bugfix #26562
Keymap fix for UV/Image editor: the modal zoom/pan functions were checking for hardcoded events to end. Now it uses the key from keymap.
Diffstat (limited to 'source/blender/editors/space_image')
-rw-r--r--source/blender/editors/space_image/image_ops.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c
index 93e5465cd64..3aa509ab998 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -176,6 +176,7 @@ int space_image_main_area_poll(bContext *C)
typedef struct ViewPanData {
float x, y;
float xof, yof;
+ int event_type;
} ViewPanData;
static void view_pan_init(bContext *C, wmOperator *op, wmEvent *event)
@@ -190,6 +191,7 @@ static void view_pan_init(bContext *C, wmOperator *op, wmEvent *event)
vpd->y= event->y;
vpd->xof= sima->xof;
vpd->yof= sima->yof;
+ vpd->event_type= event->type;
WM_event_add_modal_handler(C, op);
}
@@ -266,9 +268,8 @@ static int view_pan_modal(bContext *C, wmOperator *op, wmEvent *event)
RNA_float_set_array(op->ptr, "offset", offset);
view_pan_exec(C, op);
break;
- case MIDDLEMOUSE:
- case LEFTMOUSE:
- if(event->val==KM_RELEASE) {
+ default:
+ if(event->type==vpd->event_type && event->val==KM_RELEASE) {
view_pan_exit(C, op, 0);
return OPERATOR_FINISHED;
}
@@ -310,6 +311,7 @@ void IMAGE_OT_view_pan(wmOperatorType *ot)
typedef struct ViewZoomData {
float x, y;
float zoom;
+ int event_type;
} ViewZoomData;
static void view_zoom_init(bContext *C, wmOperator *op, wmEvent *event)
@@ -323,7 +325,8 @@ static void view_zoom_init(bContext *C, wmOperator *op, wmEvent *event)
vpd->x= event->x;
vpd->y= event->y;
vpd->zoom= sima->zoom;
-
+ vpd->event_type= event->type;
+
WM_event_add_modal_handler(C, op);
}
@@ -396,9 +399,8 @@ static int view_zoom_modal(bContext *C, wmOperator *op, wmEvent *event)
sima_zoom_set(sima, ar, vpd->zoom*factor);
ED_region_tag_redraw(CTX_wm_region(C));
break;
- case MIDDLEMOUSE:
- case LEFTMOUSE:
- if(event->val==KM_RELEASE) {
+ default:
+ if(event->type==vpd->event_type && event->val==KM_RELEASE) {
view_zoom_exit(C, op, 0);
return OPERATOR_FINISHED;
}