diff options
author | Andrea Weikert <elubie@gmx.net> | 2008-01-15 23:42:00 +0300 |
---|---|---|
committer | Andrea Weikert <elubie@gmx.net> | 2008-01-15 23:42:00 +0300 |
commit | da11a3f38e9ead6fc525569ab5af9eaaaf21494f (patch) | |
tree | e9665d96ee8a222202c54828fa94d3f1a464cd26 /source/blender/windowmanager | |
parent | 9e9ebfc12c65fb730c7874ef06dacc813176ac9f (diff) |
Operators: Join Areas
add split area to screen manager
- RMB+ALT down on area edge activates
- mouse move interactively to area that is to be removed
- LMB to confirm, ESC to cancel
TODO:
- notifications for interactive drawing to mark area to remove
Some fixes
- uninitialized var warning.
- exit function of operators need to run before modal handler is removed if operator is used there.
- replaced MEM_mallocN with MEM_callocN to get rid of uninitialized mem for wmOperator.
- respect return value of wm_handler_operator_call() and break out of operator handling.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/intern/wm.c | 2 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 2 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_operators.c | 1 |
3 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index 6bd7b492039..fb8d0f7503f 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -53,7 +53,7 @@ /* called on event handling by event_system.c */ void wm_operator_register(wmWindowManager *wm, wmOperator *op) { - wmOperator *opc= MEM_mallocN(sizeof(wmOperator), "operator registry"); + wmOperator *opc= MEM_callocN(sizeof(wmOperator), "operator registry"); int tot; *opc= *op; diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index ebf94bfc5c3..cfdc88164e3 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -306,6 +306,8 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) else { /* modal, swallows all */ action= wm_handler_operator_call(C, handler, event); + if(action==WM_HANDLER_BREAK) + break; } /* modal+blocking handler */ diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 05d27c1321a..c9fca2a38d2 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -165,6 +165,7 @@ IDProperty *op_get_property(wmOperator *op, char *name) void op_init_property(wmOperator *op) { IDPropertyTemplate val; + val.i = 0; /* silence MSVC warning about uninitialized var when debugging */ op->properties= IDP_New(IDP_GROUP, val, "property"); } |