From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#19988: 25.0.50; Drag events ending in different frame Date: Wed, 04 Mar 2015 16:10:58 +0100 Message-ID: <54F72082.8080709@gmx.at> References: <87k2yycfwh.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1425481940 16876 80.91.229.3 (4 Mar 2015 15:12:20 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 4 Mar 2015 15:12:20 +0000 (UTC) To: Tassilo Horn , 19988@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Mar 04 16:12:11 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YTAy2-0006Pn-HI for geb-bug-gnu-emacs@m.gmane.org; Wed, 04 Mar 2015 16:12:10 +0100 Original-Received: from localhost ([::1]:44651 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YTAy1-0003oE-R5 for geb-bug-gnu-emacs@m.gmane.org; Wed, 04 Mar 2015 10:12:09 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38805) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YTAxy-0003if-5Q for bug-gnu-emacs@gnu.org; Wed, 04 Mar 2015 10:12:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YTAxu-0005a5-6h for bug-gnu-emacs@gnu.org; Wed, 04 Mar 2015 10:12:06 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:36577) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YTAxu-0005a1-3F for bug-gnu-emacs@gnu.org; Wed, 04 Mar 2015 10:12:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1YTAxt-0005MZ-Or for bug-gnu-emacs@gnu.org; Wed, 04 Mar 2015 10:12:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 04 Mar 2015 15:12:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19988 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 19988-submit@debbugs.gnu.org id=B19988.142548187220559 (code B ref 19988); Wed, 04 Mar 2015 15:12:01 +0000 Original-Received: (at 19988) by debbugs.gnu.org; 4 Mar 2015 15:11:12 +0000 Original-Received: from localhost ([127.0.0.1]:35145 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YTAx5-0005LX-PR for submit@debbugs.gnu.org; Wed, 04 Mar 2015 10:11:12 -0500 Original-Received: from mout.gmx.net ([212.227.15.19]:59415) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YTAx4-0005LE-5S for 19988@debbugs.gnu.org; Wed, 04 Mar 2015 10:11:10 -0500 Original-Received: from [88.117.118.171] ([88.117.118.171]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0M70Td-1XWphi3MdZ-00wkcA; Wed, 04 Mar 2015 16:11:03 +0100 In-Reply-To: <87k2yycfwh.fsf@gnu.org> X-Provags-ID: V03:K0:X2m26UnjbRg9/qtWF4GWxFwY5adcj39jVOvtLNaoJV1BNptz4yQ C7fQvPjYMoB64sKl8BSd3cB+CZmMVQI3s7v7E2pl/GZsWyav7bMPVvyZwT7Vr96TqWUjkcy /sjJ8lGqQiavo2GXD7OUDrUirgTUmu5sK87WqeHeoa/KByvMWB9WktKUCAVX0zWWvxQXf2x zk4QWsUlk1YfgANJvw61A== X-UI-Out-Filterresults: notjunk:1; X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:100054 Archived-At: > Is there a reason why drag events cannot work across different frames of > the very same Emacs instance? They could but it's a bit tricky when frames overlap. And probably some routines would have to be rewritten because they expect events to happen on the selected frame. > Background: I've written a command that uses drag events to swap buffers > of two Emacs windows: I'd rewrite it (sloppily) as follows: (defun th/swap-window-buffers-by-dnd (drag-event) "Swaps the buffers displayed in the DRAG-EVENT's start and end window." (interactive "e") (let ((start-win (cl-caadr drag-event)) (end-win (cl-caaddr drag-event))) (unless (window-live-p end-win) (let* ((selected-frame (selected-frame)) (frames (delq selected-frame (frame-list))) position frame window) (unwind-protect (catch 'found (while frames (select-frame (car frames)) (setq position (mouse-position)) (setq window (window-at (cadr position) (cddr position))) (when (window-live-p window) (setq end-win window) (throw 'found t)) (setq frames (cdr frames)))) (select-frame selected-frame)))) (when (and (windowp start-win) (windowp end-win) (not (eq start-win end-win))) (let ((bs (window-buffer start-win)) (be (window-buffer end-win))) (set-window-buffer start-win be) (set-window-buffer end-win bs))))) (global-set-key (kbd "") #'th/swap-window-buffers-by-dnd) martin