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.
This commit is contained in:
Ton Roosendaal
2011-03-22 15:20:25 +00:00
parent 287a185e90
commit 636ceed094

View File

@@ -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;
}