Index: blender/source/blender/windowmanager/intern/wm_window.c =================================================================== --- blender/source/blender/windowmanager/intern/wm_window.c (revision 25459) +++ blender/source/blender/windowmanager/intern/wm_window.c (working copy) @@ -553,6 +553,22 @@ if (type == GHOST_kEventQuit) { WM_exit(C); + } else if (type == GHOST_kEventDraggingDropOnIcon) { + GHOST_TEventDragnDropData *eventData = (GHOST_TEventDragnDropData*)GHOST_GetEventData(evt); + + if (eventData->dataType == GHOST_kDragnDropTypeFilenames) { + GHOST_TStringArray *strArray = (GHOST_TStringArray*)eventData->data; + + if (strArray->count > 0) { + unsigned char *path = strArray->strings[strArray->count -1]; + + // XXX wm in context is not set correctly after WM_read_file -> crash + // do it before for now, but is this correct with multiple windows? + WM_event_add_notifier(C, NC_WINDOW, NULL); + + WM_read_file(C, (char*)path, NULL); + } + } } else { GHOST_WindowHandle ghostwin= GHOST_GetEventWindow(evt); GHOST_TEventDataPtr data= GHOST_GetEventData(evt);