Skip to content

Commit 667ea76

Browse files
committed
Added keyboard 'throws' of items for display in specific windows; fixed compilation error; released 7.0.2
* hversion.el: Released 7.0.2. * hui-window.el (hmouse-at-item-p): Added to test if on a draggable item. * hmouse-drv.el (hkey-throw): Added to throw a drag item to a specific window via the ace-window package and the key sequence {M-o t <window-id>}, leaving the original source window selected. * man/hyperbole.texi (Keyboard Drags): Added description of throwing an item. * hui-mouse.el: Fixed a compilation time problem with when hmouse-alist was defined. ============================================================================== V7.0.2 changes ^^^^: ==============================================================================
1 parent 5cc7ac8 commit 667ea76

19 files changed

+214
-57
lines changed

Changes

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
2017-11-23 Bob Weiner <[email protected]>
2+
3+
* hversion.el: Released 7.0.2.
4+
5+
* hui-window.el (hmouse-at-item-p): Added to test if on a draggable item.
6+
7+
* hmouse-drv.el (hkey-throw): Added to throw a drag item to a specific window via the
8+
ace-window package and the key sequence {M-o t <window-id>}, leaving the original
9+
source window selected.
10+
* man/hyperbole.texi (Keyboard Drags): Added description of throwing an item.
11+
12+
* hui-mouse.el: Fixed a compilation time problem with when hmouse-alist was defined.
13+
14+
==============================================================================
15+
V7.0.2 changes ^^^^:
16+
==============================================================================
17+
118
2017-11-22 Bob Weiner <[email protected]>
219

320
* hversion.el: Released 7.0.1.

DEMO

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1152,14 +1152,15 @@ made. An Assist Key Drag will move the the item list buffer to the destination
11521152
(swapping buffers), just as it does with other buffers. Practice these drags as
11531153
they will prove very beneficial across time.
11541154

1155-
For even faster keyboard-based drag emulation, use the Emacs package
1156-
'ace-window' (see "(hyperbole)Keyboard Drags" for setup). Once this is
1157-
configured, the leftmost character or two of each window's modeline will show
1158-
the ID to type to use that window as the drag destination. Then whenever point
1159-
is on an item you want displayed in another window, use M-o i
1160-
<id-of-window-to-display-item-in> and watch the magic happen. You can also use
1161-
this to create explicit button links to other window buffers when in an editable
1162-
buffer.
1155+
For even faster keyboard-based drag emulation, use the Emacs package 'ace-window'
1156+
(see "(hyperbole)Keyboard Drags" for setup). Once this is configured, the
1157+
leftmost character or two of each window's modeline will show the ID to type to
1158+
use that window as the drag destination. Then whenever point is on an item you
1159+
want displayed in another window, use M-o i <window-id> and watch the magic
1160+
happen. You can also use this to create explicit button links to other window
1161+
buffers when in an editable buffer. If you want to display multiple items in
1162+
different windows, instead use the M-o t <window-id> key sequence to @emph{throw}
1163+
the item to the window.
11631164

11641165
*** Cloning Windows
11651166

HY-ABOUT

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Designed and Written by Bob Weiner
44
Maintained by Mats Lidell and Bob Weiner
55
https://www.gnu.org/software/hyperbole/
6-
Version 7.0.1
6+
Version 7.0.2
77

88
GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is
99
an efficient and programmable hypertextual information management

HY-ANNOUNCE

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,78 @@
1+
----------------------------------------------------------------------
2+
7.0.2 Announcement
3+
----------------------------------------------------------------------
4+
From: Bob Weiner <[email protected]>
5+
6+
Subject: GNU Hyperbole 7.0.1-7.0.2 is now available
7+
Date: Wed, 23 Nov 2017
8+
--text follows this line--
9+
This is a minor release with a number of small issues resolved and the following
10+
new features:
11+
12+
SMART (ACTION AND ASSIST) KEYS
13+
14+
- Keyboard Drags: Keyboard emulation of many Smart Mouse Key drag actions.
15+
See "(hyperbole)Keyboard Drags".
16+
17+
- Keyboard Help: When {M-o} is bound to the `hkey-operate' command to
18+
emulate drag depress and release events, then when in the release window
19+
prior to pressing the second {M-o}, {C-h A} now reports the drag
20+
action associated with the current release point. See "(hyperbole)C-h A".
21+
22+
- Ace Window: Integrated Hyperbole item drag and link creation with this
23+
package's direct window selection. Use {M-o i <window-id>}.
24+
You typically can display any Dired or Buffer Menu item in any window
25+
with a single 3 keystroke command!
26+
27+
Also added the ability to 'throw' an item to a window while leaving the
28+
selected window the same. Use {M-o t <window-id>}. This
29+
works in Dired, Buffer Menu, iBuffer Menu and Treemacs modes and lets
30+
you throw multiple items to multiple windows quickly.
31+
32+
See "(hyperbole)Keyboard Drags" for setup and use instructions.
33+
34+
- Smart Treemacs: Smart Key and item drag support for the Treemacs package.
35+
See "(hyperbole)Smart Key - Treemacs".
36+
37+
HYROLO
38+
39+
- Fixed Google Contacts support to prompt for authorization only during
40+
first time use.
41+
42+
-----
43+
44+
For details on what Hyperbole is and how to obtain and install it, see:
45+
46+
https://www.gnu.org/s/hyperbole
47+
48+
For a list of use cases, see:
49+
50+
https://www.gnu.org/s/hyperbole/HY-WHY.html
51+
52+
For a full list of new features in Hyperbole 7, see:
53+
54+
https://git.savannah.gnu.org/cgit/hyperbole.git/plain/HY-NEWS
55+
56+
For what users think about Hyperbole, see:
57+
58+
https://www.gnu.org/s/hyperbole/hyperbole.html#user-quotes
59+
60+
Bob Weiner designed and wrote GNU Hyperbole. He and Mats
61+
Lidell maintain it with the Free Software Foundation. It includes
62+
an interactive demo to introduce you to its features as well as a
63+
detailed reference manual, as explained here:
64+
65+
https://www.gnu.org/s/hyperbole/hyperbole.html#invocation-and-doc
66+
67+
68+
Happy Thanksgiving,
69+
70+
Bob Weiner and Mats Lidell
71+
72+
73+
----------------------------------------------------------------------
74+
7.0.0 Announcement
75+
----------------------------------------------------------------------
176
277
ANNOUNCE: GNU Hyperbole 7, a.k.a the Git Ready for Action Release, is now available
378

HY-NEWS

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
What's New in GNU Hyperbole
22
by Bob Weiner
33

4+
===========================================================================
5+
* V7.0.2
6+
===========================================================================
7+
8+
- Ace Window: Added the ability to 'throw' an item to a window while
9+
leaving the selected window the same. Use {M-o t <window-id>}. This
10+
works in Dired, Buffer Menu, iBuffer Menu and Treemacs modes and lets
11+
you throw multiple items to multiple windows quickly. See
12+
"(hyperbole)Keyboard Drags" for setup and use instructions.
13+
414
===========================================================================
515
* V7.0.1
616
===========================================================================
@@ -12,14 +22,17 @@
1222

1323
- Keyboard Help: When {M-o} is bound to the `hkey-operate' command to
1424
emulate drag depress and release events; when in the release window
15-
prior to pressing the second {M-o}, the {C-h A} now reports the drag
25+
prior to pressing the second {M-o}, {C-h A} now reports the drag
1626
action associated with the current release point. See "(hyperbole)C-h A".
1727

1828
- Smart Treemacs: Smart Key and item drag support for the Treemacs package.
1929
See "(hyperbole)Smart Key - Treemacs".
2030

2131
- Ace Window: Integrated Hyperbole item drag and link creation with this
22-
package's direct window selection. See "(hyperbole)Keyboard Drags".
32+
package's direct window selection. Use {M-o i <window-id>}.
33+
You typically can display any Dired or Buffer Menu item in any window
34+
with a single 3 keystroke command! See "(hyperbole)Keyboard Drags"
35+
for setup and use instructions.
2336

2437
HYROLO
2538

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454

5555
# This ver setup won't work under any make except GNU make, so set it manually.
5656
#HYPB_VERSION = "`head -3 hversion.el | tail -1 | sed -e 's/.*|\(.*\)|.*/\1/'`"
57-
HYPB_VERSION = 7.0.1
57+
HYPB_VERSION = 7.0.2
5858

5959
# Emacs executable used to byte-compile .el files into .elc's.
6060
# Possibilities include: emacs, infodock, xemacs, etc.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# GNU Hyperbole 7.0.1 - The Everyday Hypertextual Information Manager
1+
# GNU Hyperbole 7.0.2 - The Everyday Hypertextual Information Manager
22

33
<!-- START doctoc generated TOC -->
44
**Table of Contents**

README.md.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<h1>
2-
<a id="user-content-gnu-hyperbole-701---the-everyday-hypertextual-information-manager" class="anchor" href="#gnu-hyperbole-701---the-everyday-hypertextual-information-manager" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>GNU Hyperbole 7.0.1 - The Everyday Hypertextual Information Manager</h1>
2+
<a id="user-content-gnu-hyperbole-702---the-everyday-hypertextual-information-manager" class="anchor" href="#gnu-hyperbole-702---the-everyday-hypertextual-information-manager" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>GNU Hyperbole 7.0.2 - The Everyday Hypertextual Information Manager</h1>
33

44
<p><strong>Table of Contents</strong></p>
55
<ul>

hmouse-drv.el

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616
;;; Other required Elisp libraries
1717
;;; ************************************************************************
1818

19-
(eval-when-compile (require 'hui-window)) ;; for `hmouse-drag-item-to-display'
19+
(eval-when-compile
20+
(defvar hmouse-alist nil)
21+
(require 'hui-window)
22+
(makunbound 'hmouse-alist)) ;; for `hmouse-drag-item-to-display'
2023
(require 'hypb)
2124

2225
;; Quiet byte compiler warnings for these free variables.
@@ -364,6 +367,26 @@ Only works when running under a window system, not from a dumb terminal."
364367
;; Leave hkey-drag to choose selected window
365368
(hkey-drag release-window)))
366369

370+
;;;###autoload
371+
(defun hkey-throw (release-window)
372+
"Emulate Smart Mouse Key drag from selected window to RELEASE-WINDOW.
373+
After the drag, the selected window remains the same as it was before
374+
the drag.
375+
376+
Optional prefix ARG non-nil means emulate Assist Key rather than the
377+
Action Key.
378+
379+
Only works when running under a window system, not from a dumb terminal."
380+
(let ((start-win (selected-window)))
381+
(condition-case nil
382+
;; This may trigger a No Action error if start-win and
383+
;; release-win are the same.
384+
(hkey-drag release-window)
385+
(error (when (eq start-win release-window)
386+
(hmouse-drag-item-to-displ
387+
ay))))
388+
(when (window-live-p start-win) (select-window start-win))))
389+
367390
(defun hkey-ace-window-setup (&optional key)
368391
"Bind optional keyboard KEY and setup display of items in windows specified by short ids.
369392
@@ -391,6 +414,7 @@ magic happen."
391414
(require 'ace-window)
392415
(when key (global-set-key key 'ace-window))
393416
(push '(?i hkey-drag-to "Hyperbole Drag To") aw-dispatch-alist)
417+
(push '(?t hkey-throw "Hyperbole Throw") aw-dispatch-alist)
394418
(setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)
395419
;; allows {i} operation to work when only 2 windows exist
396420
aw-dispatch-always t)

hui-mouse.el

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,6 @@ Action and Assist Mouse Keys.")
375375
(autoload 'var:append "hvar" "Append to a list variable." nil)
376376

377377
(require 'hargs)
378-
(require 'hmouse-key)
379378
(defvar hmouse-alist hkey-alist
380379
"Alist of predicates and form-conses for the Action and Assist Mouse Keys.
381380
When the Action Mouse Key or Assist Mouse Key is pressed, the first or second
@@ -385,6 +384,11 @@ evaluated.
385384
The `hkey-alist' variable is the subset of this alist used by the
386385
smart keyboard keys.")
387386

387+
;; This must be required after hmouse-alist is defined since this will
388+
;; recursively require hmouse-drv which requires hui-window when being
389+
;; compiled and that library requires that hmouse-alist be defined.
390+
(require 'hmouse-key)
391+
388392
;; This next library adds drag actions to `hmouse-alist'.
389393
(load "hui-window")
390394

0 commit comments

Comments
 (0)