]> git.eshelyaron.com Git - emacs.git/commitdiff
Correctly define `select' binding on Android
authorPo Lu <luangruo@yahoo.com>
Thu, 13 Jun 2024 02:46:59 +0000 (10:46 +0800)
committerEshel Yaron <me@eshelyaron.com>
Sat, 15 Jun 2024 17:21:10 +0000 (19:21 +0200)
* lisp/term/android-win.el (input-decode-map): Cease binding
select in the initial frame's input-decode-map.

* src/androidterm.c (android_term_init): Binding select in the
freshly created kboard.
(syms_of_androidterm) <Qselect, Qreturn>: New symbols.

(cherry picked from commit 94bcd7964bbb20bc8ff8a91a9656452a97139d60)

lisp/term/android-win.el
src/androidterm.c

index 0d2d0299282f3e13e4e77d11aa37398d46c4d03f..3e0f71abf91cf710fd55eb19c56f0d0a66a13b61 100644 (file)
@@ -627,9 +627,6 @@ accessible to other programs."
 (global-set-key [\83] #'ignore) ; KEYCODE_NOTIFICATION on pre-Honeycomb
                                 ; releases.
 
-;; `select' key, which I suppose amounts to return.
-(define-key input-decode-map [select] [return])
-
 \f
 (provide 'android-win)
 ;; android-win.el ends here.
index 94a115a66a609a020d37d78eaf77e2e0af8c3f5e..f98da97eeba62b49188aa81b912eea4ef3d78b79 100644 (file)
@@ -33,6 +33,7 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
 #include "textconv.h"
 #include "coding.h"
 #include "pdumper.h"
+#include "keymap.h"
 
 /* This is a chain of structures for all the X displays currently in
    use.  */
@@ -6641,7 +6642,7 @@ android_term_init (void)
   dpyinfo->resx = android_pixel_density_x;
   dpyinfo->resy = android_pixel_density_y;
   dpyinfo->font_resolution = android_scaled_pixel_density;
-#endif /* ANDROID_STUBIFY */
+#endif /* !ANDROID_STUBIFY */
 
   /* https://lists.gnu.org/r/emacs-devel/2015-11/msg00194.html  */
   dpyinfo->smallest_font_height = 1;
@@ -6679,7 +6680,13 @@ android_term_init (void)
 #ifndef ANDROID_STUBIFY
   sem_init (&edit_sem, false, 0);
   register_textconv_interface (&text_conversion_interface);
-#endif
+#endif /* !ANDROID_STUBIFY */
+
+  /* Binding certain key events in the terminal's `input-decode-map',
+     which being keyboard-local is not accessible from any point in
+     android-win.el.  */
+  Fdefine_key (KVAR (terminal->kboard, Vinput_decode_map),
+              make_vector (1, Qselect), Qreturn, Qnil);
 }
 
 \f
@@ -6907,6 +6914,10 @@ for instance, `early-init.el', or they will be of no effect.  */);
   Fput (Qmeta, Qmodifier_value, make_fixnum (meta_modifier));
   DEFSYM (Qsuper, "super");
   Fput (Qsuper, Qmodifier_value, make_fixnum (super_modifier));
+
+  /* Key symbols.  */
+  DEFSYM (Qselect, "select");
+  DEFSYM (Qreturn, "return");
 }
 
 void