emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/hyperbole 7503a3d 37/53: Action Mouse Key drag to model


From: Robert Weiner
Subject: [elpa] externals/hyperbole 7503a3d 37/53: Action Mouse Key drag to modeline splits destination window before displaying the target item/buffer; added css to format Hyperbole HTML manual
Date: Wed, 15 Nov 2017 22:47:06 -0500 (EST)

branch: externals/hyperbole
commit 7503a3d0cd5cf8703e72897f6a44fb0c3bf881c0
Author: Bob Weiner <address@hidden>
Commit: Bob Weiner <address@hidden>

    Action Mouse Key drag to modeline splits destination window before 
displaying the target item/buffer; added css to format Hyperbole HTML manual
    
    * man/hyperbole.css: Added to format HTML version of the Hyperbole manual 
like the Hyperbole web page, greatly improving
        its appearance.
    
    * man/hkey-help.txt:
      man/hyperbole.texi (Modeline Clicks and Drags):  Documented new drag 
below.
      hui-window.el (hmouse-alist): Added context of a drag from a window with 
a release to a modeline which for Action Mouse
        Key splits the release window (which contains the modeline) and then 
displays the item or the buffer from the depress
        window in the release window.  With the Assist Mouse Key, just swaps 
buffers with no new window creation.
    
                    (hmouse-modeline-click): Updated to do full testing for a 
click, so this can be called at any point
        after Smart Mouse Key release.
                    (hmouse-buffer-to-window, hmouse-item-to-window): Added 
optional boolean new-window parameter to force
        a new window before buffer display.
                    (hmouse-split-window): Added.
                (hmouse-modeline-event-p): Fixed conditional error that caused 
fall through past Modern GNU Emacs clause.
                (action-mouse-key, assist-mouse-key): Set above new variables.
                    (action-key, assist-key): Added clear of any value of 
*-key-depress/release-position.
      hmouse-drv.el (action-key-release-position, assist-key-release-position): 
Added these to compare to existing
        *-key-depress-position value.
    
    * README.md, HY-ANNOUNCE: Updated for public release.
---
 Changes             |  40 ++-
 DEMO                |  68 ++--
 HY-ANNOUNCE         | 992 +++++-----------------------------------------------
 HY-ANNOUNCE-SHORT   |  98 +-----
 HY-NEWS             |  20 +-
 HY-WHY.kotl         |  18 +-
 INSTALL             |   2 +-
 Makefile            |  10 +-
 README              |   2 +-
 README.md           |  18 +-
 README.md.html      |  18 +-
 hmouse-drv.el       |  91 ++---
 hui-window.el       |  92 +++--
 hycontrol.el        |   2 +-
 man/hkey-help.txt   |   8 +
 man/hyperbole.css   | 453 ++++++++++++++++++++++++
 man/hyperbole.html  |  66 ++--
 man/hyperbole.info  | Bin 462502 -> 463350 bytes
 man/hyperbole.pdf   | Bin 816990 -> 817430 bytes
 man/hyperbole.texi  |  48 ++-
 man/version.texi    |   2 +-
 topwin => topwin.py |   0
 22 files changed, 863 insertions(+), 1185 deletions(-)

diff --git a/Changes b/Changes
index e362036..bb3720c 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,27 @@
+2017-10-27  Bob Weiner  <address@hidden>
+
+* man/hyperbole.css: Added to format HTML version of the Hyperbole manual like 
the Hyperbole web page, greatly improving
+    its appearance.
+
+* man/hkey-help.txt:
+  man/hyperbole.texi (Modeline Clicks and Drags):  Documented new drag below.
+  hui-window.el (hmouse-alist): Added context of a drag from a window with a 
release to a modeline which for Action Mouse
+    Key splits the release window (which contains the modeline) and then 
displays the item or the buffer from the depress
+    window in the release window.  With the Assist Mouse Key, just swaps 
buffers with no new window creation.
+
+                (hmouse-modeline-click): Updated to do full testing for a 
click, so this can be called at any point
+    after Smart Mouse Key release.
+                (hmouse-buffer-to-window, hmouse-item-to-window): Added 
optional boolean new-window parameter to force
+    a new window before buffer display.
+                (hmouse-split-window): Added.
+               (hmouse-modeline-event-p): Fixed conditional error that caused 
fall through past Modern GNU Emacs clause.
+               (action-mouse-key, assist-mouse-key): Set above new variables.
+                (action-key, assist-key): Added clear of any value of 
*-key-depress/release-position.
+  hmouse-drv.el (action-key-release-position, assist-key-release-position): 
Added these to compare to existing
+    *-key-depress-position value.
+
+* README.md, HY-ANNOUNCE: Updated for public release.
+
 2017-10-26  Bob Weiner  <address@hidden>
 
 * man/hyperbole.texi (Smart Mouse Drags outside a Window): Added this new 
section.
@@ -5,7 +29,7 @@
 
 * hui-window.el (hmouse-goto-region-point, hmouse-prior-active-region): 
Rewrote these to work properly so that Smart
     Mouse yanking and killing feature works as documented.  Previously, it was 
not switching to the buffer of the
-    depress point when checking foran active region.
+    depress point when checking for an active region.
 
 * hmouse-drv.el: Updated doc.
 
@@ -41,7 +65,7 @@
                 hycontrol-split-windows-repeatedly, 
hycontrol-split-windows-rows-columns): Renamed by replacing
     'split-windows' with 'windows-grid'.
                 (hycontrol-window-minimize-lines): Previously did not resize 
window if it could not display all of the
-    buffer lines in the window.  Now will resize to 1 line if cannor or if all 
lines are already displayed.
+    buffer lines in the window.  Now will resize to 1 line if cannot or if all 
lines are already displayed.
                 (hycontrol-split-windows-buffer-list): Added doc string.
 
 * DEMO (HyControl): Added interactive examples of newest HyControl commands.
@@ -69,8 +93,6 @@
 * hycontrol.el (hycontrol-universal-arg-digit): Removed first argument and 
replaced with global hycontrol-arg,
     so could set this value internally.
 
-               (hycontrol--debug, hycontrol-setup): Changed from -1 to 0 as 
debug setting since -1 is used to turn off
-    HyControl minor modes.
                (hycontrol-debug): Renamed from hycontrol--debug.  Made public 
so can be set directly.
                (hycontrol-setup, hycontrol-frames, hycontrol-windows): : 
Removed debug parameter; no longer needed since
     all events are handled normally by Emacs now.
@@ -132,8 +154,8 @@
 
 2017-10-22  Bob Weiner  <address@hidden>
 
-* Makefile ($(pkg_dir)/hyperbole-$(HYPB_VERSION).tar): Ensured `topwin' script 
was made executable.
-  hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Changed to find 
`topwin' executable in
+* Makefile ($(pkg_dir)/hyperbole-$(HYPB_VERSION).tar): Ensured `topwin.py' 
script was made executable.
+  hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Changed to find 
`topwin.py' executable in
     hyperb:dir so no additional installation is necessary.
 
 * hycontrol.el (hycontrol-window-to-new-frame): Fixed to duplicate prior 
selected window size properly.
@@ -305,7 +327,7 @@
 2017-10-14  Bob Weiner  <address@hidden>
 
 * hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Added optional 
Python script,
-    topwin, for macOS window-system only.  It determines the topmost 
application window at
+    topwin.py, for macOS window-system only.  It determines the topmost 
application window at
     the given position and returns the application name, so Emacs can tell if 
its frame is
     obscured by another application or not.
                 (hmouse-verify-release-window-flag): Added so can turn off use 
of the macOS
@@ -410,7 +432,7 @@
 2017-10-11  Bob Weiner  <address@hidden>
 
 * hycontrol.el (hycontrol-window-to-frame): Modified in the case of only one 
window in the frame,
-    then clone the window into a new frame.  This allows you to create a bunch 
of tiled frames
+    then clone the window into a new frame.  This allows you to create a bunch 
of staggered frames
     when in Window Control mode.  Also made this an autoload and called in 
"hui-window" within
     hmouse-alist.
 
@@ -525,7 +547,7 @@
 2017-10-02  Bob Weiner  <address@hidden>
 
 * hui-window.el (hmouse-pulse-flag): Added to allow disabling visual pulsing 
in Action Mouse
-    Key buffer/file window placement.  Used in hmouse-pulse-buffer and 
hmsoue-pulse-line.
+    Key buffer/file window placement.  Used in hmouse-pulse-buffer and 
hmouse-pulse-line.
 
 * hload-path.el (stringp): Forced use of hyperb:dir truename (after resolving 
pathname links).
 
diff --git a/DEMO b/DEMO
index 1f66061..bfa6a51 100644
--- a/DEMO
+++ b/DEMO
@@ -126,7 +126,7 @@ current context; {C-u C-h A} displays the same kind of help 
for the Assist
 Key.  Only a capital A will work, so be sure to press shift.  Try these
 help commands.
 
-You can also see what mouse-only events like mode-line clicks and drags across
+You can also see what mouse-only events like modeline clicks and drags across
 frames will do.  Depress the Smart Mouse Key you are interested in at
 a location, then while holding it down, depress the other Smart Mouse Key, move
 to any release point and then release both keys.  The help displayed will show
@@ -193,7 +193,7 @@ Once in HyControl, your minibuffer window at the bottom of 
the selected frame
 will display a summary of keys you may use to adjust your windows until you
 press {q} to quit from HyControl.  If you don't see it, press {?}, to turn on
 this help display.  The key, {t}, will always switch you between controlling
-frames and windows, the minor modes of HyControl, with a mode-line indicator
+frames and windows, the minor modes of HyControl, with a modeline indicator
 of either "HyFrm" or HyWin" depending on which type of control is active.  See
 "(hyperbole)HyControl" for full usage information.
 
@@ -948,25 +948,6 @@ three or more lines to split the window.  Again, change 
the buffer of one of
 the windows.  Then use a vertical Assist Key drag within either one of the
 side-by-side windows to delete it.
 
-** Cloning Windows and Buffer/File Items to other Frames
-
-If you want to copy/clone a window to a new frame, simply drag the Action
-Mouse Key from within the window to anywhere outside of Emacs and release.  A
-new frame will be created, selected and sized according to the original
-window.  Do the same thing with the Assist Mouse Key and the original window
-will be deleted as well unless it is the only window in that frame.  Create a
-few windows and try these actions.
-
-This also works for items in dired, buffer menu and ibuffer menus.  With the
-Action Mouse Key, the selected item is displayed in a new frame or any Emacs
-window into which you release.  So now you can rapidly put a bunch of buffers
-and files on your screen wherever you like.  Typically, a brief visual pulse
-is shown first at the source item and then in the whole destination window,
-to help you see that the transfer has been made.  An Assist Key Drag will
-move the window with the item list to the destination, just as it does for
-other windows.  Practice these drags as they will prove very beneficial
-across time.
-
 ** Resizing Windows
 
 You can easily resize Emacs windows by dragging their window separators
@@ -988,7 +969,7 @@ window.
 Try to drag the bottom modeline.  You see that you can't; you would have to
 resize the frame to move the bottom up.
 
-** Dragging Buffers and Windows
+** Dragging Buffers, Windows and Items
 
 *** Swapping Buffers
 
@@ -1006,18 +987,41 @@ If you have just two windows in an Emacs frame, you can 
swap their buffers
 from the keyboard.  Use this Hyperbole minibuffer menu key sequence to swap
 the buffers and quit from the Hyperbole minibuffer menu: {C-h h s w ~ q}.
 
-*** Moving Buffers
+*** Displaying Buffers
+
+What if you want to display the same buffer in another window and not swap
+buffers?  Depress the Action Key in the open area of the modeline of the source
+window and drag to the text area of the destination window.  Voila, the buffer
+appears in the new location as well as the old one.
+
+If you want a new window where you release (so the original destination 
window's
+buffer stays onscreen), just drag to a window's modeline; that window will be
+split before the buffer is displayed.
+
+*** Displaying File and Buffer Items
+
+You can do the same thing with items in dired, buffer menu and ibuffer menus
+rather than buffers themselves.  Drag with the Action Mouse Key and the 
selected
+item will be displayed in any Emacs window in which you release.  Drag outside
+Emacs and it will be displayed in a new frame.
+
+*** Cloning Windows
+
+To clone a window with its buffer to a new frame, simply drag the Action Mouse
+Key from the window to outside of Emacs and release the key.  A new frame will
+be created, selected and sized according to the original window.  Do the same
+thing with the Assist Mouse Key and the original window will be deleted as 
well,
+unless it is the only window in that frame.  Create a few windows and try these
+actions.
 
-What if you want to display the same buffer in another frame and not swap
-buffers.  Depress the Action Key in the open area of the modeline of the
-source window and drag to the text area of the destination window.  Voila,
-the buffer appears in the new location as well as the old one.
+*** Summary
 
-To clone a window with its buffer to a new frame, simply drag the Action Key
-from the window to outside of Emacs and release the key.  A new frame pops up
-about the size of the original window with the same buffer.  Try it.  The
-same action with the Assist Key will move the window to the new frame,
-deleting the old one even unless it is the only window in the frame.
+So now you can rapidly put a bunch of buffers and files on your screen wherever
+you like.  Typically, a brief visual pulse is shown first at the source item 
and
+then in the whole destination window, to help you see that the transfer has 
been
+made.  An Assist Key Drag will move the window with the item list to the
+destination, just as it does for other windows.  Practice these drags as they
+will prove very beneficial across time.
 
 ** Saving and Restoring Window Configurations
 
diff --git a/HY-ANNOUNCE b/HY-ANNOUNCE
index 61d6763..622cf5c 100644
--- a/HY-ANNOUNCE
+++ b/HY-ANNOUNCE
@@ -1,42 +1,53 @@
-ANNOUNCE: GNU Hyperbole 6.0.2f for Emacs 24.4 or newer is released
+To: address@hidden, address@hidden, address@hidden
+ANNOUNCE: GNU Hyperbole 7.0.0 is released for Emacs 24.4 and above
 
-The GNU Hyperbole home page, https://www.gnu.org/software/hyperbole, contains a
-number of screenshots of Hyperbole and its menus and links to useful resources.
+The GNU Hyperbole home page, https://www.gnu.org/software/hyperbole,
+contains a number of screenshots of Hyperbole and its menus and links to
+useful resources.
 
 GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is an
-amazing, programmable hypertextual information management system implemented as
-a GNU Emacs package.  This is the second public release in 2016.  Hyperbole has
-been greatly expanded and modernized for use with the latest Emacs 25
-releases; it supports GNU Emacs 24.4 or above.  It contains an extensive set
-of improvements that can greatly boost your day-to-day productivity with Emacs
-and your ability to manage information stored across many different machines
-on the internet.  People who get used to Hyperbole find it helps them so much
-that they prefer never to use Emacs without it.
-
-Hyperbole includes easy-to-use, powerful hypertextual button types and links
-that can be made without the need to learn a markup language.  It also
-includes a hierarchical, record-based contact manager, a rapid window and
-frame control system and a powerful multi-level auto-numbered outliner.  All
-features are aimed at making textual information management and display fast
-and easy.
-
-Hyperbole embeds hypertext buttons within unstructured and structured files,
-mail messages and news articles.  It offers intuitive keyboard and mouse-based
-control of information display within multiple windows.  It also provides
-point-and-click access to World-Wide Web URLs, Info manuals, ftp archives, etc.
-
-The Hyperbole wiki page, "https://www.emacswiki.org/emacs/Hyperbole";, explains
-the many ways it differs from and is complementary to Org mode.
-
-Instructions follow on how to download, install and utilize GNU Hyperbole as an
-Emacs package.  These are followed by What's New with Hyperbole in 2016.
-
-Bob Weiner designed and programmed GNU Hyperbole. He and Mats Lidell maintain
-it for the Free Software Foundation.  It includes an interactive demo to
-introduce you to its features and a detailed reference manual.
+amazing, programmable hypertextual information management system
+implemented as a GNU Emacs package.  This is the main public release of
+2017.  Hyperbole has been greatly expanded and updated for use with the
+latest Emacs 26 releases; it supports GNU Emacs 24.4 or above.  It contains
+an extensive set of improvements that can greatly boost your day-to-day
+productivity with Emacs and your ability to manage information stored
+across many different machines on the internet.  People who get used to
+Hyperbole find it helps them so much that they prefer never to use Emacs
+without it.
+
+Hyperbole includes easy-to-use, powerful hypertextual button types and
+links that can be made without the need to learn a markup language.  It
+also includes a hierarchical, record-based contact manager, a rapid window
+and frame control system and a powerful multi-level auto-numbered outliner.
+All features are aimed at making textual information management and display
+fast and easy.
+
+Hyperbole embeds hypertext buttons within unstructured and structured
+files, mail messages and news articles.  It offers intuitive keyboard and
+mouse-based control of information display within multiple windows.  It
+also provides point-and-click access to World-Wide Web URLs, Info manuals,
+ftp archives, etc.
+
+The Hyperbole wiki page, "https://www.emacswiki.org/emacs/Hyperbole";,
+explains the many ways it differs from and is complementary to Org mode.
+
+Instructions follow on how to download, install and utilize GNU Hyperbole
+as an Emacs package.  These are followed by What's New with Hyperbole in
+2017.
+
+Bob Weiner designed and programmed GNU Hyperbole. He and Mats Lidell
+maintain it for the Free Software Foundation.  It includes an interactive
+demo to introduce you to its features and a detailed reference manual.
 
 ===========================================================================
-*                          About
+*                  What's New in GNU Hyperbole V7.0.0
+===========================================================================
+
+See "https://git.savannah.gnu.org/cgit/hyperbole.git/tree/HY-NEWS";.
+
+===========================================================================
+*                                About
 ===========================================================================
 
 GNU Hyperbole consists of five parts:
@@ -96,22 +107,7 @@ The GNU Hyperbole project home page gives a more extensive 
description:
 "https://www.gnu.org/software/hyperbole/";.
 
 ===========================================================================
-*                       Browsing the Source
-===========================================================================
-
-To explore the Hyperbole source code rather than installing it for use,
-download a tar.gz source archive from either:
-
-    ftp://ftp.gnu.org/gnu/hyperbole/
-
-or
-
-    http://ftpmirror.gnu.org/hyperbole/
-
-which will find the closest mirror of the GNU ftp site and show it to you.
-
-===========================================================================
-*                          Package Installation
+*                     Package Installation
 ===========================================================================
 
 Once you have Emacs set up at your site, GNU Hyperbole may be
@@ -137,9 +133,9 @@ lines to your personal Emacs initialization file, typically 
"~/.emacs".
   (package-install 'hyperbole))
 (require 'hyperbole)
 
-Now restart Emacs and Hyperbole will be downloaded and compiled for use with
-your version of Emacs.  You may see a bunch of compilation warnings but these
-can be safely ignored.
+Now restart Emacs and Hyperbole will be downloaded and compiled for use
+with your version of Emacs.  You may see a bunch of compilation warnings
+but these can be safely ignored.
 
 ===========================================================================
 *                           Invocation
@@ -165,7 +161,7 @@ You can invoke Hyperbole commands in one of three ways:
 Use {C-h h d d} for an interactive demonstration of standard Hyperbole
 button capabilities.
 
-{C-h h k e} offers a interactive demonstration of the Koutliner,
+{C-h h k e} offers an interactive demonstration of the Koutliner,
 Hyperbole's multi-level autonumbered hypertextual outliner.
 
 To try out HyControl, Hyperbole's interactive frame and window control
@@ -194,6 +190,30 @@ wherever the Hyperbole package directory is on your 
system; often this is:
 "~/.emacs.d/elpa/hyperbole-${hyperb:version}/".
 
 ===========================================================================
+*               Ftp and Git Repository Downloads
+===========================================================================
+
+To inspect the Hyperbole source code online rather than installing it for
+use (which will also give you the source code), open a web page to:
+
+    https://git.savannah.gnu.org/cgit/hyperbole.git/tree/
+
+Alternatively, you may download a tar.gz source archive from either:
+
+    ftp://ftp.gnu.org/gnu/hyperbole/
+
+or
+
+    http://ftpmirror.gnu.org/hyperbole/
+
+which will find the closest mirror of the GNU ftp site and show it to you.
+
+If you want to follow along with Hyperbole development and maintain a
+copy/clone of the current version-controlled git tree, use a
+command listed here: "https://savannah.gnu.org/git/?group=hyperbole";
+to clone the Hyperbole project tree.
+
+===========================================================================
 *                           User Quotes
 ===========================================================================
 
@@ -212,6 +232,26 @@ wherever the Hyperbole package directory is on your 
system; often this is:
 
 -------
 
+  One of the nicest things about Hyperbole is that it's available
+  everywhere.  Org-mode is a mode and its features are only available in
+  *.org files.  For instance if you dropped into `eshell' or `ansi-term' and
+  did `ls', you can move point to any of the directory's contents, do M-RET
+  (or Shift-Button2) and jump to that file.  And that's just one example.
+  Note that this means that all Hyperbole functionality is available in
+  *.org files as well.  To me, except for the Hyperbole outliner, that means
+  complementary not conflicting. It's Hyperbole *and* org-mode, not
+  Hyperbole vs. org-mode.
+
+  Additionally, off the bat, I found it very well documented and for me
+  that's a proxy for the quality of a package.  The maintainers are quite
+  responsive.  There's plenty more functionality that I haven't uncovered yet
+  but due to the ease of installation and the quality of the documentation,
+  digging into it is actually fun.
+
+                                       -- Aditya Siram
+
+-------
+
   For me, Emacs isn't Emacs without Hyperbole.  I have depended on Hyperbole
   daily since 1992, when I first started using it to manage my development
   environment.  It didn't take long before I could summon almost any
@@ -352,848 +392,4 @@ wherever the Hyperbole package directory is on your 
system; often this is:
 
                                         -- Craig Smith
 
-===========================================================================
-*                 What's New in GNU Hyperbole V6.0.2
-===========================================================================
-
-  BUTTONS
-
-    - pathname Implicit Button Type: generalized to handle hash-style links to
-      HTML files, to Github Markdown # sections and to Emacs outline *
-      sections.  So an Action Key press on any of the following links displays
-      the link referent:
-            "man/hyperbole.html#Questions-and-Answers"
-           "README.md#why-was-hyperbole-developed"
-           "DEMO#HTML Markdown and Emacs Outline Hash Links"
-      Even links split across 2 lines like this now work: "DEMO#Social Media
-      Hashtags and Usernames", as long as point is on the first line.
-
-      Within HTML and Markdown files, in-file hash links without any file name
-      prefix work as well.
-
-      HTML hash-links are case-sensitive; other hash-links are not.  Hash links
-      typically use dashes in place of the spaces that referents may contain,
-      but if the link is enclosed in quotes, Hyperbole allows spaces to be used
-      as well.  In fact, it is best practice to always enclose hash-style links
-      in quotes so Hyperbole can distinguish them from other similar looking
-      constructs, such as social media hashtags (see "(hyperbole)Social 
Media").
-
-      Pathnames surrounded by literal non-ASCII quote marks now work as well.
-      For example, ‘http://ftp.gnu.org/gnu/hyperbole/’.
-
-    - New Implicit Button Type, markdown-internal-link, displays any in-file
-      Markdown link referent, aside from pathnames and urls.  Together with
-      other types, all Markdown links can now be followed by the Action Key.
-
-    - social-reference Implicit Button Type: Disabled this type within quoted
-      strings (all modes) and within parentheses (markdown-mode), so in-file
-      hash link references are not matched as social hash tags.  Made the list
-      of modes a variable, hibtypes-social-inhibit-modes.
-
-    - New link-to-web-search Action Type: Allows global and explicit buttons
-      to link to specific web term searches from `hyperbole-web-search-alist'.
-
-    - org-mode Implicit Button Type: Improved to invoke org-meta-return when
-      not on an Org link or outline heading.
-
-  DOCUMENTATION
-
-    - Added pointer to HyControl video and {C-c \} binding which invokes
-      HyControl window control.
-
-    - README File: New Org-mode user testimonial.
-
-    - DEMO File: Added description and exercise using the new Find/Web menu.
-
-    - Added README.md.html introduction with images combining README, INSTALL
-      and HY-ABOUT information.
-
-    - Full set of hand-written changes are now in the file "Changes".  The
-      former name, ChangeLog, is now auto-generated from the version controlled
-      'git log' but not as complete.
-
-  KEYS
-
-    - New variables, action-key-eol-function and assist-key-eol-function, used
-      to control what the Action and Assist Keys do at the end of a line.
-      Default behaviors remain as before but now one can set these to do
-      something other than scrolling, if desired.  See "(hyperbole)Smart Key -
-      Smart Scrolling"
-
-    - When in HyControl, pressing {ESC} now quits in addition to {q}.
-
-  MENUS
-
-    - New submenu, Find/Web, for quick access to major web search engines.
-      The Find/Web menu looks like this:
-        Web> Amazon Bing Dictionary Elisp Facebook Google Hub(git) Images Maps 
RFCs StackOverflow Twitter Wikipedia Youtube
-
-      Hyperbole binds the key {C-c /} for quick access to this menu, if it is
-      not already bound prior to Hyperbole's initialization. The
-      Cust/Web-Search menu, {C-h h c w}, sets the option,
-      hyperbole-web-search-browser-function, which determines whether web
-      search results are displayed within Emacs or with an external web
-      browser.  A short video introduction to the Find/Web menu may be found at
-      https://youtu.be/8lMlJed0-OM.
-
-      Advanced users can change the search engines listed in the Find/Web menu
-      with M-x customize-variable RET hyperbole-web-search-alist RET.  Changes
-      are automatically reflected in the Hyperbole menus once applied.
-      Remember each search engine name must begin with a unique letter and each
-      URL must have a %s format field indicating where to place the web search
-      term when a search is performed.  See "(hyperbole)Web Search Engines".
-
-===========================================================================
-*                            V6.0.0 - V6.0.1
-===========================================================================
-
-NOTE: Version 6.0.1 was the first public release by the author, Bob Weiner,
-since version 4.18.  All version 5 releases made this year were test releases,
-so you should look through all of the V5 news items to understand all that is
-new in V6 as well.  In other words, all news items listed below are new for
-2016.
-
-  BUTTONS
-
-    - New implicit button type for social media hashtag or username
-      references, social-reference.  Action key activation displays
-      the web page associated with the hashtag or username.  References
-      can look like #hashtag or @username for Twitter references.
-      fb#hashtag or address@hidden for Facebook references or
-      in#hashtag or address@hidden for Instagram references.
-      See the new file "hib-social.el" for more information.
-
-  DOCUMENTATION
-
-    - The introductory parts of the manual have been improved and the flow
-      from section to section is better.  Added menu key sequences to
-      "(hyperbole)Suggestion or Bug Reporting".  Expanded and added
-      instructions on using the customize interface to change the functions
-      run by Smart Key modeline clicks.  See "(hyperbole)Smart Key Modeline".
-
-  HYROLO
-
-    - The Hyperbole contact manager has been renamed to HyRolo and all of its
-      identifiers now begin with hyrolo-.  If you had a custom value of
-      `rolo-file-list' in your ~/.emacs file, you should rename it to
-      `hyrolo-file-list'.
-
-  KEYS
-
-    - Removed the {RET} key bindings of the Action Key in read-only modes since
-      it was not consistent across all modes and probably was little used.  It
-      also could interfere with mode-specific usage of this key.  Just use the
-      standard Action Key bindings.
-
-  MAIL
-
-    - Implicit mail address buttons are recognized in many more programming
-      modes.  See the value of `mail-address-mode-list'.
-
-  VARIABLES
-
-    - Hyperbole is now integrated with the Emacs option customization system,
-      allowing for interactive editing and permanent setting of many Hyperbole
-      options.  Use {M-x customize-browse RET} and find the Hyperbole group
-      under Applications.  Hyperbole's options are divided into logical
-      subgroups such as Rolo and Koutliner.  See "(emacs)Easy Customization"
-      for details on the customization system and "(hyperbole)Configuration"
-      for Hyperbole specifics.
-
-    - hsettings.el is now included in the Hyperbole package rather than
-      generated (formerly called hsite.el).  Use the Hyperbole customization
-      variables to change anything in there rather than editing the file
-      manually as before.
-
-    - Renamed any Hyperbole hook variables that had a colon in their names to
-      use a hyphen instead.
-
-    - hsite.el is now included in the Hyperbole package rather than generated.
-      Use the Hyperbole customization variables to change anything in there
-      rather than editing the file manually as before.
-
-  WINDOW CONFIGURATIONS
-
-    - Similarly, the commands from the Win/ menu from Wconfig have been renamed
-      to begin with hywconfig- and the library is now called hywconfig.el.
-
-===========================================================================
-*                                   V5.15
-===========================================================================
-
-  BUTTONS
-
-    - New Implicit Button Type, debbugs-gnu-mode: When on a GNU Debbugs listing
-      entry in debbugs-gnu-mode, an Action Key press displays the discussion of
-      the selected issue; an Assist Key press pretty prints the status of the
-      issue to a window below the listing window.  This augments the
-      debbugs-gnu-query implicit button type from V5.14 which recognizes
-      bug/issue ids and queries in any buffer.
-
-    - Initial Org Mode Support: The new implicit button type, org-mode, follows
-      Org mode hyperlinks and cycles display views of Org mode outline 
headings.
-      When on a heading, the Action Key cycles the view of the subtree at point
-      and the Assist Key cycles the view of all headings in the buffer.
-
-      Suggest other good ideas for Smart Key actions on Org entities and we'll
-      likely implement them.
-
-    - Links to Info Manual Index Items: You can now drag between windows with
-      the Action Mouse Key depressed to an Info Manual index menu entry to
-      create an explicit button link to it (or use {C-h h e c} with an action
-      type of link-to-Info-index-item).  Then the button will always take you
-      to the line in the manual referenced by that index item.  This also works
-      with other Info menu items and cross-references.  Implicit buttons that
-      reference index items work too, like "(hyperbole)C-c C-m"!  And when you
-      are creating the link, full completion of the file name (within
-      parentheses) and the index item name is provided; just type ? to list
-      completions after typing a few characters.  Since Emacs and most GNU
-      programs include Info manuals, you now ​have ​a simple way to link to and
-​      ​jump​ ​to any marked item within any manual.
-      
-      Previously, when creating a link to an Info manual node, Hyperbole
-      would ignore cross-references and menu items and just link directly
-      to the node rather than anything it referenced.  To get that behavior
-      now, simply link to a place in the node that does not reference another
-      place.
-
-    - Link Button Creation: Hyperbole now shows you what you linked to at
-      global or explicit link button creation time.  Previously, it showed you
-      only the type of the link.  So if you drag across windows from a button
-      label to an Info index item now, you will know that the link goes to the
-      index item entry and not to the index node containing the item reference.
-
-    - New Implicit Button Type, pathname-line-and-column: A whitespace or quote
-      delimited existing pathname followed by a :line-num and an optional
-      :column-num displays the path at line-num and column-num.  So
-      "~/.emacs:10:40" shows your Emacs initialization file at line 10 and
-      column 40.  The column number is optional.​
-
-    - GNU Info Manual Key Sequences: Previously, Hyperbole recognized​ ​key
-      sequences delimited by curly braces only, {}.  Now it recognizes​ the​
-      ​quotation ​marks used in GNU Info manuals as well and can execute them
-      with an Action Key press within Info buffers.
-
-    - Imenu Item Recognition: When the Emacs imenu library is in use and an
-      identifier menu has been generated for the current buffer, an Action Key
-      press on an identifier at point jumps to the identifier definition
-      within the current buffer; an Assist Key press prompts with completion
-      for an identifier defined within the buffer and then jumps to its
-      definition.
-
-  DOCUMENTATION
-
-    - Smart Key Debugging: Added a section, "(hyperbole)Smart Key Debugging",
-      to the Hyperbole Manual, documenting the usage of the Customize Menu
-      option, Toggle-Smart-Key-Debug (minibuffer menu Cust/Debug-Toggle,
-      {C-h h c d}).
-
-  KEYS
-
-    - Toggle Hyperbole Keys: The new command, {M-x hyperbole-toggle-bindings
-      RET}, toggles Hyperbole mouse and keyboard keys off and on.  This is not
-      bound to a key because it will make Hyperbole unusable until the keys are
-      re-established with another toggle.  This forces you to know what you are
-      doing before you utilize this feature.
-
-  MENUS
-
-    - Minibuffer Keyboard Direct Selection:  You have always been able to click
-      with your mouse on a minibuffer menu item to directly select it.  Now
-      Hyperbole has the keys {TAB} or {M-f} to move to the next menu item and
-      {Shift-TAB}, {M-TAB} or {M-b} to move to the previous item, with each
-      cycling back when it reaches the end or beginning of the menu.  The
-      fastest way to select minibuffer menu items from the keyboard remains
-      typing the first letter (case-insensitive) of the menu item.
-
-    - Minibuffer Menu Navigation Changes: A press of {RET} with point at the
-      end of a menu, quits from the menu.  {RET} with point in a menu prefix
-      (before the '>' character), returns to the top-level Hyperbole menu.
-      Clicks of the Action Mouse Key do the same thing, so now you can
-      navigate and quit from menus with just the Action Mouse Key.
-
-===========================================================================
-*                               V5.13 and V5.14
-===========================================================================
-
-  BUTTONS
-
-    - Instant Bug Lookups and Queries: New Gnu Debbugs bug/issue tracking
-      implicit button type, debbugs-gnu-query, that jumps to the description
-      and discussion of issues by issue number and displays an issue's status.
-      This works for the GNU Hyperbole issue tracker as well as many other GNU
-      projects.  All of these button formats may be embedded within any text:
-
-             #id-number
-             bug#id-number, bug# id-number, bug #id-number or bug id-number
-             bug?attr1=val1&attr2=val2&attr3=val3
-             bug#id-number?attr1=val1&attr2=val2&attr3=val3
-
-      Note that `issue' or `debbugs' may be used in place of `bug'.
-
-      See the documentation at the start of "hib-debbugs.el" for more
-      information.
-
-    - During the creation of link-to-Info-node explicit buttons with an
-      argument of the type (filename)nodename, full completion is offered for
-      both the filename and the node name; just type ? to list completions
-      after typing a few characters.  You now can drop the .info suffix from
-      filenames as well, so "(hyperbole)Smart Keys" works fine as a node
-      reference.
-
-    - Implicit links from the output of the UNIX apropos command now work
-      properly in Emacs 25.
-
-    - Implicit pathname matches now handle compressed Emacs Lisp files found
-      anywhere within the directories of `load-path' and do not try to expand
-      paths that begin with a ~.
-
-    - New variable, `hpath:info-suffix', is a regular expression of Info
-      filename suffixes which may be ommitted when using parenthesized Info
-      filenames in links; this allows for compressed Info file matches and Info
-      pathnames of the form "(Hyperbole)" to work.  That displays the top node
-      of the Hyperbole Manual in the Info browser.
-
-    - Pathnames ending in .mp3, .wav or .ogg are played as music files rather
-      than displayed if your Emacs has support for this.  Modify the value of
-      the variable, `hpath:internal-display-alist' to add more formats.
-
-    - New per-window system association list variables determine what if any
-      file types within Hyperbole hyperlinks are displayed by external programs
-      outside of Emacs.  See the values of and documentation for:
-      `hpath:external-display-alist-macos', 
`hpath:external-display-alist-mswindows',
-      and `hpath:external-display-alist-x'.
-
-    - Added support for &, ~, and ^ as identifier characters in Lisp tags and
-      removed #.
-
-  DOCUMENTATION
-
-    - DEMO File: Major updates to reflect the latest Hyperbole features.  Added
-      sections on HyControl, Creating and Modifying Explicit Buttons and
-      Path Suffixes and Variables.  Try it out with {C-h h d d}.
-
-    - Hyperbole Manual
-        - Updated all screenshots in the manual; thanks to Mats L.
-        - In the "(hyperbole)Internal Viewers" section, added a description of
-          the file formats supported by the default setting of the
-          `hpath:internal-display-alist' variable.
-        - Added sections "(hyperbole)Smart Key Modifiers" and
-          "(hyperbole)Smart Key Modeline".
-        - Added a "(hyperbole)Glossary" entry for Chord Keyboard.
-        - In "(hyperbole)Smart Key Thing Selection", added documentation of the
-          {C-c RET} key for syntactical region marking and the {C-c .} key for
-          delimited thing jumping between start and end.
-        - In the Cust/ menu section of "(hyperbole)Menus" which lists all
-          Hyperbole key bindings, indicated which keys are bound only if not
-          bound prior to loading Hyperbole.
-
-  HYCONTROL
-
-    - Frame placement calculations now account for window system decorations
-      around frame, leading to improved placement offsets around screen edges.
-      See the documentation for `hycontrol-set-screen-offsets'.
-
-  MENUS
-
-    - On the Hyperbole menubar menu, the Types submenu which shows
-      documentation for Hyperbole types has been moved below the Documentation
-      menu to match the Hyperbole minibuffer menu location.  Also added a Types
-      menu item under the Explicit-Button menu to match the one under the
-      Implicit-Button menu.
-
-    - On the Hyperbole Customize/Change-Key-Bindings menubar menu, renamed
-      these entries and added Mark-Think-Key.  Similar updates done to the
-      minibuffer menu.
-
-  MOUSE AND SMART KEY SUPPORT
-
-    - An Action Key press on a Hyperbole minibuffer menu key sequence now
-      invokes the associated menu action.  Try it with {C-h h d g} to see the
-      Hyperbole glossary.  An Assist Key press shows help for the menu item.
-
-    - Changed the `assist-key-default-function' which applies in an 
unrecognized
-      context to trigger an error by default to match the behavior of the
-      Action Key.  Its prior value, toggle display of or hide the Smart Key
-      summary, is performed by an Assist Key click in the right of a modeline
-      or via minibuffer menu with {C-h h d s}.
-
-    - Point is now left within the Smart Key summary by default and it is in
-      help mode so you can page through it with SPC and DEL keys and then quit
-      from it with {q}.
-
-    - A click of the Action Mouse Key within an inactive minibuffer menu
-      displays the Hyperbole minibuffer menu, allowing you to invoke menu
-      entries with the mouse.  A click of the Assist Key in the same place
-      displays the buffer, window and frame jump menu just as does a click
-      within the middle of a modeline since it is easy to miss by a little and
-      click on one or the other.  These behaviors are controlled by the new
-      variables, `action-key-minibuffer-function' and
-      `assist-key-minibuffer-function'.
-
-    - Distributed Window System Support: Previously, Hyperbole supported mouse
-      control only on the screen on which it was launched.  If you used
-      emacsclient or other means to create a frame on another screen or outside
-      of a terminal, that frame would not have Hyperbole mouse support even
-      though it was under a window system.  Now each frame receives mouse
-      support whenever its window system has mouse support.
-
-    - Improved support for using the Action and Assist Mouse Keys as Control-
-      and Meta- modifier keys, mainly for use with a chord keyboard or to
-      balance hand use to reduce carpal tunnel stress.  Made `hmouse-mod-mode'
-      a regular minor mode.  See "(hyperbole)Smart Key Modifiers" for more
-      details.
-
-  ROLO
-
-    - Fixed entry sorting to work with Emacs 25.
-
-
-===========================================================================
-*                                   V5.12
-===========================================================================
-
-  BUTTONS
-
-    - Prevented keyword matches as identifiers in Java, C++, C, Objective-C
-      and Python. 
-
-    - Prevented @ annotation matches when matching to Java identifiers/tags.
-
-    - In Info documentation browsing mode, added support for index nodes and
-      for fixed header line and text-property-based breadcrumb header lines
-      now used in Emacs, so the Action Key can now follow links associated
-      with all of these entities.
-
-    - In compilation buffers, e.g. {M-x make RET}, if an error line has a
-      relative pathname which Hyperbole cannot resolve, it will prompt
-      for the directory in which to resolve the path.
-
-  DOCUMENTATION
-
-    - Added printable hyperbole.pdf version of the Hyperbole Manual.
-
-    - DEMO file: Updated horizontal and vertical drag exercises to
-      correspond to current Hyperbole behavior.
-
-    - Added chapter on HyControl, window, frame and buffer control.
-
-    - In the Hyperbole Manual Glossary, added Buffer, Frame, HyControl
-      and Window definitions. 
-
-    - Added additional Q&A in an appendix.
-
-    - Clarified and fixed Smart Key modeline behavior documentation.
-
-    - Made example text larger for easier reading.
-
-    - Added Screen definition to the Glossary.
-
-  EMACS SUPPORT
-
-    - Hyperbole now includes the fastest, easiest-to-use Emacs window and frame
-      management system available; we call it HyControl.  If you use a lot of
-      Emacs windows or frames (typically, window system windows), this is for
-      you.  HyControl lets you interactively adjust the current layout of your
-      windows and frames down to the pixel-level if desired.  You keep
-      adjusting the location, size and display elements of your windows and
-      frames until they look as you like and then you simply quit HyControl and
-      go back to work.
-
-    - Expanded Hyperbole menu of buffers by major mode to allow for
-      `hui-menu-max-list-length' number of buffers, by default, 24.
-
-    - Made a right to left horizontal drag from near a right-side window 
divider
-      properly shrink the window width under Emacs 25.
-
-  KEYS
-
-    - The Hyperbole Screen submenu provides access to HyControl as well as the
-      key binding {C-c \}.
-
-    - Removed {C-c C-t} hmouse-toggle-bindings key binding.  This
-      should be used rarely, so force use of {M-x hmouse-toggle-bindings RET). 
-
-    - Updated "hmouse-mod.el" library for Emacs 25; it allows using the Smart
-      Mouse Keys as Control and Meta modifiers when desired.
-
-  KOUTLINER
-
-    - Improved recognition of Klinks, preventing false matches.
-
-    - Added missing {C-c C-i}/{C-c TAB} binding mentioned in the EXAMPLE.kotl
-      file; sets cell attributes.
-
-    - {C=t} Transpose characters - Added error checks at the beginning of cells
-      and end of lines for times when there are not 2 chars to transpose.
-
-  ROLO
-  
-    - Improved {M-s} interactive string searching for rolo match buffer 
strings.
-      Made {C-u M-s} to a regexp search for rolo match buffer strings.
-
-    - Documented the {l} hyrolo-locate command in the Hyperbole manual.
-
-    - The format of the rolo entry date added to new entries is now 
configurable
-      via the variable, `hyrolo-date-format'.  It uses the formatting
-      strings listed in the documentation of the function `format-time-string'.
-
-    - All rolo find and search commands are now case-insensitive.
-
-    - Using a numeric prefix argument with rolo find commands now
-      properly limits the number of matches to a maximum of that number.
-
-    - If the Big Brother Database (BBDB) is loaded before the rolo, its
-      `bbdb-file' is added to the list of files searched by the rolo.
-      You can manually added this file to `hyrolo-file-list' as well and
-      its format will automatically be handled by the rolo.
-
-===========================================================================
-*                                   V5.11
-===========================================================================
-
-  BUTTONS
-
-    - Improved support for remote pathname access (outside local
-      filesystems).
-
-  EMACS SUPPORT
-
-    - Much faster and better lookup of active Emacs Lisp identifiers
-      when the Action Key is pressed over one.  Face definitions are
-      also found now.  TAGS files are used only if the identifier has
-      not been loaded within the current Emacs session.
-
-  KOUTLINER
-
-    - Proper support for isearch temporary display of invisible text
-      when it contains a search match.  {C-s}, interactive search,
-      expands and contracts text dynamically to show any search
-      results, just as it does in the regular Emacs outline mode.  You
-      can toggle whether such searches include invisible/hidden text
-      (the default) or not.  Use the
-      Customize/Toggle-Isearch-Invisible-Text menubar item or the
-      Cust/Isearch-Invisible minibuffer menu item to toggle this
-      setting.
-
-  MAIL AND NEWS READERS
-
-    - New variable, `inhibit-hyperbole-messaging' with default value
-      of t inhibits Hyperbole's support for explicit buttons within
-      mail and news buffers.  When t, Hyperbole will not alter
-      messaging mode hooks nor overload functions from these packages,
-      preventing potential incompatibilities.
-
-      If you want to use Hyperbole buttons in mail and news buffers,
-      use the new Customize/Toggle-Messaging-Explicit-Buttons menubar
-      item or the minibuffer menu Cust/Msg-Toggle-Ebuts item.  These
-      not only change the variable value but also add or remove the
-      setup hooks as necessary.
-
-  ROLO
-  
-    - New {o} key binding for an overview of all Rolo matches at all
-      levels, one line per entry.
-
-    - {t} top-level cells command works in all cases now.
-
-    - {Shift-TAB} added as an additional key to move backwards one
-      Rolo match.
-
-    - Improved operation of {l} and {M-s C-s} commands that search for
-      occurrences of match strings and allow extending the search term.
-
-    - Support for looking up contacts in the Big Brother Database
-      (BBDB) file of email addresses, when that package is used.
-      The functions, hyrolo-grep-bbdb finds regular expression matches
-      and hyrolo-fgrep-bbdb finds string matches.  All regular Rolo
-      match buffer commands may then be applied. The {e} command for
-      editing an entry signals an error when applied to the BBDB file,
-      however.
-
-  SMART KEYS
-
-    - The Assist Key when pressed in the middle portion of a modeline
-      now pops up a very useful menu of display-oriented commands.
-      Jump to buffers categorized by major mode, to windows by buffer
-      name, or to frames by name.  Manage your windows and frames
-      quickly with this menu as well.  Another can't live without
-      feature.  This comes from the new file, hui-jmenu.el.
-
-    - Added Python etags support for jumping to Python definitions.
-      With the separate OO-Browser package, definition location is
-      much better than just with etags.
-      See "(hyperbole)Smart Key - Python Source Code" for help.
-
-    - The Hyperbole Manual Smart Key Reference appendix now has a
-      subsection for each context, allowing quick reference of a
-      particular Smart Key context.  Also, added documentation for
-      delimited thing selection, copying and moving.
-
-    - New function, hyperbole-popup-menu, to display the Hyperbole
-      menubar menu at the mouse point (or the left of the menubar when
-      running on a dumb terminal).  This is useful as a setting
-      of `action-key-default-function' if you want some undefined
-      Action Key context to popup this menu in order to use Hyperbole
-      commands.
-
-===========================================================================
-*                                   V5.10
-===========================================================================
-
-  EMACS SUPPORT
-
-    - Hyperbole now downloads, builds and installs as a regular
-      Emacs package (but from a special archive location while pre-testing).
-
-    - Automatic time-zone handling under MS Windows (already existed
-      for UNIX-like operating systems).  Plus support for 3 mouse
-      buttons under Windows.
-
-  IMPLICIT BUTTON TYPES
-
-    - Updated the extended find-file commands which handle http (www) and ftp
-      URLs to support the Tramp library included with newer versions of Emacs.
-      Use the menu item Hyperbole/Customization/Find-File-Accepts-URLs to
-      enable or to disable this.  See "(hyperbole)Using URLs with Find-File"
-      for details.
-
-  KOUTLINER
-
-    - Editing commands that normally delete/replace an active region
-      now do this in the Koutline.  If a region extends beyond one
-      cell, an error is triggered or if `kotl-mode:shrink-region-flag'
-      is set to t, the Koutliner automatically shrinks the region to
-      the first cell within the region and then continues the editing
-      operation.
-
-    - Updated yanking and other editing commands for improved
-      compatibility with Emacs 25.
-
-    - Internal improvements to many tree handling, filling and view
-      changing commands.
-
-    - New Shift-TAB key binding to demote trees (shift them up a
-      level), for compatibility with other outliners.
-
-  MENUS
-
-    - The new Find/Locate-Files menu item (minibuffer menu
-      Find/LocateFiles) prompts for a pattern and displays a list of
-      all matching pathnames found throughout the file system.  On Mac
-      OS X, this uses Spotlight (the mdfind command); on UNIX, it uses
-      the `locate' command.  Within the result *Locate* buffer, you
-      can then use the Find/Grep-Files menu item to find matching
-      lines within only these paths (files and directories).
-
-  SMART KEYS
-
-    - Action Key now ignores JavaScript keywords when searching for
-      identifiers to match.
-
-    - Commands that interactively prompt for a Koutline cell label now
-      offer completion and require a match to a visible outline cell.
-      This helps prevent operating on an invisible cell unintentionally.
-
-  THING SELECTION
-
-    - Selection of open/close matched tag pairs and jumping between
-      them now works in web-mode, which supports multiple web
-      languages within one file (previously only html-mode was
-      supported).  Also, can now select chained identifiers like:
-      parent.child.subchild in html and web modes with the {C-c
-      RETURN} thing selection key.
-
-    - Can now select comments when at a comment start; try it with
-      the Action Key.
-
-    - Can now select Lisp symbols with colons in them within help
-      buffers since they often appear there.
-
-  VARIABLES
-
-    - hyperb:init-hook renamed to hyperbole-init-hook, a more standard name.
-      See the GNU Hyperbole Manual for its usage.
-
-===========================================================================
-*                                   V5.09
-===========================================================================
-
-  FRAMES
-
-    - The Window-Configuration menu (minibuffer Win/ menu) now stores and
-      restores frame-specific window configurations, allowing each frame to be
-      dedicated to different types of work or groups of buffers.
-
-  INSTALLATION
-
-    - Installation is greatly simplified.  A single emacs initialization line
-      of the form:  
-
-        (require 'hyperbole (expand-file-name "hyperbole" "<HYPERBOLE-DIR>/")
-
-      loads and initializes Hyperbole.  Please change your site-wide or
-      personal initialization to this.  (No more setting of hyperb:dir and
-      load-path nor copying of hsite-ex.el to hsite.el is required; Hyperbole
-      does this for you).
-
-  KEYS
-
-    - A new Customize Menu option, Toggle-Smart-Key-Debug (minibuffer menu
-      Cust/Debug-Toggle, {C-h h c d}), displays a message in the minibuffer
-      every time the Action Key or Assist Key is pressed, showing the context
-      of the press and its associated action, allowing you to easily see
-      what is happening whenever you use a Smart Key.
-
-      These messages are all prefaced with "(HyDebug)" and are accumulated in
-      the *Messages* buffer for later viewing.
-
-    - Smart Keys work in any completion buffer now, e.g. the ido.el completion
-      buffer.
-
-    - Horizontal and vertical mouse drags within a single window, that do not
-      begin on a thing delimiter, are now simpler and more consistent.  An
-      Action Key drag splits the window either below (horizontal drag) or
-      side-by-side (vertical drag).  An Assist Key drag deletes the window.
-
-    - Hyperbole no longer uses the right mouse button, so it is free for popup 
menus.
-      The Assist Mouse Key is always on the Shift-Right mouse button as well as
-      on a C-u prefix to the Action Mouse Key.
-
-    - A new setting, `hmouse-middle-flag', when set to t (true) before 
Hyperbole
-      is loaded adds the middle mouse key as an Action Key.  InfoDock does this
-      by default.
-
-    - ibuffer-mode, the dired-like menu listing for buffers, is now supported
-      by the Smart Keys; it behaves similarly to that of Buffer-menu-mode.
-
-    - Xref item listing mode is now supported by the Smart Keys; The Action
-      Key displays an xref file line or just a file containing an xref.
-      The Assist Key displays the same but leaves point in the listing buffer.
-      Xref is a built-in Emacs package that displays definitions and
-      cross-references of identifier strings.  It is similar to etags, but
-      more general. 
-
-  KOUTLINER
-
-    - Now compatible with the latest version of outline.el (using invisible 
overlays).
-
-    - All menus for the Hyperbole auto-numbered outliner, called the Koutliner,
-      now begin with 'K'.  Some used to start with 'O'.  To edit the example
-      Koutline, use {C-h h k e}.
-
-    - {C-c C-a}  - Show-all, expand all cells nihe current view.
-      {C-c C-o}  - Overview, show only first line of outline cells.
-      {C-c C-t}  - Top-level, hide all cells below level 1 and show
-                   only the first line of each level 1 cell.
-
-      By default, these commands no longer affect the display of blank lines
-      between cells.  But if given a prefix argument, they toggle blank
-      lines display for quick view changes.
-
-    - Values of `user-mail-address' or `message-user-fqdn' are now
-      used to set the creator and modifier names in Koutline cells.
-
-  MAIL LISTS
-
-    - The menu item that composes mail to the bug-hyperbole mail list now
-      includes any (HyDebug) messages output when the Hyperbole configuration
-      option, hkey-debug is enabled (via the Customize Menu or via
-      {C-h h c d}).
-
-
-===========================================================================
-*                                   V5.08
-===========================================================================
-
-  DOCUMENTATION
-
-    - Added web version of the Hyperbole Manual.
-
-  HYPERLINKS
-
-    - Action Key presses on Texinfo menu items and @node item references now
-      display the associated Texinfo node.  @code and @var references to Emacs
-      Lisp identifiers now show the documentation for the identifiers.  As
-      before, cross-references and file includes show the referenced items;
-      keyboard key sequences invoke their associated bindings.
-
-    - Action Key press on an Emacs push button activates the button.  An Assist
-      Key press shows help for the button.
-
-  KEYS
-
-    - Delimited things, including lists, comments, strings, arrays/vectors,
-      sets, functions and markup pair tags (e.g. <div> </div>), may now be
-      selected, copied or moved with the Action and Assist mouse and keyboard
-      keys whenever point is on the first character of the starting or ending
-      delimiter.  For strings and comments, point must be on the first line.
-
-    - New {C-c .} binding that jumps between the start and end delimiters of
-      delimited things.  Try it on matching markup tag pairs in HTML and SGML
-      modes.  If point is not immediately before or after a delimiter, this
-      generally does nothing.
-
-    - New {C-c RET} binding selects bigger and bigger syntactical units within
-      a buffer with each successive invocation.  Double clicks of the left
-      mouse button do the same thing.  Try it, you'll like it.
-
-===========================================================================
-*                                   V5.07
-===========================================================================
-
-  EMACS VERSIONS
-
-    - Support for the latest pre-releases of Emacs 25 and new versions of
-      XEmacs.
-
-  HYPERLINKS
-
-    - URL handling updated along with customization menus to support most
-      popular web browsers in use.
-
-    - Action Key on a mailto: URI starts composing mail to that address.
-
-    - When testing file formats/suffixes for an external viewer in
-      which to display the file, as a fallback, a MIME system mailcap
-      file is used to find additional possible viewers.  See
-      "http://www.wikiwand.com/en/Mailcap"; for information on mailcap files.
-
-    - Jump to JavaScript identifier definitions.
-
-    - History, {C-h h h}, now restores full multi-window and multi-frame 
display
-      configurations (within a single Emacs session), rather than just 
returning
-      to a prior location in a buffer.
-
-    - Type {q} in a Hyperbole Help buffer hide that buffer and return to your 
prior
-      location.
-
-  KEYS
-
-    - By default, Hyperbole now removes any mode-specific, local key
-      bindings that conflict with the global Smart Key bindings
-      (typically {Meta-Return}). Use the Customize/Toggle-Override-Local-Keys
-      to disable (or re-enable) this feature.
-
-  KOUTLINER
-
-    - When running under InfoDock, its Go and Options menus now appear within
-      the Koutliner menu.
-
-    - With a prefix argument, Koutlines are exported to HTML with soft newlines
-      rather than hard newlines, so text will flow based on browser window 
size.
-      This option will remove line-by-line formatting within a cell, however.
-
-  MENUS
-
-    - New Find menu which can reduce a buffer to just matching or non-matching
-      lines, run the 'grep' or 'fgrep' utilities on a file directory tree, or
-      list matching lines in the current buffer or across all buffers with
-      attached files.
-
-    - Renamed Customization menu to Customize.
-
-    - New Customize/Change-Key-Bindings menu lets you rebind any Hyperbole
-      keys for your current emacs session.
-
 -- The End --
diff --git a/HY-ANNOUNCE-SHORT b/HY-ANNOUNCE-SHORT
index bc28d59..1142cf8 100644
--- a/HY-ANNOUNCE-SHORT
+++ b/HY-ANNOUNCE-SHORT
@@ -1,5 +1,5 @@
 To: address@hidden, address@hidden, address@hidden
-ANNOUNCE: GNU Hyperbole 6.0.2 for Emacs 24.4 or newer is released
+ANNOUNCE: GNU Hyperbole 7.0.0 is released for Emacs 24.4 and above
 
 For information on what GNU Hyperbole is, screenshots, download and
 installation instructions, see the GNU Hyperbole home page:
@@ -16,101 +16,9 @@ Hyperbole includes an interactive demo to introduce you to 
its features and a
 detailed reference manual.
 
 ===========================================================================
-*                 What's New in GNU Hyperbole V6.0.2f
+*                 What's New in GNU Hyperbole V7.0.0
 ===========================================================================
 
-See "Changes" file.
-
-===========================================================================
-*                 What's New in GNU Hyperbole V6.0.2
-===========================================================================
-
-  BUTTONS
-
-    - pathname Implicit Button Type: generalized to handle hash-style links to
-      HTML files, to Github Markdown # sections and to Emacs outline *
-      sections.  So an Action Key press on any of the following links displays
-      the link referent:
-            "man/hyperbole.html#Questions-and-Answers"
-           "README.md#why-was-hyperbole-developed"
-           "DEMO#HTML Markdown and Emacs Outline Hash Links"
-      Even links split across 2 lines like this now work: "DEMO#Social Media
-      Hashtags and Usernames", as long as point is on the first line.
-
-      Within HTML and Markdown files, in-file hash links without any file name
-      prefix work as well.
-
-      HTML hash-links are case-sensitive; other hash-links are not.  Hash links
-      typically use dashes in place of the spaces that referents may contain,
-      but if the link is enclosed in quotes, Hyperbole allows spaces to be used
-      as well.  In fact, it is best practice to always enclose hash-style links
-      in quotes so Hyperbole can distinguish them from other similar looking
-      constructs, such as social media hashtags (see "(hyperbole)Social 
Media").
-
-      Pathnames surrounded by literal non-ASCII quote marks now work as well.
-      For example, ‘http://ftp.gnu.org/gnu/hyperbole/’.
-
-    - New Implicit Button Type, markdown-internal-link, displays any in-file
-      Markdown link referent, aside from pathnames and urls.  Together with
-      other types, all Markdown links can now be followed by the Action Key.
-
-    - social-reference Implicit Button Type: Disabled this type within quoted
-      strings (all modes) and within parentheses (markdown-mode), so in-file
-      hash link references are not matched as social hash tags.  Made the list
-      of modes a variable, hibtypes-social-inhibit-modes.
-
-    - New link-to-web-search Action Type: Allows global and explicit buttons
-      to link to specific web term searches from `hyperbole-web-search-alist'.
-
-    - org-mode Implicit Button Type: Improved to invoke org-meta-return when
-      not on an Org link or outline heading.
-
-  DOCUMENTATION
-
-    - Added pointer to HyControl video and {C-c \} binding which invokes
-      HyControl window control.
-
-    - README File: New Org-mode user testimonial.
-
-    - DEMO File: Added description and exercise using the new Find/Web menu.
-
-    - Added README.md introduction with images combining README, INSTALL
-      and HY-ABOUT information.  This is automatically transformed to
-      README.md.html.
-
-    - Full set of hand-written changes are now in the file "Changes".  The
-      former name, ChangeLog, is now auto-generated from the version controlled
-      'git log' but not as complete.
-
-  KEYS
-
-    - New variables, action-key-eol-function and assist-key-eol-function, used
-      to control what the Action and Assist Keys do at the end of a line.
-      Default behaviors remain as before but now one can set these to do
-      something other than scrolling, if desired.  See "(hyperbole)Smart Key -
-      Smart Scrolling"
-
-    - When in HyControl, pressing {ESC} now quits in addition to {q}.
-
-  MENUS
-
-    - New submenu, Find/Web, for quick access to major web search engines.
-      The Find/Web menu looks like this:
-        Web> Amazon Bing Dictionary Elisp Facebook Google Hub(git) Images Maps 
RFCs StackOverflow Twitter Wikipedia Youtube
-
-      Hyperbole binds the key {C-c /} for quick access to this menu, if it is
-      not already bound prior to Hyperbole's initialization. The
-      Cust/Web-Search menu, {C-h h c w}, sets the option,
-      hyperbole-web-search-browser-function, which determines whether web
-      search results are displayed within Emacs or with an external web
-      browser.  A short video introduction to the Find/Web menu may be found at
-      https://youtu.be/8lMlJed0-OM.
-
-      Advanced users can change the search engines listed in the Find/Web menu
-      with M-x customize-variable RET hyperbole-web-search-alist RET.  Changes
-      are automatically reflected in the Hyperbole menus once applied.
-      Remember each search engine name must begin with a unique letter and each
-      URL must have a %s format field indicating where to place the web search
-      term when a search is performed.  See "(hyperbole)Web Search Engines".
+See "https://git.savannah.gnu.org/cgit/hyperbole.git/tree/HY-NEWS";.
 
 -- The End --
diff --git a/HY-NEWS b/HY-NEWS
index 0d0e2ff..6ea63ad 100644
--- a/HY-NEWS
+++ b/HY-NEWS
@@ -2,10 +2,26 @@
                                 by Bob Weiner
 
 ===========================================================================
-*                                   V6.0.2f
+*                                   V7.0.0
 ===========================================================================
 
-          (See "Changes" for more complete details of changes.)
+        (See the "Changes" file for even more details of changes).
+
+  BUTTONS
+
+    - a
+
+  DOCUMENTATION
+
+    - 
+
+  KEYS
+
+    - 
+
+  MENUS
+
+    -
 
 ===========================================================================
 *                                  V6.0.2
diff --git a/HY-WHY.kotl b/HY-WHY.kotl
index e31735e..8b0db66 100644
--- a/HY-WHY.kotl
+++ b/HY-WHY.kotl
@@ -41,10 +41,12 @@
 
      7b. With one command, rapidly create a grid of tiled windows
          displaying either selected buffers, buffers with a specific
-         major mode or the most recently used buffer list, e.g. {63 @}
-         creates 6 rows, each with 3 columns of windows (18 total) and
-         displays the first 18 buffers in them when in a HyControl
-         mode.
+         major mode or the most recently used buffer list, e.g.
+         {63 C-c @} creates 6 rows, each with 3 columns of windows (18
+         total) and displays the first 18 buffers in them when in a
+         HyControl mode.  You can mark buffers, files and directories
+         in the Buffer menu, iBuffer and Dired modes and then use the
+         same above command to display them in a grid of windows.
          
      7c. Use a quick mouse key press to scroll any window line to the
          top or bottom of a window, to see exactly what you want on
@@ -79,7 +81,7 @@ alpha ;; label-type
 
 ;; depth-first kcell attributes
 [[0
-  (creator "address@hidden" create-time "20171024:13:39:20" id-counter 22 file 
"/Users/bk/Dropbox/emacs/hyperbole/HY-WHY.kotl")]
+  (creator "address@hidden" create-time "20171027:13:29:32" id-counter 22 file 
"/Users/bk/Dropbox/emacs/hyperbole/HY-WHY.kotl")]
  [1
   (creator "address@hidden" create-time "20160524:15:04:17" no-fill t)]
  [17
@@ -106,8 +108,4 @@ alpha ;; label-type
   (creator "address@hidden" create-time "20160526:02:56:59" no-fill t)]
  [10
   (creator "address@hidden" create-time "20160530:15:10:18" no-fill t)]
- [11
-  (creator "address@hidden" create-time "20160530:15:10:41" no-fill t)]
- [12
-  (creator "address@hidden" create-time "20160530:15:14:46" no-fill t)]
- nil nil nil nil nil nil nil]
+ nil nil nil nil nil nil nil nil nil]
diff --git a/INSTALL b/INSTALL
index 47c2e9e..d71cbe1 100644
--- a/INSTALL
+++ b/INSTALL
@@ -88,7 +88,7 @@ You can invoke Hyperbole commands in one of three ways:
 Use {C-h h d d} for an interactive demonstration of standard Hyperbole
 button capabilities.
 
-{C-h h k e} offers a interactive demonstration of the Koutliner,
+{C-h h k e} offers an interactive demonstration of the Koutliner,
 Hyperbole's multi-level autonumbered hypertextual outliner.
 
 To try out HyControl, Hyperbole's interactive frame and window control
diff --git a/Makefile b/Makefile
index bbd9de4..78596b7 100644
--- a/Makefile
+++ b/Makefile
@@ -82,7 +82,7 @@ TEXI2INFO = makeinfo --no-split
 # Command used to build the .html version of the user manual.
 # TEXI2HTML = id-texi2html -html_only -number -split_chapter # 
InfoDock-specific command
 # TEXI2HTML = makeinfo --html --split=chapter # Chapter splitting doesn't seem 
to work in 6.0
-TEXI2HTML = makeinfo --html --no-split
+TEXI2HTML = makeinfo --html --no-split --css-ref="hyperbole.css"
 
 # Command used to build the .pdf version of the user manual.
 TEXI2PDF = makeinfo --pdf --no-split
@@ -177,7 +177,7 @@ HYPERBOLE_FILES = dir hyperbole-pkg.el info html $(EL_SRC) 
$(EL_COMPILE) $(EL_KO
        $(ELC_COMPILE) Changes COPYING Makefile HY-ABOUT HY-ANNOUNCE HY-NEWS \
        HY-WHY.kotl INSTALL DEMO MANIFEST README _hypb .hypb file-newer 
smart-clib-sym \
        topwin.py hyperbole-banner.png $(man_dir)/hkey-help.txt \
-       $(man_dir)/hyperbole.texi $(man_dir)/version.texi
+       $(man_dir)/hyperbole.texi $(man_dir)/hyperbole.css 
$(man_dir)/version.texi
 
 EL_TAGS = $(EL_SRC) $(EL_COMPILE) $(EL_KOTL)
 
@@ -213,9 +213,9 @@ $(info_dir)/hyperbole.info: $(man_dir)/hyperbole.info
          $(INSTALL) im/*.{png,eps} $(info_dir)/im
 
 install-html: $(html_dir)/hyperbole.html
-$(html_dir)/hyperbole.html: $(man_dir)/hyperbole.html
+$(html_dir)/hyperbole.html: $(man_dir)/hyperbole.html $(man_dir)/hyperbole.css
        $(MKDIR) $(html_dir)/im; \
-         cd $(man_dir); $(INSTALL) hyperbole.html* $(html_dir); \
+         cd $(man_dir); $(INSTALL) hyperbole.html* hyperbole.css $(html_dir); \
          $(INSTALL) im/*.{png,eps} $(html_dir)/im
 
 $(data_dir)/hkey-help.txt: $(man_dir)/hkey-help.txt
@@ -261,7 +261,7 @@ $(man_dir)/hyperbole.info: $(man_dir)/hyperbole.texi 
$(man_dir)/version.texi $(m
        cd $(man_dir) && $(TEXI2INFO) hyperbole.texi
 
 html: $(man_dir)/hyperbole.html
-$(man_dir)/hyperbole.html: $(man_dir)/hyperbole.texi $(man_dir)/version.texi 
$(man_dir)/hkey-help.txt
+$(man_dir)/hyperbole.html: $(man_dir)/hyperbole.texi $(man_dir)/version.texi 
$(man_dir)/hkey-help.txt $(man_dir)/hyperbole.css
        cd ${man_dir} && $(TEXI2HTML) hyperbole.texi
 
 pdf: $(man_dir)/hyperbole.pdf
diff --git a/README b/README
index cfd23b6..56f1571 100644
--- a/README
+++ b/README
@@ -87,7 +87,7 @@ installing it.
 screenshots of Hyperbole in action.
 
 HyControl is Hyperbole's frame and window manager; a long video
-demonstrating most of HyControl's features is available at
+demonstrating many of HyControl's features is available at
 https://youtu.be/M3-aMh1ccJk.
 
 See the "HY-NEWS" file for a summary of new features in this release.
diff --git a/README.md b/README.md
index 00d3880..bac50f6 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
 
 - [Summary](#summary)
 - [Mailing Lists](#mailing-lists)
-- [Ftp and Git Source Code-only Downloads](#ftp-and-git)
+- [Ftp and Git Repository Downloads](#ftp-and-git)
 - [Installation](#installation)
 - [Invocation](#invocation)
 - [Hyperbole Components](#hyperbole-components)
@@ -109,10 +109,14 @@ through the GNU Emacs package manager.
        [info and subscription]: 
http://lists.gnu.org/mailman/listinfo/bug-hyperbole
        [web archive]: http://lists.gnu.org/archive/html/bug-hyperbole/
 
-## Ftp and Git Source Code-only Downloads
+## Ftp and Git Repository Downloads
 
-To explore the released Hyperbole source code rather than installing it for 
use,
-download a tar.gz source archive from either:</p>
+To inspect the Hyperbole source code online rather than installing it for
+use (which will also give you the source code), open a web page to:
+
+   - https://git.savannah.gnu.org/cgit/hyperbole.git/tree/
+
+Alternatively, you may download a tar.gz source archive from either:
 
    - ftp://ftp.gnu.org/gnu/hyperbole/
 
@@ -121,7 +125,7 @@ download a tar.gz source archive from either:</p>
 which will find the closest mirror of the GNU ftp site and show it to you.
 
 If you want to follow along with Hyperbole development and maintain a
-copy/clone of the current version-controlled git tree, use the
+copy/clone of the current version-controlled git tree, use a
 [command listed here](https://savannah.gnu.org/git/?group=hyperbole)
 to clone the Hyperbole project tree.
 
@@ -186,7 +190,7 @@ button capabilities.
 
 ![Hyperbole screenshot of the DEMO](man/im/demo.png)
 
-{C-h h k e} offers a interactive demonstration of the Koutliner,
+{C-h h k e} offers an interactive demonstration of the Koutliner,
 Hyperbole's multi-level autonumbered hypertextual outliner.
 
 ![Hyperbole screenshot of the Koutliner](man/im/koutliner.png)
@@ -196,7 +200,7 @@ system, use {C-h h s w} for window control or {C-h h s f} 
for frame
 control.  {t} switches between window and frame control once in one of
 them.  Hyperbole also binds {C-c \} for quick access to HyControl's
 window control menu if it was not already bound prior to Hyperbole's
-initialization.  A long video demonstrating most of HyControl's
+initialization.  A long video demonstrating many of HyControl's
 features is available at https://youtu.be/M3-aMh1ccJk.
 
 The above are the best interactive ways to learn about Hyperbole.
diff --git a/README.md.html b/README.md.html
index 8855f60..84a5df2 100644
--- a/README.md.html
+++ b/README.md.html
@@ -5,7 +5,7 @@
 <ul>
 <li><a href="#summary">Summary</a></li>
 <li><a href="#mailing-lists">Mailing Lists</a></li>
-<li><a href="#ftp-and-git">Ftp and Git Source Code-only Downloads</a></li>
+<li><a href="#ftp-and-git">Ftp and Git Repository Downloads</a></li>
 <li><a href="#installation">Installation</a></li>
 <li><a href="#invocation">Invocation</a></li>
 <li><a href="#hyperbole-components">Hyperbole Components</a></li>
@@ -106,9 +106,13 @@ through the GNU Emacs package manager.</p>
 </li>
 </ul>
 <h2>
-<a id="user-content-ftp-and-git-source-code-only-downloads" class="anchor" 
href="#ftp-and-git-source-code-only-downloads" aria-hidden="true"><span 
aria-hidden="true" class="octicon octicon-link"></span></a>Ftp and Git Source 
Code-only Downloads</h2>
-<p>To explore the released Hyperbole source code rather than installing it for 
use,
-download a tar.gz source archive from either:</p>
+<a id="user-content-ftp-and-git-repository-downloads" class="anchor" 
href="#ftp-and-git-repository-downloads" aria-hidden="true"><span 
aria-hidden="true" class="octicon octicon-link"></span></a>Ftp and Git 
Repository Downloads</h2>
+<p>To inspect the Hyperbole source code online rather than installing it for
+use (which will also give you the source code), open a web page to:</p>
+<ul>
+<li><a 
href="https://git.savannah.gnu.org/cgit/hyperbole.git/tree/";>https://git.savannah.gnu.org/cgit/hyperbole.git/tree/</a></li>
+</ul>
+<p>Alternatively, you may download a tar.gz source archive from either:</p>
 <ul>
 <li>
 <p><a 
href="ftp://ftp.gnu.org/gnu/hyperbole/";>ftp://ftp.gnu.org/gnu/hyperbole/</a></p>
@@ -119,7 +123,7 @@ download a tar.gz source archive from either:</p>
 </ul>
 <p>which will find the closest mirror of the GNU ftp site and show it to 
you.</p>
 <p>If you want to follow along with Hyperbole development and maintain a
-copy/clone of the current version-controlled git tree, use the
+copy/clone of the current version-controlled git tree, use a
 <a href="https://savannah.gnu.org/git/?group=hyperbole";>command listed here</a>
 to clone the Hyperbole project tree.</p>
 <h2>
@@ -169,7 +173,7 @@ a pathname to display the associated file or directory.</p>
 <p>Use {C-h h d d} for an interactive demonstration of standard Hyperbole
 button capabilities.</p>
 <p><a href="man/im/demo.png" target="_blank"><img src="man/im/demo.png" 
alt="Hyperbole screenshot of the DEMO" style="max-width:100%;"></a></p>
-<p>{C-h h k e} offers a interactive demonstration of the Koutliner,
+<p>{C-h h k e} offers an interactive demonstration of the Koutliner,
 Hyperbole's multi-level autonumbered hypertextual outliner.</p>
 <p><a href="man/im/koutliner.png" target="_blank"><img 
src="man/im/koutliner.png" alt="Hyperbole screenshot of the Koutliner" 
style="max-width:100%;"></a></p>
 <p>To try out HyControl, Hyperbole's interactive frame and window control
@@ -177,7 +181,7 @@ system, use {C-h h s w} for window control or {C-h h s f} 
for frame
 control.  {t} switches between window and frame control once in one of
 them.  Hyperbole also binds {C-c } for quick access to HyControl's
 window control menu if it was not already bound prior to Hyperbole's
-initialization.  A long video demonstrating most of HyControl's
+initialization.  A long video demonstrating many of HyControl's
 features is available at <a 
href="https://youtu.be/M3-aMh1ccJk";>https://youtu.be/M3-aMh1ccJk</a>.</p>
 <p>The above are the best interactive ways to learn about Hyperbole.
 Hyperbole also includes the Hyperbole Manual, a full reference manual,
diff --git a/hmouse-drv.el b/hmouse-drv.el
index 262c6ca..5433f27 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -61,10 +61,15 @@ This is set to nil when the depress is on an inactive 
minibuffer.")
 (defvar assist-key-release-window nil
   "The last window in which the Assist Key was released or nil.")
 
+;; These store mouse positions and are used only when a mouse is available.
 (defvar action-key-depress-position nil
-  "The last screen position at which the Action Key was depressed or nil.")
+  "The last mouse screen position at which the Action Key was depressed or 
nil.")
 (defvar assist-key-depress-position nil
-  "The last screen position at which the Assist Key was depressed or nil.")
+  "The last mouse screen position at which the Assist Key was depressed or 
nil.")
+(defvar action-key-release-position nil
+  "The last mouse screen position at which the Action Key was released or 
nil.")
+(defvar assist-key-release-position nil
+  "The last mouse screen position at which the Assist Key was released or 
nil.")
 
 (defvar action-key-depress-prev-point nil
   "Marker at point prior to last Action Key depress.
@@ -184,22 +189,23 @@ Any ARGS will be passed to `hmouse-function'."
   (interactive)
   ;; Make this a no-op if some local mouse key binding overrode the global
   ;; action-key-depress command invocation.
-  (if action-key-depressed-flag
-      (let ((hkey-alist hmouse-alist))
-       (setq action-key-depressed-flag nil)
-       (cond (action-key-cancelled
-               (setq action-key-cancelled nil
-                     assist-key-depressed-flag nil))
-             (assist-key-depressed-flag
-               (hmouse-function nil nil args))
-             ((hkey-mouse-help nil args))
-             (t
-              (run-hooks 'action-key-release-hook)
-              (hmouse-function #'action-key-internal nil args)))
-       ;; Need to clear these variables so that mouse pasting does
-       ;; not occur repeatedly from a single region selection.
-       (setq hkey-region nil
-             hkey-value nil))))
+  (when action-key-depressed-flag
+    (setq action-key-release-position (mouse-absolute-pixel-position))
+    (let ((hkey-alist hmouse-alist))
+      (setq action-key-depressed-flag nil)
+      (cond (action-key-cancelled
+            (setq action-key-cancelled nil
+                  assist-key-depressed-flag nil))
+           (assist-key-depressed-flag
+            (hmouse-function nil nil args))
+           ((hkey-mouse-help nil args))
+           (t
+            (run-hooks 'action-key-release-hook)
+            (hmouse-function #'action-key-internal nil args)))
+      ;; Need to clear these variables so that mouse pasting does
+      ;; not occur repeatedly from a single region selection.
+      (setq hkey-region nil
+           hkey-value nil))))
 
 (defun assist-mouse-key (&rest args)
   "Set point to the current mouse cursor position and execute `assist-key'.
@@ -207,22 +213,23 @@ Any ARGS will be passed to `hmouse-function'."
   (interactive)
   ;; Make this a no-op if some local mouse key binding overrode the global
   ;; assist-key-depress command invocation.
-  (if assist-key-depressed-flag
-      (let ((hkey-alist hmouse-alist))
-       (setq assist-key-depressed-flag nil)
-       (cond (assist-key-cancelled
-               (setq assist-key-cancelled nil
-                     action-key-depressed-flag nil))
-             (action-key-depressed-flag
-               (hmouse-function nil t args))
-             ((hkey-mouse-help t args))
-             (t
-              (run-hooks 'assist-key-release-hook)
-              (hmouse-function #'assist-key-internal t args)))
-       ;; Need to clear this variable so that mouse pasting does
-       ;; not occur repeatedly from a single region selection.
-       (setq hkey-region nil
-             hkey-value nil))))
+  (when assist-key-depressed-flag
+    (setq assist-key-release-position (mouse-absolute-pixel-position))
+    (let ((hkey-alist hmouse-alist))
+      (setq assist-key-depressed-flag nil)
+      (cond (assist-key-cancelled
+            (setq assist-key-cancelled nil
+                  action-key-depressed-flag nil))
+           (action-key-depressed-flag
+            (hmouse-function nil t args))
+           ((hkey-mouse-help t args))
+           (t
+            (run-hooks 'assist-key-release-hook)
+            (hmouse-function #'assist-key-internal t args)))
+      ;; Need to clear this variable so that mouse pasting does
+      ;; not occur repeatedly from a single region selection.
+      (setq hkey-region nil
+           hkey-value nil))))
 
 ;;; Smart Key Commands
 (defun action-key ()
@@ -235,8 +242,10 @@ a valid function."
   ;; Clear all these variables so there can be no confusion between
   ;; mouse presses and keyboard presses.
   (setq action-key-depress-prev-point nil
+       action-key-depress-position nil
        action-key-depress-args nil
        action-key-depress-window nil
+       action-key-release-position nil
        action-key-release-args nil
        action-key-release-window nil
        action-key-release-prev-point nil)
@@ -245,9 +254,9 @@ a valid function."
 
 (defun action-key-internal ()
   (setq action-key-depressed-flag nil)
-  (if action-key-cancelled
-      (setq action-key-cancelled nil
-           assist-key-depressed-flag nil))
+  (when action-key-cancelled
+    (setq action-key-cancelled nil
+         assist-key-depressed-flag nil))
   (or (hkey-execute nil)
       (when (fboundp action-key-default-function)
        (funcall action-key-default-function)
@@ -263,8 +272,10 @@ bound to a valid function."
   ;; Clear all these variables so there can be no confusion between
   ;; mouse presses and keyboard presses.
   (setq assist-key-depress-prev-point nil
+       assist-key-depress-position nil
        assist-key-depress-args nil
        assist-key-depress-window nil
+       assist-key-release-position nil
        assist-key-release-args nil
        assist-key-release-window nil
        assist-key-release-prev-point nil)
@@ -273,9 +284,9 @@ bound to a valid function."
 
 (defun assist-key-internal ()
   (setq assist-key-depressed-flag nil)
-  (if assist-key-cancelled
-      (setq assist-key-cancelled nil
-           action-key-depressed-flag nil))
+  (when assist-key-cancelled
+    (setq assist-key-cancelled nil
+         action-key-depressed-flag nil))
   (or (hkey-execute t)
       (when (fboundp assist-key-default-function)
        (funcall assist-key-default-function)
diff --git a/hui-window.el b/hui-window.el
index db72dcd..fe9341f 100644
--- a/hui-window.el
+++ b/hui-window.el
@@ -30,6 +30,14 @@
 ;; Other Modeline drag to          Replace dest. buffer with   Swap window 
buffers
 ;;   another window                  source buffer
 ;;
+;; Drag to a Modeline from:
+;;   buffer/file menu item         Display buffer/file in      Swap window 
buffers
+;;                                   new window by release
+;;   buffer/file menu 1st line     Move buffer/file menu to    Swap window 
buffers
+;;                                   new window by release
+;;   anywhere else                 Display buffer in           Swap window 
buffers
+;;                                   new window by release
+;;
 ;; Drag between windows from:
 ;;   buffer/file menu item         Display buffer/file in      Swap window 
buffers
 ;;                                   window of button release
@@ -186,6 +194,10 @@ drag release window.")
                ;;   ((and (hmouse-modeline-depress) 
(hmouse-drag-between-frames)) .
                ;;    ((hmouse-clone-window-to-frame) . 
(hmouse-move-window-to-frame)))
                ;;
+               ;; Drag with release on a Modeline
+               ((and (hmouse-modeline-release) (not (hmouse-modeline-click))) .
+                ((or (hmouse-drag-item-to-display t) (hmouse-buffer-to-window 
t)) .
+                 (hmouse-swap-buffers)))
                ;; Non-vertical Modeline drag between windows
                ((and (hmouse-modeline-depress) (hmouse-drag-between-windows)
                      (not (hmouse-drag-vertically-within-emacs))) .
@@ -456,19 +468,28 @@ If free variable `assist-flag' is non-nil, uses Assist 
Key."
            assist-key-release-window
          action-key-release-window)))
 
-(defun hmouse-drag-item-to-display ()
-  "Depress on a buffer name in Buffer-menu/ibuffer mode or on a file/directory 
in dired mode and release in another window in which to display the item.
-If depress is on an item and release is outside Emacs, the item is displayed 
in a new frame.
-Return t unless source buffer is not one of these modes or point is not on an 
item, then nil.
+(defun hmouse-drag-item-to-display (&optional new-window)
+  "Depress on a buffer name in Buffer-menu/ibuffer mode or on a file/directory 
in dired mode and release where the item is to be displayed.
+
+If depress is on an item and release is outside of Emacs, the
+item is displayed in a new frame with a single window.  If the
+release is inside Emacs and the optional NEW-WINDOW is non-nil,
+the release window is sensibly split before the buffer is
+displayed.  Otherwise, the buffer is simply displayed in the
+release window.
+
+Return t unless source buffer is not one of these modes or point is
+not on an item, then nil.
 
-See `hmouse-drag-item-mode-forms' for how to allow for draggable items in 
other modes."
+See `hmouse-drag-item-mode-forms' for how to allow for draggable
+items in other modes."
   (let* ((buf (and action-key-depress-window (window-buffer 
action-key-depress-window)))
         (mode (and buf (cdr (assq 'major-mode (buffer-local-variables buf))))))
     (when (and buf (with-current-buffer buf
                     ;; Point must be on an item, not after one
                     (not (looking-at "\\s-*$")))
               (memq mode (mapcar #'car hmouse-drag-item-mode-forms)))
-      (hmouse-item-to-window)
+      (hmouse-item-to-window new-window)
       t)))
 
 (defun hmouse-drag-diagonally ()
@@ -691,8 +712,16 @@ Ignores minibuffer window."
 ;;; Private functions
 ;;; ************************************************************************
 
-(defun hmouse-buffer-to-window ()
-  "Invoked via drag, replace the buffer in the Action Key release window with 
the buffer from the Action Key depress window."
+(defun hmouse-split-window ()
+  "Split selected window sensibly."
+  (split-window-sensibly))
+
+(defun hmouse-buffer-to-window (&optional new-window)
+  "Invoked via drag, replace the buffer in the Action Key release window with 
the buffer from the Action Key depress window.
+With optional boolean NEW-WINDOW non-nil, sensibly split the release window 
before replacing the buffer."
+  (when new-window
+    (with-selected-window action-key-release-window
+      (hmouse-split-window)))
   (set-window-buffer action-key-release-window (window-buffer 
action-key-depress-window)))
 
 (defun hmouse-drag-not-allowed ()
@@ -763,13 +792,18 @@ Ignores minibuffer window."
     (recenter)
     (pulse-momentary-highlight-one-line (point) 'next-error)))
 
-(defun hmouse-item-to-window ()
-  "Displays buffer or file menu item at Action Key depress at the location of 
Action Key release.
-Release location may be an Emacs window or outside of Emacs in which case a 
new frame with a
-single window is created to display the item.
+(defun hmouse-item-to-window (&optional new-window)
+  "Display buffer or file menu item of Action Key depress at the location of 
Action Key release.
+
+Release location may be an Emacs window or outside of Emacs, in
+which case a new frame with a single window is created to display
+the item.  If the release is inside Emacs and the optional
+NEW-WINDOW is non-nil, the release window is sensibly split
+before the buffer is displayed.  Otherwise, the buffer is simply
+displayed in the release window.
 
-If depress is on the top fixed header line or to the right of any item, this 
moves the menu
-buffer itself to the release location."
+If depress is on the top fixed header line or to the right of any
+item, this moves the menu buffer itself to the release location."
   (let* ((w1 action-key-depress-window)
         ;; Release may be outside of an Emacs window in which case,
         ;; create a new frame and window.
@@ -789,7 +823,9 @@ buffer itself to the release location."
                   ;; Otherwise, move the current menu item to the release 
window.
                   (setq w1-ref (eval (cadr (assq major-mode 
hmouse-drag-item-mode-forms))))
                   (when w1-ref (hmouse-pulse-line) (sit-for 0.05))))
-       (select-window w2)))
+       (select-window w2)
+       (when (and new-window action-key-release-window)
+         (hmouse-split-window))))
     (unwind-protect
        (cond ((not w1-ref)
               (if (not (window-live-p w1))
@@ -872,14 +908,14 @@ If the Assist Key is:
          (t (hmouse-modeline-resize-window)))))
 
 (defun hmouse-modeline-click ()
-  "Returns non-nil if last Smart Key depress and release was at a single point 
in a modeline."
-  ;; Assume depress was in modeline and that any drag has already been handled.
-  ;; So just check that release was in modeline.
-  (hmouse-modeline-release))
+  "Returns non-nil if last Smart Key depress and release were at a single 
point in a modeline."
+  (and (hmouse-modeline-release) (hmouse-modeline-depress)
+       (equal (if assist-flag assist-key-depress-position 
action-key-depress-position)
+             (if assist-flag assist-key-release-position 
action-key-release-position))))
 
 (defun hmouse-emacs-modeline-event-p (event)
   "GNU Emacs: Returns non-nil if EVENT happened on a window mode line."
-  (eq (posn-area (event-start event)) 'mode-line))
+  (and (eventp event) (eq (posn-area (event-start event)) 'mode-line)))
 
 (defun hmouse-modeline-event-p (args)
   "Returns non-nil if event ARGS happened on a window mode line."
@@ -888,7 +924,8 @@ If the Assist Key is:
               (not (markerp args)))
       (cond
        ;; Modern GNU Emacs
-       ((hmouse-emacs-modeline-event-p args))
+       ((fboundp 'posn-area)
+       (hmouse-emacs-modeline-event-p args))
        ;; XEmacs
        ((fboundp 'event-over-modeline-p)
        (event-over-modeline-p args))
@@ -1104,11 +1141,14 @@ of the Smart Key."
         (w1-buf (and w1 (window-buffer w1)))
         (w2-buf (and w2 (window-buffer w2)))
         )
-    (or (and w1 w2)
-       (error "(hmouse-swap-buffers): Last depress or release was not within a 
window."))
-    ;; Swap window buffers.
-    (set-window-buffer w1 w2-buf)
-    (set-window-buffer w2 w1-buf)))
+    (cond ((not (and w1 w2))
+          (error "(hmouse-swap-buffers): Last depress or release was not 
within a window."))
+         ((eq w1 w2)
+          ;; Do nothing silently.
+          )
+         (t ;; Swap window buffers.
+          (set-window-buffer w1 w2-buf)
+          (set-window-buffer w2 w1-buf)))))
 
 (defun hmouse-swap-windows ()
   "Swaps the sizes of 2 windows selected with the last Smart Key depress and 
release."
diff --git a/hycontrol.el b/hycontrol.el
index b554ac3..5af6d53 100644
--- a/hycontrol.el
+++ b/hycontrol.el
@@ -128,7 +128,7 @@
 ;;; ************************************************************************
 
 (defvar hycontrol-debug nil
-  "When set non-nil by a user, some HyControl log debugging messages to the 
*Messages* buffer.")
+  "When set non-nil by a user, some HyControl functions log debugging messages 
to the *Messages* buffer.")
 
 (defvar hycontrol-display-buffer-predicate-list
   ;; Display only buffers attached to files.
diff --git a/man/hkey-help.txt b/man/hkey-help.txt
index fac9eb8..25dca92 100644
--- a/man/hkey-help.txt
+++ b/man/hkey-help.txt
@@ -36,6 +36,14 @@ Mouse-only Control
   Other Modeline drag to        Replaces dest. buffer      Swaps window buffers
     another window                with source buffer
 
+  Drag to a Modeline from:
+    buffer/file menu item       Displays buffer/file in    Swaps window buffers
+                                  new window by release
+    buffer/file menu 1st line   Moves buffer/file menu to  Swaps window buffers
+                                  new window by release
+    anywhere else               Displays buffer in         Swaps window buffers
+                                  new window by release
+
   Drag between windows from:
     buffer/file menu item       Displays buffer/file in    Swaps window buffers
                                   window of button release 
diff --git a/man/hyperbole.css b/man/hyperbole.css
new file mode 100644
index 0000000..25c7519
--- /dev/null
+++ b/man/hyperbole.css
@@ -0,0 +1,453 @@
+<style type="text/css">
+body {
+    font-family: Helvetica, arial, sans-serif;
+    font-size: 14px;
+    line-height: 1.6;
+    padding-top: 10px;
+    padding-bottom: 10px;
+    background-color: white;
+    padding: 30px; }
+
+body > *:first-child {
+    margin-top: 0 !important; }
+body > *:last-child {
+    margin-bottom: 0 !important; }
+
+a {
+    color: #4183C4; }
+a.absent {
+    color: #cc0000; }
+a.anchor {
+    display: block;
+    padding-left: 30px;
+    margin-left: -30px;
+    cursor: pointer;
+    position: absolute;
+    top: 0;
+    left: 0;
+    bottom: 0; }
+
+h1, h2, h3, h4, h5, h6 {
+    margin: 20px 0 10px;
+    padding: 0;
+    font-weight: bold;
+    -webkit-font-smoothing: antialiased;
+    cursor: text;
+    position: relative; }
+
+h1 tt, h1 code {
+    font-size: inherit; }
+
+h2 tt, h2 code {
+    font-size: inherit; }
+
+h3 tt, h3 code {
+    font-size: inherit; }
+
+h4 tt, h4 code {
+    font-size: inherit; }
+
+h5 tt, h5 code {
+    font-size: inherit; }
+
+h6 tt, h6 code {
+    font-size: inherit; }
+
+h1 {
+    font-size: 28px;
+    color: black; }
+
+h2 {
+    font-size: 24px;
+    border-bottom: 1px solid #cccccc;
+    color: black; }
+
+h3 {
+    font-size: 18px; }
+
+h4 {
+    font-size: 16px; }
+
+h5 {
+    font-size: 14px; }
+
+h6 {
+    color: #777777;
+    font-size: 14px; }
+
+p, blockquote, ul, ol, dl, li, table, pre {
+    margin: 15px 0; }
+
+hr {
+    background: transparent 
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj
 [...]
+    border: 0 none;
+    color: #cccccc;
+    height: 4px;
+    padding: 0;
+}
+
+body > h2:first-child {
+    margin-top: 0;
+    padding-top: 0; }
+body > h1:first-child {
+    margin-top: 0;
+    padding-top: 0; }
+body > h1:first-child + h2 {
+    margin-top: 0;
+    padding-top: 0; }
+body > h3:first-child, body > h4:first-child, body > h5:first-child, body > 
h6:first-child {
+    margin-top: 0;
+    padding-top: 0; }
+
+a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, 
a:first-child h5, a:first-child h6 {
+    margin-top: 0;
+    padding-top: 0; }
+
+h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
+    margin-top: 0; }
+
+li p.first {
+    display: inline-block; }
+li {
+    margin: 0; }
+ul, ol {
+    padding-left: 30px; }
+
+ul :first-child, ol :first-child {
+    margin-top: 0; }
+
+dl {
+    padding: 0; }
+dl dt {
+    font-size: 14px;
+    font-weight: bold;
+    font-style: italic;
+    padding: 0;
+    margin: 15px 0 5px; }
+dl dt:first-child {
+    padding: 0; }
+dl dt > :first-child {
+    margin-top: 0; }
+dl dt > :last-child {
+    margin-bottom: 0; }
+dl dd {
+    margin: 0 0 15px;
+    padding: 0 15px; }
+dl dd > :first-child {
+    margin-top: 0; }
+dl dd > :last-child {
+    margin-bottom: 0; }
+
+blockquote {
+    border-left: 4px solid #dddddd;
+    padding: 0 15px;
+    color: #777777; }
+blockquote > :first-child {
+    margin-top: 0; }
+blockquote > :last-child {
+    margin-bottom: 0; }
+
+table {
+    padding: 0;border-collapse: collapse; }
+table tr {
+    border-top: 1px solid #cccccc;
+    background-color: white;
+    margin: 0;
+    padding: 0; }
+table tr:nth-child(2n) {
+    background-color: #f8f8f8; }
+table tr th {
+    font-weight: bold;
+    border: 1px solid #cccccc;
+    margin: 0;
+    padding: 6px 13px; }
+table tr td {
+    border: 1px solid #cccccc;
+    margin: 0;
+    padding: 6px 13px; }
+table tr th :first-child, table tr td :first-child {
+    margin-top: 0; }
+table tr th :last-child, table tr td :last-child {
+    margin-bottom: 0; }
+
+pre.menu-comment {font-family: serif; font-size: 18px;}
+
+table.menu {
+    padding: 0; border-collapse: collapse; }
+table.menu tr {
+    border-top: 0;
+    margin: 0;
+    padding: 0; }
+table.menu tr th {
+    font-weight: bold;
+    border: 0;
+    margin: 0;
+    padding: 6px 13px; }
+table.menu tr td {
+    border: 0;
+    margin: 0;
+    padding: 6px 13px; }
+table.menu tr th :first-child, table tr td :first-child {
+    margin-top: 0; }
+table.menu tr th :last-child, table tr td :last-child {
+    margin-bottom: 0; }
+
+img {
+    max-width: 100%;
+    background: transparent; }
+
+span.frame {
+    display: block;
+    overflow: hidden; }
+span.frame > span {
+    border: 1px solid #dddddd;
+    display: block;
+    float: left;
+    overflow: hidden;
+    margin: 13px 0 0;
+    padding: 7px;
+    width: auto; }
+span.frame span img {
+    display: block;
+    float: left; }
+span.frame span span {
+    clear: both;
+    color: #333333;
+    display: block;
+    padding: 5px 0 0; }
+span.align-center {
+    display: block;
+    overflow: hidden;
+    clear: both; }
+span.align-center > span {
+    display: block;
+    overflow: hidden;
+    margin: 13px auto 0;
+    text-align: center; }
+span.align-center span img {
+    margin: 0 auto;
+    text-align: center; }
+span.align-right {
+    display: block;
+    overflow: hidden;
+    clear: both; }
+span.align-right > span {
+    display: block;
+    overflow: hidden;
+    margin: 13px 0 0;
+    text-align: right; }
+span.align-right span img {
+    margin: 0;
+    text-align: right; }
+span.float-left {
+    display: block;
+    margin-right: 13px;
+    overflow: hidden;
+    float: left; }
+span.float-left span {
+    margin: 13px 0 0; }
+span.float-right {
+    display: block;
+    margin-left: 13px;
+    overflow: hidden;
+    float: right; }
+span.float-right > span {
+    display: block;
+    overflow: hidden;
+    margin: 13px auto 0;
+    text-align: right; }
+
+code, tt {
+    margin: 0 2px;
+    padding: 0 5px;
+    white-space: nowrap;
+    border: 1px solid #eaeaea;
+    background-color: #f8f8f8;
+    border-radius: 3px; }
+
+pre code {
+    margin: 0;
+    padding: 0;
+    white-space: pre;
+    border: none;
+    background: transparent; }
+
+.highlight pre {
+    background-color: #f8f8f8;
+    border: 1px solid #cccccc;
+    font-size: 13px;
+    line-height: 19px;
+    overflow: auto;
+    padding: 6px 10px;
+    border-radius: 3px; }
+
+pre {
+    background-color: #f8f8f8;
+    border: 1px solid #cccccc;
+    font-size: 13px;
+    line-height: 19px;
+    overflow: auto;
+    padding: 6px 10px;
+    border-radius: 3px; }
+pre code, pre tt {
+    background-color: transparent;
+    border: none; }
+
+sup {
+    font-size: 0.83em;
+    vertical-align: super;
+    line-height: 0;
+}
+* {
+    -webkit-print-color-adjust: exact;
+}
address@hidden screen and (min-width: 914px) {
+    body {
+        width: 854px;
+        margin:0 auto;
+    }
+}
address@hidden print {
+    table, pre {
+       page-break-inside: avoid;
+    }
+    pre {
+       word-wrap: break-word;
+    }
+}
+</style>
+
+<style type="text/css">
+
+code[class*="language-"],
+pre[class*="language-"] {
+    color: black;
+    background: none;
+    text-shadow: 0 1px white;
+    font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+    text-align: left;
+    white-space: pre;
+    word-spacing: normal;
+    word-break: normal;
+    word-wrap: normal;
+    line-height: 1.5;
+
+    -moz-tab-size: 4;
+    -o-tab-size: 4;
+    tab-size: 4;
+
+    -webkit-hyphens: none;
+    -moz-hyphens: none;
+    -ms-hyphens: none;
+    hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection, pre[class*="language-"] 
::-moz-selection,
+code[class*="language-"]::-moz-selection, code[class*="language-"] 
::-moz-selection {
+    text-shadow: none;
+    background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
+code[class*="language-"]::selection, code[class*="language-"] ::selection {
+    text-shadow: none;
+    background: #b3d4fc;
+}
+
address@hidden print {
+    code[class*="language-"],
+    pre[class*="language-"] {
+       text-shadow: none;
+    }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+    padding: 1em;
+    margin: .5em 0;
+    overflow: auto;
+}
+
+:not(pre) > code[class*="language-"],
+ pre[class*="language-"] {
+    background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+    padding: .1em;
+    border-radius: .3em;
+    white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+    color: slategray;
+}
+
+.token.punctuation {
+    color: #999;
+}
+
+.namespace {
+    opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+    color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+    color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+    color: #a67f59;
+    background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+    color: #07a;
+}
+
+.token.function {
+    color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+    color: #e90;
+}
+
+.token.important,
+.token.bold {
+    font-weight: bold;
+}
+.token.italic {
+    font-style: italic;
+}
+
+.token.entity {
+    cursor: help;
+}
+</style>
diff --git a/man/hyperbole.html b/man/hyperbole.html
index e4c2f2d..8050fbb 100644
--- a/man/hyperbole.html
+++ b/man/hyperbole.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
 <html>
 <!-- This manual is for GNU Hyperbole
-(Edition 6.0.2f, Published October 25, 2017).
+(Edition 6.0.2f, Published October 27, 2017).
 
 Copyright (C) 1989-2017  Free Software Foundation, Inc.
 
@@ -61,6 +61,7 @@ span.sansserif {font-family: sans-serif; font-weight: normal}
 ul.no-bullet {list-style: none}
 -->
 </style>
+<link rel="stylesheet" type="text/css" href="hyperbole.css">
 
 
 </head>
@@ -325,7 +326,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
 Edition 6.0.2f
-Printed October 26, 2017.
+Printed October 27, 2017.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -976,13 +977,10 @@ Hyperbole, see <a href="#Setup">Setup</a>, for Hyperbole 
installation and config
 information.  The demo offers a much less technical introduction to
 Hyperbole by supplying good examples of use.
 </p>
-<div class="example">
 <div class="float"><a name="image_003aDemo"></a>
-<pre class="example">
 
 <img src="im/demo.png" alt="Hyperbole Minibuffer Menu and Demonstration 
Screenshot">
-</pre><div class="float-caption"><p><strong>Image 1.1: </strong>Hyperbole 
Minibuffer Menu and Demonstration Screenshot</p></div></div></div>
-<br>
+<div class="float-caption"><p><strong>Image 1.1: </strong>Hyperbole Minibuffer 
Menu and Demonstration Screenshot</p></div></div><br>
 
 <a name="index-GNU-Emacs"></a>
 <a name="index-C_002dh-t"></a>
@@ -1233,9 +1231,10 @@ and notice that the Smart Keys do just a few 
context-sensitive things
 per editor mode, you will find it easy to just press or point and
 click and let Hyperbole do the right thing in each context.
 </p>
+
 <div class="format">
-<div class="smallexample">
-<pre 
class="smallexample">========================================================================================
+<div class="example">
+<pre 
class="example">========================================================================================
                                               Smart Keys
 Context                         Action Key                 Assist Key
 
========================================================================================
@@ -1273,6 +1272,14 @@ Mouse-only Control
   Other Modeline drag to        Replaces dest. buffer      Swaps window buffers
     another window                with source buffer
 
+  Drag to a Modeline from:
+    buffer/file menu item       Displays buffer/file in    Swaps window buffers
+                                  new window by release
+    buffer/file menu 1st line   Moves buffer/file menu to  Swaps window buffers
+                                  new window by release
+    anywhere else               Displays buffer in         Swaps window buffers
+                                  new window by release
+
   Drag between windows from:
     buffer/file menu item       Displays buffer/file in    Swaps window buffers
                                   window of button release 
@@ -3299,13 +3306,10 @@ get rid of the menu if you do not need it.  Invoking 
Hyperbole from
 the keyboard, as explained below, will add the menu back to the
 menubar.
 </p>
-<div class="example">
 <div class="float"><a name="image_003aHyperbole-Menu"></a>
-<pre class="example">
 
 <img src="im/menu-hyperbole.png" alt="Hyperbole Menu">
-</pre><div class="float-caption"><p><strong>Image 4.1: </strong>Hyperbole 
Menubar Menu</p></div></div></div>
-<br>
+<div class="float-caption"><p><strong>Image 4.1: </strong>Hyperbole Menubar 
Menu</p></div></div><br>
 
 <a name="index-minibuffer-menus"></a>
 <p>The rest of this section discusses only the
@@ -4123,13 +4127,10 @@ when you invoke this command.
 <p>See <a href="#Koutliner-Keys">Koutliner Keys</a>, for a full summary of the 
key bindings and
 commands available in the Koutliner.
 </p>
-<div class="example">
 <div class="float"><a name="image_003aKoutliner"></a>
-<pre class="example">
 
 <img src="im/koutliner.png" alt="Koutliner Screenshot">
-</pre><div class="float-caption"><p><strong>Image 6.1: </strong>Koutliner 
Screenshot</p></div></div></div>
-<br>
+<div class="float-caption"><p><strong>Image 6.1: </strong>Koutliner 
Screenshot</p></div></div><br>
 
 <table class="menu" border="0" cellspacing="0">
 <tr><td align="left" valign="top">&bull; <a href="#Menu-Commands" 
accesskey="1">Menu Commands</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
@@ -4202,13 +4203,10 @@ Vspec        kvspec:activate            Set a view 
specification
 page, offers a more complete set of the Koutliner commands.  Experiment
 with the menu or read the following sections explaining commands.
 </p>
-<div class="example">
 <div class="float"><a name="image_003aKoutline-Menu"></a>
-<pre class="example">
 
 <img src="im/menu-koutline.png" alt="Koutline Menu">
-</pre><div class="float-caption"><p><strong>Image 6.2: </strong>Koutline 
Menu</p></div></div></div>
-<br>
+<div class="float-caption"><p><strong>Image 6.2: </strong>Koutline 
Menu</p></div></div><br>
 
 <hr>
 <a name="Creating-Outlines"></a>
@@ -5427,13 +5425,10 @@ Next: <a href="#HyRolo-Searching" accesskey="n" 
rel="next">HyRolo Searching</a>,
 for searching and maintaining a personal address book.  It looks like
 so.
 </p>
-<div class="example">
 <div class="float"><a name="image_003aRolo-Menu"></a>
-<pre class="example">
 
 <img src="im/menu-rolo.png" alt="HyRolo Menu">
-</pre><div class="float-caption"><p><strong>Image 7.1: </strong>HyRolo 
Menu</p></div></div></div>
-
+<div class="float-caption"><p><strong>Image 7.1: </strong>HyRolo 
Menu</p></div></div>
 <a name="index-rolo-menu"></a>
 <a name="index-HyRolo-menu"></a>
 <p>The Rolo/ menu entry on the Hyperbole minibuffer menu provides the same
@@ -7251,13 +7246,10 @@ Previous: <a href="#Invocation" accesskey="p" 
rel="prev">Invocation</a>, Up: <a
 <p>Major Hyperbole user options may be set from the Customize submenu
 below the Hyperbole menubar menu, as seen here.
 </p>
-<div class="example">
 <div class="float"><a name="image_003aCustomize-Menu"></a>
-<pre class="example">
 
 <img src="im/menu-customization.png" alt="Hyperbole Customize Menu">
-</pre><div class="float-caption"><p><strong>Image B.1: </strong>Hyperbole 
Customize Menu</p></div></div></div>
-<br>
+<div class="float-caption"><p><strong>Image B.1: </strong>Hyperbole Customize 
Menu</p></div></div><br>
 
 <p>Alternatively, the minibuffer-based menu, Cust/ may be used.
 </p>
@@ -8660,7 +8652,7 @@ Next: <a href="#Smart-Mouse-Drags-between-Windows" 
accesskey="n" rel="next">Smar
          resizing its window and potentially its vertically neighboring
          windows.
      (6) dragged other than straight vertically from a modeline to another
-         window, swap the buffers of the two windows.
+         window, swap buffers in the two windows.
      (7) dragged from a modeline to outside of Emacs, create a new frame
          sized to match the selected window with the same buffer.  If there
          is only one window in the source frame or if 
<code>hycontrol-keep-window-flag</code>
@@ -8668,6 +8660,18 @@ Next: <a href="#Smart-Mouse-Drags-between-Windows" 
accesskey="n" rel="next">Smar
          new frame;otherwise, delete the original window.
 </pre></div>
 
+<div class="format">
+<pre class="format">If dragged from a window and released within a window 
modeline:
+  ACTION KEY
+     (1) If depress was on a buffer name in Buffer-menu/ibuffer mode or on
+         a file/directory in dired mode, splits the release window and displays
+         the item in the original release window.
+     (2) Otherwise, splits the release window and displays the depress 
window&rsquo;s
+         buffer in the original release window.
+  ASSIST KEY
+     Swaps buffers in the two windows.
+</pre></div>
+
 <hr>
 <a name="Smart-Mouse-Drags-between-Windows"></a>
 <div class="header">
@@ -8696,14 +8700,14 @@ Next: <a href="#Smart-Mouse-Drags-within-a-Window" 
accesskey="n" rel="next">Smar
 <pre class="format">Otherwise, if dragged from inside one window to another:
   ACTION KEY
      (1) If depress was on a buffer name in Buffer-menu/ibuffer mode or on
-         a file/directory in dired mode, display the item in window of release.
+         a file/directory in dired mode, displays the item in window of 
release.
          See <code>hmouse-drag-item-mode-forms</code> for how to allow for 
draggable
          items in other modes.
      (2) Otherwise, creates a new link button at the drag start location, 
linked
          to the drag end location.  If the drag start position is within a 
button,
          this modifies the button to link to the drag end location.
   ASSIST KEY
-     Swaps buffers in the two windows.
+     Swap buffers in the two windows.
 </pre></div>
 
 <hr>
diff --git a/man/hyperbole.info b/man/hyperbole.info
index 0612cf2..86d2a4f 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index 14b6b61..fddda41 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index c55e345..32230e8 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -152,7 +152,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
 Edition 6.0.2f
-Printed October 26, 2017.
+Printed October 27, 2017.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -176,7 +176,7 @@ Printed October 26, 2017.
 
 @center The Everyday Hypertextual Information Manager
 
address@hidden Edition 6.0.2f, October 26, 2017.
address@hidden Edition 6.0.2f, October 27, 2017.
 
 @sp 2
 @noindent
@@ -199,12 +199,10 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   Web:       www.gnu.org/software/hyperbole
 @end example
 
address@hidden
 @float Image,image:Sample
 @caption{Sample Hyperbole screenshot of the Koutliner, DEMO file and HyRolo}
 @image{im/hyperbole-cv,6in,,Sample Hyperbole Screenshot}
 @end float
address@hidden example
 @sp 1
 @center --------------------
 @sp 1
@@ -657,12 +655,10 @@ Hyperbole, @pxref{Setup}, for Hyperbole installation and 
configuration
 information.  The demo offers a much less technical introduction to
 Hyperbole by supplying good examples of use.
 
address@hidden
 @float Image,image:Demo
 @caption{Hyperbole Minibuffer Menu and Demonstration Screenshot}
 @image{im/demo,6in,,Hyperbole Minibuffer Menu and Demonstration Screenshot}
 @end float
address@hidden example
 @sp 1
 
 @cindex GNU Emacs
@@ -904,11 +900,21 @@ and notice that the Smart Keys do just a few 
context-sensitive things
 per editor mode, you will find it easy to just press or point and
 click and let Hyperbole do the right thing in each context.
 
address@hidden
 @format
 @smallexample
 @include hkey-help.txt
 @end smallexample
 @end format
address@hidden ifnothtml
+
address@hidden
address@hidden
address@hidden
address@hidden hkey-help.txt
address@hidden example
address@hidden format
address@hidden ifhtml
 
 @noindent
 @xref{Smart Key Reference}, for extensive reference documentation on the
@@ -2665,12 +2671,10 @@ get rid of the menu if you do not need it.  Invoking 
Hyperbole from
 the keyboard, as explained below, will add the menu back to the
 menubar.
 
address@hidden
 @float Image,image:Hyperbole Menu
 @caption{Hyperbole Menubar Menu}
 @image{im/menu-hyperbole,,5in,Hyperbole Menu}
 @end float
address@hidden example
 @sp 1
 
 @cindex minibuffer menus
@@ -3382,12 +3386,10 @@ when you invoke this command.
 @xref{Koutliner Keys}, for a full summary of the key bindings and
 commands available in the Koutliner.
 
address@hidden
 @float Image,image:Koutliner
 @caption{Koutliner Screenshot}
 @image{im/koutliner,6in,,Koutliner Screenshot}
 @end float
address@hidden example
 @sp 1
 
 @menu
@@ -3448,12 +3450,10 @@ page, offers a more complete set of the Koutliner 
commands.  Experiment
 with the menu or read the following sections explaining commands.
 
 @page
address@hidden
 @float Image,image:Koutline Menu
 @caption{Koutline Menu}
 @image{im/menu-koutline,,6in,Koutline Menu}
 @end float
address@hidden example
 @sp 1
 
 @node Creating Outlines, Autonumbering, Menu Commands, Koutliner
@@ -4474,12 +4474,10 @@ The Rolo submenu of the Hyperbole menu offers a full 
set of commands
 for searching and maintaining a personal address book.  It looks like
 so.
 
address@hidden
 @float Image,image:Rolo Menu
 @caption{HyRolo Menu}
 @image{im/menu-rolo,,7in,HyRolo Menu}
 @end float
address@hidden example
 @page
 
 @cindex rolo menu
@@ -6033,12 +6031,10 @@ configuring Hyperbole's behavior.
 Major Hyperbole user options may be set from the Customize submenu
 below the Hyperbole menubar menu, as seen here.
 
address@hidden
 @float Image,image:Customize Menu
 @caption{Hyperbole Customize Menu}
 @image{im/menu-customization,,,Hyperbole Customize Menu}
 @end float
address@hidden example
 @sp 1
 
 @noindent
@@ -7223,7 +7219,7 @@ If depressed within a window modeline:
          resizing its window and potentially its vertically neighboring
          windows.
      (6) dragged other than straight vertically from a modeline to another
-         window, swap the buffers of the two windows.
+         window, swap buffers in the two windows.
      (7) dragged from a modeline to outside of Emacs, create a new frame
          sized to match the selected window with the same buffer.  If there
          is only one window in the source frame or if 
@code{hycontrol-keep-window-flag}
@@ -7232,6 +7228,20 @@ If depressed within a window modeline:
 @end group
 @end format
 
address@hidden
address@hidden
+If dragged from a window and released within a window modeline:
+  ACTION KEY
+     (1) If depress was on a buffer name in Buffer-menu/ibuffer mode or on
+         a file/directory in dired mode, splits the release window and displays
+         the item in the original release window.
+     (2) Otherwise, splits the release window and displays the depress window's
+         buffer in the original release window.
+  ASSIST KEY
+     Swaps buffers in the two windows.
address@hidden group
address@hidden format
+
 @node Smart Mouse Drags between Windows, Smart Mouse Drags within a Window, 
Modeline Clicks and Drags, Smart Mouse Keys
 @subsection Smart Mouse Drags between Windows
 
@@ -7257,14 +7267,14 @@ If an active (highlighted) region exists within the 
editor:
 Otherwise, if dragged from inside one window to another:
   ACTION KEY
      (1) If depress was on a buffer name in Buffer-menu/ibuffer mode or on
-         a file/directory in dired mode, display the item in window of release.
+         a file/directory in dired mode, displays the item in window of 
release.
          See @code{hmouse-drag-item-mode-forms} for how to allow for draggable
          items in other modes.
      (2) Otherwise, creates a new link button at the drag start location, 
linked
          to the drag end location.  If the drag start position is within a 
button,
          this modifies the button to link to the drag end location.
   ASSIST KEY
-     Swaps buffers in the two windows.
+     Swap buffers in the two windows.
 @end group
 @end format
 
diff --git a/man/version.texi b/man/version.texi
index 4d38c5b..3295b2d 100644
--- a/man/version.texi
+++ b/man/version.texi
@@ -1,4 +1,4 @@
address@hidden UPDATED October 26, 2017
address@hidden UPDATED October 27, 2017
 @set UPDATED-MONTH OCT 2017
 @set EDITION 6.0.2f
 @set VERSION 6.0.2f
diff --git a/topwin b/topwin.py
similarity index 100%
rename from topwin
rename to topwin.py



reply via email to

[Prev in Thread] Current Thread [Next in Thread]