diff options
author | Ton Roosendaal <ton@blender.org> | 2010-12-17 22:05:34 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2010-12-17 22:05:34 +0300 |
commit | a0ce28d7312adc31194e2ba34974dc5de754fced (patch) | |
tree | fc801b5d536e8d37207d04c068b7e1e456f470df /source/blender/windowmanager/intern/wm_event_system.c | |
parent | fd90685a48f6fae30e6731bc4a805930e776f117 (diff) |
Drag & drop feature:
You now can drop a .blend inside blender window to open it.
Implementation notes:
- Added call to extract icon type for files. Code re-used from
space_file
- External files that get dropped set icon types too.
Drop box polls can check for this.
- Also enabled setting op-context for drop operators, this was
needed to prevent filewindow to open.
Diffstat (limited to 'source/blender/windowmanager/intern/wm_event_system.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 0a1f3035a84..9c8bd3f4fec 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -1468,8 +1468,14 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) if(drop->poll(C, drag, event)) { drop->copy(drag, drop); - wm_operator_invoke(C, drop->ot, event, drop->ptr, NULL, FALSE); + WM_operator_name_call(C, drop->ot->idname, drop->opcontext, drop->ptr); + //wm_operator_invoke(C, drop->ot, event, drop->ptr, NULL, FALSE); action |= WM_HANDLER_BREAK; + + /* prevent hanging on file read */ + BLI_freelistN(event->customdata); + event->customdata= NULL; + event->custom= 0; } } } |