mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-23 15:49:23 +00:00
Add new flag SHIFT
This commit is contained in:
1 parent
b6f7b4ba03
commit
2111447675
3 files changed
+19
-9
No files matched your search
+4
-2
@@ -20,6 +20,8 @@
|
|||||||
#define GRUB_TERM_HEADER 1
|
#define GRUB_TERM_HEADER 1
|
||||||
|
|
||||||
/* Internal codes used by GRUB to represent terminal input. */
|
/* Internal codes used by GRUB to represent terminal input. */
|
||||||
|
/* Only for keys otherwise not having shifted modification. */
|
||||||
|
#define GRUB_TERM_SHIFT 0x01000000
|
||||||
#define GRUB_TERM_CTRL 0x02000000
|
#define GRUB_TERM_CTRL 0x02000000
|
||||||
#define GRUB_TERM_ALT 0x04000000
|
#define GRUB_TERM_ALT 0x04000000
|
||||||
/* Used by keylayouts code. Never returned in grub_getkey. */
|
/* Used by keylayouts code. Never returned in grub_getkey. */
|
||||||
@@ -27,8 +29,8 @@
|
|||||||
#define GRUB_TERM_CAPS 0x10000000
|
#define GRUB_TERM_CAPS 0x10000000
|
||||||
|
|
||||||
/* Keys without associated character. */
|
/* Keys without associated character. */
|
||||||
#define GRUB_TERM_EXTENDED 0x1000000
|
#define GRUB_TERM_EXTENDED 0x00800000
|
||||||
#define GRUB_TERM_KEY_MASK 0x1ffffff
|
#define GRUB_TERM_KEY_MASK 0x00ffffff
|
||||||
#define GRUB_TERM_KEY_LEFT (GRUB_TERM_EXTENDED | 1)
|
#define GRUB_TERM_KEY_LEFT (GRUB_TERM_EXTENDED | 1)
|
||||||
#define GRUB_TERM_KEY_RIGHT (GRUB_TERM_EXTENDED | 2)
|
#define GRUB_TERM_KEY_RIGHT (GRUB_TERM_EXTENDED | 2)
|
||||||
#define GRUB_TERM_KEY_UP (GRUB_TERM_EXTENDED | 3)
|
#define GRUB_TERM_KEY_UP (GRUB_TERM_EXTENDED | 3)
|
||||||
|
|||||||
+8
-4
@@ -187,10 +187,14 @@ grub_at_keyboard_getkey_noblock (void)
|
|||||||
key = -1;
|
key = -1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if ((at_keyboard_status & (KEYBOARD_STATUS_SHIFT_L
|
if (at_keyboard_status & (KEYBOARD_STATUS_SHIFT_L
|
||||||
| KEYBOARD_STATUS_SHIFT_R))
|
| KEYBOARD_STATUS_SHIFT_R))
|
||||||
&& keyboard_map_shift[code])
|
{
|
||||||
key = keyboard_map_shift[code];
|
if (keyboard_map_shift[code])
|
||||||
|
key = keyboard_map_shift[code];
|
||||||
|
else
|
||||||
|
key = keyboard_map[code] | GRUB_TERM_SHIFT;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
key = keyboard_map[code];
|
key = keyboard_map[code];
|
||||||
|
|
||||||
|
|||||||
+7
-3
@@ -162,10 +162,14 @@ grub_usb_keyboard_checkkey (struct grub_term_input *term __attribute__ ((unused)
|
|||||||
#define GRUB_USB_KEYBOARD_RIGHT_ALT 0x40
|
#define GRUB_USB_KEYBOARD_RIGHT_ALT 0x40
|
||||||
|
|
||||||
/* Check if the Shift key was pressed. */
|
/* Check if the Shift key was pressed. */
|
||||||
if ((data[0] & GRUB_USB_KEYBOARD_LEFT_SHIFT
|
if (data[0] & GRUB_USB_KEYBOARD_LEFT_SHIFT
|
||||||
|| data[0] & GRUB_USB_KEYBOARD_RIGHT_SHIFT)
|
|| data[0] & GRUB_USB_KEYBOARD_RIGHT_SHIFT)
|
||||||
&& keyboard_map_shift[data[2]])
|
{
|
||||||
key = keyboard_map_shift[data[2]];
|
if (keyboard_map_shift[data[2]])
|
||||||
|
key = keyboard_map_shift[data[2]];
|
||||||
|
else
|
||||||
|
key = keyboard_map[data[2]] | GRUB_TERM_SHIFT;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
key = keyboard_map[data[2]];
|
key = keyboard_map[data[2]];
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user