#3 is now fixed if you 'git pull' again and then restart Emacs.  I believe
that resolves all the issues you have listed.  -- Bob

On Thu, Jan 30, 2020 at 12:58 AM Robert Weiner <rsw...@gmail.com> wrote:

> #2 was a change we made to the button flash time handling that did not
> account for the persistence of customizable variables.  It left you with a
> flash time of 1000 seconds that would timeout when you pressed an
> additional key.  That has been reverted in the latest git repo master if
> you ‘git pull’ in the Hyperbole source directory and then restart
> Hyperbole/emacs.  Buttons should work properly then.
>
> We have replicated #3 and should have that fixed in another day.
>
> Good catches.
>
> -- Bob
>
> > On Jan 29, 2020, at 4:16 PM, gravityp...@posteo.de wrote:
> >
> > Good afternoon,
> >
> > As recommended, I'm submitting my feedback on the 7.0.8 Test Release
> here -- hopefully I'm doing this correctly.
> >
> > ---------------------------------------------
> >
> > OS: Windows 10 Home, Version 1909, Build 18363.592
> >
> > GNU Emacs 26.3 (build 1, x86_64-w64-mingw32) of 2019-08-29
> >
> > Hyperbole Built following the instructions on this Reddit post:
> >
> >
> https://www.reddit.com/r/emacs/comments/euzxmx/gnu_hyperbole_708_test_release_with_patches/
> >
> > Hyperbole Config:
> >
> > >   ;; hyperbole
> > >   (require 'hyperbole)
> > >   (load "hyperbole-autoloads")
> > >   (load "hyperbole")
> >
> >
> > ---------------------------------------------
> >
> > Feedback #1: Implicit Buttons are Much Improved! Action buttons are
> great!
> > ======================================================
> >
> > I wanna say, first, that the implicit buttons are much improved in this
> release -- both in their ability to find the buttons, and in the options
> for labeling and linking. Likewise, the new Action Button syntax is cool!
> I'm super excited for the final build.
> >
> > Feedback #2: Possible Bug Causing Implicit Buttons Require Additional
> User Input to Activate
> > ===================================================================
> >
> > Consider line 33 of the Hyperbole Demo document. It reads:
> >
> >> Hyperbole displays that file when you press {C-h h d a}.  Hyperbole
> assumes
> >
> > If I want to invoke the key-sequence implicit button, I move the cursor
> there, and hit M-RET or click with the mouse action button.
> >
> > The expected behavior is, obviously, that the button flashes, then
> activates. For me, though, activating the button causes the button to
> highlight persistently -- and no action occurs until I make another
> keypress. Any keypress that doesn't insert text works: ESC, Right-Arrow,
> etc.
> >
> > Most of the time when I press the extra key, the button then just
> activates as normal, and works as expected. Sometimes when I press a key, I
> get an error like:
> >
> >> apply: Wrong type argument: commandp, (keymap (keymap (9 .
> backward-button)) ESC-prefix)
> >
> > The debugger output:
> >
> >>  Debugger entered--Lisp error: (wrong-type-argument commandp (keymap
> (keymap (9 . backward-button)) ESC-prefix))
> >>    #<subr call-interactively>((keymap (keymap (9 . backward-button))
> ESC-prefix))
> >>    apply(#<subr call-interactively> (keymap (keymap (9 .
> backward-button)) ESC-prefix) nil)
> >>    call-interactively@ido-cr+-record-current-command(#<subr
> call-interactively> (keymap (keymap (9 . backward-button)) ESC-prefix))
> >>    apply(call-interactively@ido-cr+-record-current-command #<subr
> call-interactively> (keymap (keymap (9 . backward-button)) ESC-prefix))
> >>    call-interactively((keymap (keymap (9 . backward-button))
> ESC-prefix))
> >>    (cond ((null binding) (if (kbd-key:special-sequence-p key-series)
> (progn (setq unread-command-events (nconc unread-command-events (mapcar
> (quote identity) key-series))) t))) ((memq binding (quote (action-key
> action-mouse-key hkey-either))) (beep) (message "(kbd-key:act): This key
> does what the Action Key does.") t) (t (call-interactively binding) t))
> >>    (let ((binding (key-binding key-series))) (cond ((null binding) (if
> (kbd-key:special-sequence-p key-series) (progn (setq unread-command-events
> (nconc unread-command-events (mapcar ... key-series))) t))) ((memq binding
> (quote (action-key action-mouse-key hkey-either))) (beep) (message
> "(kbd-key:act): This key does what the Action Key does.") t) (t
> (call-interactively binding) t)))
> >>    kbd-key:act("\033")
> >>    actypes::kbd-key("\033")
> >>    apply(actypes::kbd-key "\033")
> >>    eval((apply action args))
> >>    (if (or (symbolp action) (listp action) (hypb:emacs-byte-code-p
> action) (and (stringp action) (not (integerp action)) (setq action
> (key-binding action)))) (eval act) (eval action))
> >>    (or (if (or (symbolp action) (listp action) (hypb:emacs-byte-code-p
> action) (and (stringp action) (not (integerp action)) (setq action
> (key-binding action)))) (eval act) (eval action)) t)
> >>    (prog1 (or (if (or (symbolp action) (listp action)
> (hypb:emacs-byte-code-p action) (and (stringp action) (not (integerp
> action)) (setq action (key-binding action)))) (eval act) (eval action)) t)
> (hhist:add hist-elt))
> >>    (let ((hist-elt (hhist:element))) (run-hooks (quote
> action-act-hook)) (prog1 (or (if (or (symbolp action) (listp action)
> (hypb:emacs-byte-code-p action) (and (stringp action) (not (integerp
> action)) (setq action (key-binding action)))) (eval act) (eval action)) t)
> (hhist:add hist-elt)))
> >>    (if (null action) (error "(actype:act): Null action for: `%s'"
> actype) (and (symbolp action) (symtable:actype-p action) (setq args
> (action:path-args-abs args))) (let ((hist-elt (hhist:element))) (run-hooks
> (quote action-act-hook)) (prog1 (or (if (or (symbolp action) (listp action)
> (hypb:emacs-byte-code-p action) (and (stringp action) (not ...) (setq
> action ...))) (eval act) (eval action)) t) (hhist:add hist-elt))))
> >>    (let ((prefix-arg current-prefix-arg) (action (actype:action
> actype)) (act (quote (apply action args)))) (if (null action) (error
> "(actype:act): Null action for: `%s'" actype) (and (symbolp action)
> (symtable:actype-p action) (setq args (action:path-args-abs args))) (let
> ((hist-elt (hhist:element))) (run-hooks (quote action-act-hook)) (prog1 (or
> (if (or (symbolp action) (listp action) (hypb:emacs-byte-code-p action)
> (and ... ... ...)) (eval act) (eval action)) t) (hhist:add hist-elt)))))
> >>    actype:act(actypes::kbd-key "\033\015")
> >>    apply(actype:act actypes::kbd-key "\033\015")
> >>    (if hbut (apply hrule:action (hattr:get hbut (quote actype))
> (hattr:get hbut (quote args))))
> >>    hbut:act(hbut:current)
> >>    funcall(hbut:act hbut:current)
> >>    (cond ((and (called-interactively-p (quote interactive)) (null but))
> (hypb:error "(hbut-operate): No current button to operate upon")) ((not
> (hbut:is-p but)) (hypb:error "(hbut-operate): Button is invalid; it has no
> attributes")) (t (or but (setq but (quote hbut:current))) (hui:but-flash)
> (funcall operation but)))
> >>    hui:hbut-operate(hbut:act "execute" hbut:current)
> >>    hui:hbut-act(hbut:current)
> >>    eval((hui:hbut-act (quote hbut:current)))
> >>    (progn (if hkey-debug (hkey-debug)) (eval hkey-action))
> >>    (if (setq hkey-action (if assist-flag (cdr (cdr hkey-form)) (car
> (cdr hkey-form))) pred (car hkey-form) pred-value (eval pred)) (progn (if
> hkey-debug (hkey-debug)) (eval hkey-action)) (setq hkey-forms (cdr
> hkey-forms)))
> >>    (while (and (null pred-value) (setq hkey-form (car hkey-forms))) (if
> (setq hkey-action (if assist-flag (cdr (cdr hkey-form)) (car (cdr
> hkey-form))) pred (car hkey-form) pred-value (eval pred)) (progn (if
> hkey-debug (hkey-debug)) (eval hkey-action)) (setq hkey-forms (cdr
> hkey-forms))))
> >>    (let ((hkey-forms hkey-alist) (pred-value) (hkey-action) hkey-form
> pred) (while (and (null pred-value) (setq hkey-form (car hkey-forms))) (if
> (setq hkey-action (if assist-flag (cdr (cdr hkey-form)) (car (cdr
> hkey-form))) pred (car hkey-form) pred-value (eval pred)) (progn (if
> hkey-debug (hkey-debug)) (eval hkey-action)) (setq hkey-forms (cdr
> hkey-forms)))) pred-value)
> >>    hkey-execute(nil)
> >>    (or (hkey-execute nil) (if (fboundp action-key-default-function)
> (progn (funcall action-key-default-function) t)))
> >>    action-key-internal()
> >>    (prog1 (action-key-internal) (run-hooks (quote
> action-key-depress-hook) (quote action-key-release-hook)))
> >>    action-key()
> >>    (if arg (assist-key) (action-key))
> >>    hkey-either(nil)
> >>    funcall-interactively(hkey-either nil)
> >>    #<subr call-interactively>(hkey-either nil nil)
> >>    apply(#<subr call-interactively> hkey-either (nil nil))
> >>    call-interactively@ido-cr+-record-current-command(#<subr
> call-interactively> hkey-either nil nil)
> >>    apply(call-interactively@ido-cr+-record-current-command #<subr
> call-interactively> (hkey-either nil nil))
> >>    call-interactively(hkey-either nil nil)
> >>    command-execute(hkey-either)
> >
> > I get this behavior in elisp files as well. Consider the following:
> >
> >>  ;; Info-mode
> >>  (when (eq system-type 'windows-nt)
> >>    (setq Info-additional-directory-list
> >>          (quote
> >>           ("~/Apps/msys2/usr/share/info" "~/Apps/msys2
> /mingw64/share/info"))))
> >
> > If I move to one of the paths listed, and hit the action button,
> Hyperbole correctly recognizes the path as an implicit button, highlights
> it, but then doesn't act upon it until I make some additional keypress.
> This case does not throw an error, so I can't provide debug information.
> >
> > Feedback #3: Explicit Buttons Should Be Colored
> > ===================================
> >
> > If I have an explicit button in a file -- <(fake button)> -- it does not
> display in red as intended. Examining the way this stuff is set up, it
> looks like the button color is tied to the `Hbut` face, and that the `Hbut`
> face defaults to
> >
> >> foreground: SystemWindowText
> >> background: SystemWindow
> >
> > This basically means black text on a white background, just like all the
> other normal text in a file.
> >
> > Modifying these faces doesn't seem to stick, either. If I go into
> Hyperbole's customization {C-h h c a} then the Hyperbole Buttons group,
> then the `Face Hbut` property and set it to `red` or `#ff0000` -- Hitting
> `Apply and Save` creates an entry in my custom.el:
> >
> >> '(hbut ((t (:background "SystemWindow" :foreground "red"))) t)
> >
> > and changes the button color correctly... but upon restarting Emacs, it
> reverts back to `SystemWindowText`/`SystemWindow`. This is true even when
> `custom.el` is loads correctly. I have also tried this without having an
> external customization file -- in that case, customizing the face adds the
> line above to the bottom of my init, but there's no difference in behavior.
> >
> > I was able to force the buttons to always be red by creating this hook
> -- but that shouldn't be necessary, right?
> >
> >>   (add-hook 'hyperbole-init-hook (lambda ()
> >>                                    (hproperty:cycle-but-color "red")))
> >
> >
> >
> >
> > Thank you for all your hard work on this package. I use Hyperbole
> basically every day, and I'm always excited for a new release!
> >
>

Reply via email to