unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [ihs_4664@yahoo.com: drag-n-drop can't be customized by the target buffer]
@ 2004-08-28 16:48 Richard Stallman
  2004-08-31 12:08 ` Jan D.
  0 siblings, 1 reply; 3+ messages in thread
From: Richard Stallman @ 2004-08-28 16:48 UTC (permalink / raw)


Would the people who work on drag-n-drop please think about this idea?

------- Start of forwarded message -------
To: gnu-emacs-bug@moderators.isc.org
From: Kevin Rodgers <ihs_4664@yahoo.com>
Newsgroups: gnu.emacs.bug
Date: Fri, 27 Aug 2004 11:56:49 -0600
X-Orig-X-Trace: news.uni-berlin.de
	Nh+o2aku0MLBGtYAyGjzpwgNH8hH4wBq+aJybFTCUbIftZpW4=
X-Accept-Language: en-us
Cc: 
Subject: drag-n-drop can't be customized by the target buffer
Sender: bug-gnu-emacs-bounces+rms=gnu.org@gnu.org
X-Spam-Status: No, hits=2.4 required=5.0
	tests=EMAIL_ATTRIBUTION,FORGED_YAHOO_RCVD,FROM_ENDS_IN_NUMS,
	      QUOTED_EMAIL_TEXT,RCVD_IN_ORBS,USER_AGENT_MOZILLA_UA,
	      X_ACCEPT_LANG
	version=2.55
X-Spam-Level: **
X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp)

This is a multi-part message in MIME format.
- --------------040309070504020707020408
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

It would be better if each of the term/foo-win.el files had something
like:

(defvar drag-n-drop-function 'find-file)

(defun foo-drag-n-drop (event)
...
   (mapc drag-n-drop-function (car (cdr (cdr event))))
...
)

so that vm-mail-mode etc. could say:

(set (make-local-variable 'drag-n-drop-function)
      (lambda (file)
        (vm-mime-attach-file file (or (vm-mime-default-type-from-filename file)
                                      "application/octet-stream"))))

instead of hacking foo-drag-n-drop as below.

Thanks,
- -- 
Kevin Rodgers

- --------------040309070504020707020408
Content-Type: message/rfc822;
	name="Re: Drag-and-drop to attach file in vm mail composition buffer"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
	filename="Re: Drag-and-drop to attach file in vm mail composition
	buffer"

Path: uni-berlin.de!fu-berlin.de!peer01.cox.net!cox.net!cyclone1.gnilink.net!spamkiller2.gnilink.net!gnilink.net!trndny03.POSTED!9056c659!not-for-mail
Newsgroups: gnu.emacs.vm,gnu.emacs.vm.info
Subject: Re: Drag-and-drop to attach file in vm mail composition buffer
References: <m2ekluv1xs.fsf@consult.pretender>
From: kosowsky@consult.pretender (Jeffrey J. Kosowsky)
Message-ID: <m28yc1vks9.fsf@consult.pretender>
User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Date: Thu, 26 Aug 2004 18:03:50 GMT
NNTP-Posting-Host: 141.154.253.43
X-Complaints-To: abuse@verizon.net
X-Trace: trndny03 1093543430 141.154.253.43 (Thu, 26 Aug 2004 14:03:50 EDT)
NNTP-Posting-Date: Thu, 26 Aug 2004 14:03:50 EDT
Xref: uni-berlin.de gnu.emacs.vm.info:17200

kosowsky@consult.pretender (Jeffrey J. Kosowsky) writes:
> Using gnuserv, I can use drag-and-drop to open a file in emacs.
> 
> I would like to modify the behavior when the buffer that is exposed is
> a mail composition buffer so that the dragged file is attached to the
> mail composition buffer rather than opening the file in a new buffer.
> 
> Notionally, instead of doing something like '(find-file file)', I
> would do something like '(vm-mime-attach-file file)'.
> 
> However, despite reading gnuserv.el, I can't figure out how and where
> to patch this in.
> 
> Any thoughts on how to do this?
> 

OK, I figured it out. Win32 drag-n-drop doesen't use
gnuserv/gnuclientw. The relevant functions are documented in
term/w32-win.el.

I was able to get the desired affect by making some slight
modifications to the function: 

(defun w32-drag-n-drop (event)
  "Edit the files listed in the drag-n-drop EVENT.
Switch to a buffer editing the last file dropped.
JJK: Added logic so that adds mime attachments if dragged over a buffer 
in \"Mail\" mode"
  (interactive "e")
  (save-excursion
    ;; Make sure the drop target has positive co-ords
    ;; before setting the selected frame - otherwise it
    ;; won't work.  <skx@tardis.ed.ac.uk>
    (let* ((window (posn-window (event-start event)))
		   (coords (posn-x-y (event-start event)))
			  (x (car coords))
				 (y (cdr coords)))
      (if (and (> x 0) (> y 0))
		  (set-frame-selected-window nil window))
; JJK addition start
	  (if (string= mode-name "Mail")
		  (mapcar  
		   (lambda (file) 
			 (vm-mime-attach-file file "application/octet-stream"))
		   (car (cdr (cdr event))))
		(mapcar  'find-file (car (cdr (cdr event))))))
; JJK addition end
;	  (mapcar  'find-file (car (cdr (cdr event)))))
  (raise-frame)))

- --------------040309070504020707020408
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Bug-gnu-emacs mailing list
Bug-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs

- --------------040309070504020707020408--
------- End of forwarded message -------

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-08-31 12:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-28 16:48 [ihs_4664@yahoo.com: drag-n-drop can't be customized by the target buffer] Richard Stallman
2004-08-31 12:08 ` Jan D.
2004-08-31 12:25   ` Jason Rumney

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).