]> code.delx.au - gnu-emacs/blobdiff - lisp/x-dnd.el
*** empty log message ***
[gnu-emacs] / lisp / x-dnd.el
index 0a4017a7b7c572d9fdf019e1cf7a6730b003365f..88a39ea679ee3ba3bfc6743d1cede5f23c8e7584 100644 (file)
@@ -1,7 +1,6 @@
 ;;; x-dnd.el --- drag and drop support for X.
 
-;; Copyright (C) 2004
-;;  Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
 ;; Maintainer: FSF
@@ -308,13 +307,17 @@ nil if not."
         (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))))))