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

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

[elpa] externals/hyperbole f01441a2a6 4/4: Where Hyperbole C-c keys inte


From: ELPA Syncer
Subject: [elpa] externals/hyperbole f01441a2a6 4/4: Where Hyperbole C-c keys interfere with Org or Outline modes, defer to other modes' bindings
Date: Mon, 31 Jan 2022 06:57:43 -0500 (EST)

branch: externals/hyperbole
commit f01441a2a6fb3942f47a7ec8d7e3daf3522d4bb2
Author: Bob Weiner <rsw@gnu.org>
Commit: Bob Weiner <rsw@gnu.org>

    Where Hyperbole C-c keys interfere with Org or Outline modes, defer to 
other modes' bindings
---
 ChangeLog     | 17 +++++++++++++++++
 hui-select.el | 44 ++++++++++++++++++++++++++++----------------
 hycontrol.el  | 35 +++++++++++++++++++++++++----------
 3 files changed, 70 insertions(+), 26 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 8ad577ec97..38105005f6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2022-01-31  Bob Weiner  <rsw@gnu.org>
+
+* hui-select.el (hui-select-thing): Hyperbole binds this to {C-c RET} which
+    conflicts with an Org mode binding, so if in Org mode, use its binding
+    when this command is called interactively from that key.
+  hycontrol.el (hycontrol-windows-grid): Hyperbole binds this to {C-c @} which
+    conflicts with bindings in Org mode, Outline mode and Outline minor mode.
+    Modify this command to use those bindings when called interactively from
+    that key.
+  hui-select.el (hui-select-goto-matching-delimiter): Hyperbole binds this to
+    {C-c .} which conflicts with an Org mode binding, so if in Org mode, use
+    its binding when this command is called interactively from that key.
+
 2022-01-30  Bob Weiner  <rsw@gnu.org>
 
 * hpath.el (hpath:at-p): Fix start and end delimiters to hargs:delimited so 
match
@@ -18,6 +31,10 @@
               (hpath:substitute-dir): Fix to make 'locate-file' call handle 
dirs,
    so final expansion can be a directory, e.g. on Macs App bundles are 
directories.
 
+* hsmail.el: Switch from use of sendmail.el to message.el.
+    (message-send-hook): Remove use of advice-add which caused
+    a recursive loop.  Add smail:widen to message-send-hook instead.
+
 * hact.el (actype:act): Allow for builtin subr objects like 'cons';
     This fixes Action Buttons that start with <progn ...>, for example.
 
diff --git a/hui-select.el b/hui-select.el
index d8a896ce42..e1cf5557df 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    19-Oct-96 at 02:25:27
-;; Last-Mod:     24-Jan-22 at 00:18:48 by Bob Weiner
+;; Last-Mod:     31-Jan-22 at 00:48:38 by Bob Weiner
 ;;
 ;; Copyright (C) 1996-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -301,6 +301,11 @@ The non-nil value returned is the function to call to 
select that syntactic unit
   (interactive)
   (cond ((memq major-mode hui-select-markup-modes)
         (hui-select-goto-matching-tag))
+       ((and (derived-mode-p 'org-mode)
+             (called-interactively-p 'interactive)
+             (equal (this-command-keys) "\C-c."))
+        ;; Prevent a conflict with {C-c .} binding in Org mode
+        (call-interactively (lookup-key org-mode-map "\C-c.")))
        ((and (preceding-char) (or (= ?\) (char-syntax (preceding-char)))
                                   (= ?\" (preceding-char))))
         (backward-sexp))
@@ -403,21 +408,28 @@ interactively, the type of selection is displayed in the 
minibuffer."
          ;; Reset selection based on the syntax of character at point.
          (hui-select-reset)
          nil)))
-  (let ((region (hui-select-get-region-boundaries)))
-    (unless region
-      (when (eq hui-select-previous 'punctuation)
-       (setq region (hui-select-word (point)))))
-    (when region
-      (goto-char (car region))
-      (set-mark (cdr region))
-      (when (fboundp 'activate-region) (activate-region))
-      (when (and (boundp 'transient-mark-mode)
-                transient-mark-mode)
-       (setq mark-active t))
-      (and (called-interactively-p 'interactive) hui-select-display-type
-          (message "%s" hui-select-previous))
-      (run-hooks 'hui-select-thing-hook)
-      t)))
+  (cond ((and (derived-mode-p 'org-mode)
+             (called-interactively-p 'interactive)
+             (equal (this-command-keys) "\C-c\C-m"))
+        ;; Prevent a conflict with {C-c RET} binding in Org mode
+        (call-interactively (lookup-key org-mode-map "\C-c\C-m")))
+       ;;
+       ;; No key conflicts, perform normal Hyperbole operation
+       (t (let ((region (hui-select-get-region-boundaries)))
+            (unless region
+              (when (eq hui-select-previous 'punctuation)
+                (setq region (hui-select-word (point)))))
+            (when region
+              (goto-char (car region))
+              (set-mark (cdr region))
+              (when (fboundp 'activate-region) (activate-region))
+              (when (and (boundp 'transient-mark-mode)
+                         transient-mark-mode)
+                (setq mark-active t))
+              (and (called-interactively-p 'interactive) 
hui-select-display-type
+                   (message "%s" hui-select-previous))
+              (run-hooks 'hui-select-thing-hook)
+              t)))))
 
 ;;;###autoload
 (defun hui-select-thing-with-mouse (event)
diff --git a/hycontrol.el b/hycontrol.el
index f6e058d9c0..8dc6fd5264 100644
--- a/hycontrol.el
+++ b/hycontrol.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     1-Jun-16 at 15:35:36
-;; Last-Mod:     29-Jan-22 at 16:03:51 by Bob Weiner
+;; Last-Mod:     31-Jan-22 at 00:33:24 by Bob Weiner
 ;;
 ;; Copyright (C) 2016-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -1525,15 +1525,30 @@ When done, this resets the persistent HyControl prefix 
argument to 1
 to prevent following commands from using the often large grid size
 argument."
   (interactive "p")
-  (setq arg (prefix-numeric-value (or arg current-prefix-arg)))
-  (cond ((> arg 0)
-        (hycontrol-make-windows-grid arg))
-       ((< arg 0)
-        (setq current-prefix-arg nil)
-        (call-interactively #'hycontrol-windows-grid-by-file-pattern))
-       (t
-        (setq current-prefix-arg 0)
-        (call-interactively #'hycontrol-windows-grid-by-major-mode))))
+  (let* ((key "\C-c@")
+        (this-key-flag (and (called-interactively-p 'interactive)
+                            (equal (this-command-keys) key))))
+    (cond ((and this-key-flag (derived-mode-p 'org-mode))
+          ;; Prevent a conflict with binding in Org mode
+          (call-interactively (lookup-key org-mode-map key)))
+         ((and this-key-flag (derived-mode-p 'outline-mode))
+          ;; Prevent a conflict with binding in Outline mode
+          (call-interactively (lookup-key outline-mode-map key)))
+         ((and this-key-flag (boundp 'outline-minor-mode)
+               outline-minor-mode)
+          ;; Prevent a conflict with binding in Outline minor mode
+          (call-interactively (lookup-key outline-minor-mode-map key)))
+         ;;
+         ;; No key conflicts, display window grid
+         (t (setq arg (prefix-numeric-value (or arg current-prefix-arg)))
+            (cond ((> arg 0)
+                   (hycontrol-make-windows-grid arg))
+                  ((< arg 0)
+                   (setq current-prefix-arg nil)
+                   (call-interactively 
#'hycontrol-windows-grid-by-file-pattern))
+                  (t
+                   (setq current-prefix-arg 0)
+                   (call-interactively 
#'hycontrol-windows-grid-by-major-mode)))))))
 
 (defun hycontrol-windows-grid-by-buffer-list (buffers)
   "Display an automatically sized window grid showing list of BUFFERS."



reply via email to

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