Mercurial > hg > xemacs-beta
diff lisp/hm--html-menus/internal-drag-and-drop.el @ 46:6a22abad6937 r19-15
Import from CVS: tag r19-15
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:55:31 +0200 |
parents | 8b8b7f3559a2 |
children | 131b0175ea99 |
line wrap: on
line diff
--- a/lisp/hm--html-menus/internal-drag-and-drop.el Mon Aug 13 08:55:13 2007 +0200 +++ b/lisp/hm--html-menus/internal-drag-and-drop.el Mon Aug 13 08:55:31 2007 +0200 @@ -1,4 +1,4 @@ -;;; $Id: internal-drag-and-drop.el,v 1.3 1997/03/24 01:26:53 steve Exp $ +;;; $Id: internal-drag-and-drop.el,v 1.4 1997/03/26 22:42:40 steve Exp $ ;;; ;;; Copyright (C) 1996, 1997 Heiko Muenkel ;;; email: muenkel@tnt.uni-hannover.de @@ -291,9 +291,9 @@ actions '(0 . nil))) -(autoload 'ange-ftp-ftp-path "ange-ftp" - "Parse PATH according to ange-ftp-path-format (which see). -Returns a list (HOST USER PATH), or nil if PATH does not match the format.") +;(autoload 'ange-ftp-ftp-path "ange-ftp" +; "Parse PATH according to ange-ftp-path-format (which see). +;Returns a list (HOST USER PATH), or nil if PATH does not match the format.") (defun idd-set-point (source-or-destination) "Sets the point and buffer to SOURCE-OR-DESTINATION." @@ -366,7 +366,7 @@ (defun idd-if-minor-mode-p (source-or-destination minor-mode-variable) "Checks, if the variable MINOR-MODE-VARIABLE is t in SOURCE-OR-DESTINATION. MINOR-MODE-VARIABLE is the name of the variable!." - (idd-variable-non-nil-p source-or-destination minor-mode-variable)) + (idd-if-variable-non-nil-p source-or-destination minor-mode-variable)) (defun idd-get-dired-filename-from-line (source-or-destination) "Returns the filename form the line in a dired buffer. @@ -412,7 +412,8 @@ is returned. Otherwise nil is returned." (let ((filename (idd-get-local-filename source-or-destination))) (if (and filename - (not (ange-ftp-ftp-path filename))) +; (not (ange-ftp-ftp-path filename))) + (not (file-remote-p filename))) (if value 1 nil) (if value nil 1)))) @@ -427,14 +428,14 @@ (defun idd-list-1-subset-of-list-2 (list-1 list-2) "Returns t, if LIST-1 is a subset of LIST-2." (cond ((not list-1)) - ((member (car list-1 list-2)) + ((member (car list-1) list-2) (idd-list-1-subset-of-list-2 (cdr list-1) list-2)) (t nil))) -(defun idd-same-modifiers (list-1 list-2) +(defun idd-same-elements-p (list-1 list-2) "Returns t, if both list have the same modifiers." - (and (length list-1 list-2) - (idd-list-1-subset-of-list-2 list-1-list-2))) + (and (= (length list-1) (length list-2)) + (idd-list-1-subset-of-list-2 list-1 list-2))) (defun idd-if-modifiers-p (source-or-destination modifiers) "Checks, if the MODIFIERS hold during selecting the SOURCE-OR-DESTINATION. @@ -447,7 +448,7 @@ (cond ((not modifiers) (if event-modifiers nil 1)) ((listp modifiers) - (if (idd-same-elements modifiers event-modifiers) + (if (idd-same-elements-p modifiers event-modifiers) 1 nil)) (t (if event-modifiers 1 nil))))) @@ -566,7 +567,7 @@ This command could be used to start a drag and drop command without a button event. Therefore this should not be bind direct to a mouse button." (interactive) - (let ((destination-event) + (let ((source-event) (drag-and-drop-message "Drag&Drop: Click on the source!")) (message drag-and-drop-message) (setq source-event @@ -670,7 +671,6 @@ (dispatch-event (next-command-event))) (setq destination-event (next-command-event nil drag-and-drop-message)) -(setq heiko source-event) (message "") (cond ((button-press-event-p destination-event) (mouse-track destination-event) @@ -688,6 +688,20 @@ (idd-call-action (idd-get-action source destination idd-actions) source destination))) + ((and (adapt-emacs19p) + (button-click-event-p destination-event)) + (setq destination (idd-get-source-or-destination-alist + destination-event)) + (idd-set-point destination) + (if idd-help-instead-of-action + (idd-display-help-about-action (idd-get-action source + destination + idd-actions) + source + destination) + (idd-call-action (idd-get-action source destination idd-actions) + source + destination))) (t (message "Wrong event! Exit drag and drop.") nil)))) (defun idd-help-start-action (event)