(action (aref state 5))
(w (posn-window (event-start event))))
(when handler
- (if (and (windowp w) (window-live-p w))
- ;; If dropping in a window, open files in that window rather
- ;; than in a new widow.
- (let ((dnd-open-file-other-window nil))
+ (if (and (windowp w) (window-live-p w)
+ (not (window-minibuffer-p w))
+ (not (window-dedicated-p w)))
+ ;; If dropping in an ordinary window which we could use,
+ ;; let dnd-open-file-other-window specify what to do.
+ (progn
(goto-char (posn-point (event-start event)))
(funcall handler window action data))
- (let ((dnd-open-file-other-window t)) ;; Dropping on non-window.
+ ;; If we can't display the file here,
+ ;; make a new window for it.
+ (let ((dnd-open-file-other-window t))
(select-frame frame)
(funcall handler window action data))))))