* [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.
2004-08-31 12:08 ` Jan D.
0 siblings, 2 replies; 4+ 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] 4+ messages in thread
* Re: [ihs_4664@yahoo.com: drag-n-drop can't be customized by the target buffer]
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:08 ` Jan D.
1 sibling, 0 replies; 4+ messages in thread
From: Jan D. @ 2004-08-31 12:08 UTC (permalink / raw)
Cc: gnu-emacs-bug, rms, emacs-devel
Richard Stallman wrote:
> 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
...
> 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"))))
>
It is not that simple, since drag and drop may involve text, pictures, URLs and
not just only files. But if you just want files that exist, the current CVS
version of Emacs allows you to do this when using X (i.e. not Windows or Mac OS X):
(set (make-local-variable 'x-dnd-protocol-alist)
'(("^file:" . my-dnd-fun)))
(defun my-dnd-fun (url action)
(let ((file (x-dnd-get-local-file-name url t)))
(vm-mime-attach-file file (or (vm-mime-default-type-from-filename file)
"application/octet-stream"))))
Jan D.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ihs_4664@yahoo.com: drag-n-drop can't be customized by the target buffer]
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:08 ` Jan D.
2004-08-31 12:25 ` Jason Rumney
1 sibling, 1 reply; 4+ messages in thread
From: Jan D. @ 2004-08-31 12:08 UTC (permalink / raw)
Cc: gnu-emacs-bug, rms, emacs-devel
Richard Stallman wrote:
> 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
...
> 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"))))
>
It is not that simple, since drag and drop may involve text, pictures, URLs and
not just only files. But if you just want files that exist, the current CVS
version of Emacs allows you to do this when using X (i.e. not Windows or Mac OS X):
(set (make-local-variable 'x-dnd-protocol-alist)
'(("^file:" . my-dnd-fun)))
(defun my-dnd-fun (url action)
(let ((file (x-dnd-get-local-file-name url t)))
(vm-mime-attach-file file (or (vm-mime-default-type-from-filename file)
"application/octet-stream"))))
Jan D.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ihs_4664@yahoo.com: drag-n-drop can't be customized by the target buffer]
2004-08-31 12:08 ` Jan D.
@ 2004-08-31 12:25 ` Jason Rumney
0 siblings, 0 replies; 4+ messages in thread
From: Jason Rumney @ 2004-08-31 12:25 UTC (permalink / raw)
Cc: gnu-emacs-bug, ihs_4664, emacs-devel
Jan D. wrote:
> It is not that simple, since drag and drop may involve text, pictures,
> URLs and not just only files. But if you just want files that exist,
> the current CVS version of Emacs allows you to do this when using X
> (i.e. not Windows or Mac OS X):
>
> (set (make-local-variable 'x-dnd-protocol-alist)
> '(("^file:" . my-dnd-fun)))
>
> (defun my-dnd-fun (url action)
> (let ((file (x-dnd-get-local-file-name url t)))
> (vm-mime-attach-file file (or (vm-mime-default-type-from-filename
> file)
> "application/octet-stream"))))
>
This works on Windows too, since the DND implementation has been changed
to call x-dnd-handle-one-url for consistency.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-08-31 12:25 UTC | newest]
Thread overview: 4+ 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:08 ` Jan D.
2004-08-31 12:25 ` Jason Rumney
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.