From: Pierre-Yves Luyten <py@luyten.fr>
To: Drew Adams <drew.adams@oracle.com>,
emacs-devel@gnu.org, Karl Fogel <kfogel@red-bean.com>
Subject: Re: [PATCH] open bookmark in other frame
Date: Thu, 11 Oct 2018 23:50:19 +0200 [thread overview]
Message-ID: <9f2ed5a8-96c0-aa6c-b9c8-3b0f73f20aa6@luyten.fr> (raw)
In-Reply-To: <cd629f00-aa1d-4ec6-84bd-b8c760820940@default>
[-- Attachment #1: Type: text/plain, Size: 1536 bytes --]
On 10/11/18 12:06 AM, Drew Adams wrote:
>> people sometimes use several frames, so i would like to make opening
>> bookmark one shot. Attached patch adds two funcs,
>> "bookmark-jump-other-frame" and the equivalent from the bookmarks menu,
>> "bookmark-bmenu-other-frame"
>
> My suggestions in this regard, FWIW:
>
> 1. Don't use `view-buffer-other-frame'.
> Select the buffer, and not just read-only. Jumping to a bookmark
> typically puts you at its location (hence select), and the buffer is
> typically not put in a read-only mode. IOW, do the equivalent of
> this, or similar:
>
> (let ((pop-up-frames t)) (bookmark-jump-other-window bookmark)
>
> 2. Don't use `F' as the key binding in the bookmark-list buffer.
> `F' is more often used for files than for frames. Maybe use `5'.
>
> (I use `J 5' in Bookmark+. `J' is a prefix for the jump commands
> in the bookmark-list buffer. The `5' is from `C-x 5' bindings for
> other-frame. I bind the command to `C-x 5 B' and `C-x j 5' globally.
> `C-x j' is a global prefix key for bookmark jump commands.)
>
So here is the new version of the patch
1. Use pop-up-frames variable to avoid a read-only mode on new frame.
I also had to use (other-frame 1) to ensure new frame is raised.
2. Use "5" binding both in bookmark-map, and bookmark-bmenu-mode-map
3. Split in two commits, one per new function
I tried to respect the conventions on the log.
The patches are generated using git format-patch.
Regards
Pierre-Yves
[-- Attachment #2: 0001-lisp-bookmark.el-bookmark-jump-other-frame-new-funct.patch --]
[-- Type: text/x-patch, Size: 1621 bytes --]
From fb477d9f3bfc39f18788aa735dc70f542b513377 Mon Sep 17 00:00:00 2001
From: Pierre-Yves Luyten <py@luyten.fr>
Date: Thu, 11 Oct 2018 23:40:32 +0200
Subject: [PATCH 1/2] * lisp/bookmark.el (bookmark-jump-other-frame): new
function
Add the new function bookmark-jump-other-frame
Bind to bookmark-map
---
lisp/bookmark.el | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index 58a279473d..5ee5248b97 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -209,6 +209,7 @@ A non-nil value may result in truncated bookmark names."
(define-key map "j" 'bookmark-jump)
(define-key map "g" 'bookmark-jump) ;"g"o
(define-key map "o" 'bookmark-jump-other-window)
+ (define-key map "5" 'bookmark-jump-other-frame)
(define-key map "i" 'bookmark-insert)
(define-key map "e" 'edit-bookmarks)
(define-key map "f" 'bookmark-insert-location) ;"f"ind
@@ -1124,6 +1125,14 @@ DISPLAY-FUNC would be `switch-to-buffer-other-window'."
bookmark-current-bookmark)))
(bookmark-jump bookmark 'switch-to-buffer-other-window))
+(defun bookmark-jump-other-frame (bookmark)
+ "Jump to BOOKMARK in another frame. See `bookmark-jump' for more."
+ (interactive
+ (list (bookmark-completing-read "Jump to bookmark (in another frame)"
+ bookmark-current-bookmark)))
+ (let ((pop-up-frames t))
+ (bookmark-jump bookmark 'display-buffer))
+ (other-frame 1))
(defun bookmark-jump-noselect (bookmark)
"Return the location pointed to by BOOKMARK (see `bookmark-jump').
--
2.19.0
[-- Attachment #3: 0002-lisp-bookmark.el-bookmark-bmenu-other-frame-new-func.patch --]
[-- Type: text/x-patch, Size: 2192 bytes --]
From d059307d9776cb316816eecd01b6115a0335f857 Mon Sep 17 00:00:00 2001
From: Pierre-Yves Luyten <py@luyten.fr>
Date: Thu, 11 Oct 2018 23:41:44 +0200
Subject: [PATCH 2/2] * lisp/bookmark.el (bookmark-bmenu-other-frame): new
function
Add bookmark-bmenu-other-frame function
Document it
Bind function to bookmark-bmenu-mode-map
---
lisp/bookmark.el | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index 5ee5248b97..e89252960c 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -1570,6 +1570,7 @@ unique numeric suffixes \"<2>\", \"<3>\", etc."
(set-keymap-parent map special-mode-map)
(define-key map "v" 'bookmark-bmenu-select)
(define-key map "w" 'bookmark-bmenu-locate)
+ (define-key map "5" 'bookmark-bmenu-other-frame)
(define-key map "2" 'bookmark-bmenu-2-window)
(define-key map "1" 'bookmark-bmenu-1-window)
(define-key map "j" 'bookmark-bmenu-this-window)
@@ -1711,6 +1712,8 @@ Bookmark names preceded by a \"*\" have annotations.
\\[bookmark-bmenu-this-window] -- select this bookmark in place of the bookmark menu buffer.
\\[bookmark-bmenu-other-window] -- select this bookmark in another window,
so the bookmark menu bookmark remains visible in its window.
+\\[bookmark-bmenu-other-frame] -- select this bookmark in another frame,
+ so the bookmark menu bookmark remains visible in its window.
\\[bookmark-bmenu-switch-other-window] -- switch the other window to this bookmark.
\\[bookmark-bmenu-rename] -- rename this bookmark (prompts for new name).
\\[bookmark-bmenu-relocate] -- relocate this bookmark's file (prompts for new file).
@@ -1979,6 +1982,12 @@ With a prefix arg, prompts for a file to save them in."
(let ((bookmark (bookmark-bmenu-bookmark)))
(bookmark--jump-via bookmark 'switch-to-buffer-other-window)))
+(defun bookmark-bmenu-other-frame ()
+ "Select this line's bookmark in other frame, leaving bookmark menu visible."
+ (interactive)
+ (let ((pop-up-frames t))
+ (bookmark-jump bookmark 'display-buffer))
+ (other-frame 1))
(defun bookmark-bmenu-switch-other-window ()
"Make the other window select this line's bookmark.
--
2.19.0
next prev parent reply other threads:[~2018-10-11 21:50 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-10 20:14 [PATCH] open bookmark in other frame Pierre-Yves Luyten
2018-10-10 20:16 ` Marcin Borkowski
2018-10-10 21:35 ` Karl Fogel
2018-10-11 11:42 ` Pierre-Yves Luyten
2018-10-10 22:06 ` Drew Adams
2018-10-11 7:19 ` Karl Fogel
2018-10-11 11:30 ` Pierre-Yves Luyten
2018-10-11 13:35 ` Drew Adams
2018-10-11 21:50 ` Pierre-Yves Luyten [this message]
2018-10-11 22:04 ` Drew Adams
2018-10-12 19:45 ` Pierre-Yves Luyten
2018-10-12 21:23 ` Karl Fogel
2018-10-14 19:45 ` Pierre-Yves Luyten
2018-10-16 2:09 ` Karl Fogel
2018-10-16 9:51 ` Pierre-Yves Luyten
2018-10-16 2:10 ` Karl Fogel
2018-11-02 18:55 ` Karl Fogel
2018-11-04 21:10 ` Pierre-Yves Luyten
2018-11-09 0:54 ` Karl Fogel
2018-10-13 15:04 ` Stephen Leake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9f2ed5a8-96c0-aa6c-b9c8-3b0f73f20aa6@luyten.fr \
--to=py@luyten.fr \
--cc=drew.adams@oracle.com \
--cc=emacs-devel@gnu.org \
--cc=kfogel@red-bean.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.