listbox hotkeys

Mike Smithson mdooligan at gmail.com
Sun May 24 17:32:52 UTC 2015


I use Directory hotlist a lot. Constantly, really.

It's always bugged me that I can only access the
first 10 items with the keys 0-9. After sitting on
my TODO list for about 2 years, I finally had a
scratch at the issue.

Keys a-z are very often used by the menu of the
dialog the listbox is in, but keys A-Z are not.

So I did this:

[code]
--- lib/widget/listbox.c~       2015-03-20 11:06:04.000000000 -0700
+++ lib/widget/listbox.c        2015-05-24 09:21:52.000000000 -0700
@@ -328,10 +328,15 @@ listbox_key (WListbox * l, int key)
          return MSG_NOT_HANDLED;

      /* focus on listbox item N by '0'..'9' keys */
-    if (key >= '0' && key <= '9')
+    if ((key >= '0' && key <= '9')||(key >= 'A' && key <= 'Z'))
      {
          int oldpos = l->pos;
-        listbox_select_entry (l, key - '0');
+        if (key >= 'A' && key <= 'Z') {
+            listbox_select_entry (l, key - 55);
+        } else {
+            listbox_select_entry (l, key - '0');
+        }
+

          /* need scroll to item? */
          if (abs (oldpos - l->pos) > WIDGET (l)->lines)
[/code]
Diffed from 4.8.14 tarball.

It seems to work fine. Now I can access the top 36
items instead of just the top 10. But, of course, it
affects all listboxes program-wide. It seems OK to me
so far.

My question this:

Does this seem like a useful feature (ie ticket-worthy)
or am I missing some far-reaching consequence I have not
uncovered yet?



-- 
Peace and Cheer



More information about the mc-devel mailing list