History log of /haiku/src/add-ons/input_server/devices/keyboard/Keymap.cpp
Revision Date Author Comments
# 634feff0 05-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Cut off the trailing spaces from the key dump.

* Noticed these on the keymap changes made by John, however, I have no
idea how they did get there (the keymap command doesn't use this code).


# 3cee15aa 28-Mar-2012 John Scipione <jscipione@gmail.com>

Keymap changes from recent activity. No AltGr yet.

Below is a mostly complete summary of the changes in this commit.

* Set the DeadKeys for the US-International Keymap to use the Option map.
* Rename American keymap to US
* Update the US, US-International, and United-Kingdom keymaps to take
out unneeded spaces in the option layer. Also updated the dead keys
and some other keys on the US-International keyboard to use UTF-8
characters rather than there ASCII equivalents when different.
* Make the Option key fall-through when there is no mapping in the Option
table. Option is for special characters, if none, print the regular one.
This is mostly meant for the US keymap which has an empty option map. But
also so that you don't have to repeat the normal, shift, and caps maps in
the option map needlessly. Although the keymaps are still not empty in
some cases that it could be like numpad keys and space.
* Update the /bin/keymap app to use fputs() instead of printf() when there
is no actual formatting taking place. I've gotten into trouble for doing
this before and it is faster to not process the string unnecessarily.
* Also several 80-char limit style fixes and updated comments.
* In Keymap class Reorder the modifier keys to match the keymap files.
Put B_CONTROL_KEY check above B_OPTION_KEY. Neither change has any effect,
they are purely aesthetic.
* Update DumpKeymap() method to use the abbreviated modifier letters so it
will fit in your 80-char wide terminal.
* Tiny style fix in InputServer
* 80-char limit style fix in BWindow and add a comment that the shortcut
gets eaten in the case of Cmd+Q
* Implement IndexForModifier() in KeyboardLayout, although I am not using it.
* Take Caps Lock out of the Modifier keys window because I couldn't get
it to work the way I wanted it to.
* Move key roles to the left column, and the key label on the left. Add column
header labels. Thanks Rimas!
* Add validation and improve marking menu options. Add a 'Disabled' option
to control, option, and command menus to disable the key. Make the key
role text grey if the key roles is disabled. Validation ensures that you
cannot repeat the same key twice in the Modifier keys window since that
won't work. You can't define 2 sets of option keys even if you really want
to. You can disable your control, option, and command keys if you
want, but that is not recommended.
* Rename kUpdateModifiers to kUpdateModifierKeys message to differetiate
it from kUpdateModifier.
* Add shift key to Modifier keys window, use the stop icon instead of the
warning icon to indicate conflicts.
* Allow the Layout system to control the size of the Modifier keys window
again, set the width's of the key role lables to the widest, set the width
of the menu fields to take up the rest of the space minus room for the
conflict views. I didn't like it that the Modifier keys window would change
size based on what options you had selected in the menu fields. Now it
doesn't, but, the layout system still makes it all fit.


# fcde0c62 11-Apr-2011 Jonas Sundström <jonas@kirilla.com>

Cleanup. Removal of superfluous UpdateList() call.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41216 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b44c25de 16-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Factored out a single base class out of the three Keymap implementations we
had in our tree.
* Adapted Keymap, <input>keyboard, and consoled to use it - the additional
functionality is implemented via a subclass in the first two cases.
* "keymap" will come next.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36328 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64e57f07 13-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Added a bit of code to Keymap that lets it load a keymap from disk; I might
unify the three or so version we have of that class into one in the not so
distant future.
* Moved the AT keycode map into its own file.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36259 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cdea942e 15-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* if a dead key sequence does not produce a special character as defined by
the dead key character map - both the dead key itself and the following
character are being sent.
R5 seems to do the same, at least the resulting behaviour in the terminal
is now identical: e.g. if you press ^ once, you see nothing, if you press ^ a
second time, you see '^^'.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30765 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf44fcdb 10-Dec-2008 Rene Gollent <anevilyak@gmail.com>

Updated patch from Olivier Cortes - complete the list of modifier keys that are checked and returned. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28800 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3332e5b7 10-Dec-2008 Rene Gollent <anevilyak@gmail.com>

Correct small style violation.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28798 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 932334b7 10-Dec-2008 Rene Gollent <anevilyak@gmail.com>

Build fix, thanks to Olivier Cortes for submitting!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28797 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3363dbce 24-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

Small coding style correction.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28320 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eb58b5e0 30-Apr-2007 Jérôme Duval <korli@users.berlios.de>

now uses _get_key_map() and check offsets against the size of the array


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20918 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 304d5927 29-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Made the keyboard device more resistant against any kind of error:
* Scancodes greater 255 are now handled correctly, and will no longer crash
the input_server. This fixes bug #830.
* Use new (std:nothrow) instead of a simple new
* Now checks all allocations and appropriately handle failure
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18694 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 718a665b 10-Feb-2006 Jérôme Duval <korli@users.berlios.de>

fix some memory leaks (part of bug #140


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16322 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02bf3b7c 15-Jul-2005 Jérôme Duval <korli@users.berlios.de>

added some checks, this shouldn't be needed with a consistent keymap, but as we don't want to crash in this case ... (could help DarkWyrm)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13692 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca471994 24-Oct-2004 Jérôme Duval <korli@users.berlios.de>

added initial team monitor
fixed device naming


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 421f4885 16-Sep-2004 Jérôme Duval <korli@users.berlios.de>

Support for LEDS
Support for keymap reloading


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8992 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5447827d 14-Sep-2004 Jérôme Duval <korli@users.berlios.de>

Added key events generation
Working!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8949 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da4ca8a4 06-Sep-2004 Jérôme Duval <korli@users.berlios.de>

added keymap


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8880 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 634feff0e97e3d0e60976eb7a27938743440506b 05-Nov-2012 Axel Dörfler <axeld@pinc-software.de>

Cut off the trailing spaces from the key dump.

* Noticed these on the keymap changes made by John, however, I have no
idea how they did get there (the keymap command doesn't use this code).


# 3cee15aac2ef8c6ae8975d9add34c36aa4224c29 28-Mar-2012 John Scipione <jscipione@gmail.com>

Keymap changes from recent activity. No AltGr yet.

Below is a mostly complete summary of the changes in this commit.

* Set the DeadKeys for the US-International Keymap to use the Option map.
* Rename American keymap to US
* Update the US, US-International, and United-Kingdom keymaps to take
out unneeded spaces in the option layer. Also updated the dead keys
and some other keys on the US-International keyboard to use UTF-8
characters rather than there ASCII equivalents when different.
* Make the Option key fall-through when there is no mapping in the Option
table. Option is for special characters, if none, print the regular one.
This is mostly meant for the US keymap which has an empty option map. But
also so that you don't have to repeat the normal, shift, and caps maps in
the option map needlessly. Although the keymaps are still not empty in
some cases that it could be like numpad keys and space.
* Update the /bin/keymap app to use fputs() instead of printf() when there
is no actual formatting taking place. I've gotten into trouble for doing
this before and it is faster to not process the string unnecessarily.
* Also several 80-char limit style fixes and updated comments.
* In Keymap class Reorder the modifier keys to match the keymap files.
Put B_CONTROL_KEY check above B_OPTION_KEY. Neither change has any effect,
they are purely aesthetic.
* Update DumpKeymap() method to use the abbreviated modifier letters so it
will fit in your 80-char wide terminal.
* Tiny style fix in InputServer
* 80-char limit style fix in BWindow and add a comment that the shortcut
gets eaten in the case of Cmd+Q
* Implement IndexForModifier() in KeyboardLayout, although I am not using it.
* Take Caps Lock out of the Modifier keys window because I couldn't get
it to work the way I wanted it to.
* Move key roles to the left column, and the key label on the left. Add column
header labels. Thanks Rimas!
* Add validation and improve marking menu options. Add a 'Disabled' option
to control, option, and command menus to disable the key. Make the key
role text grey if the key roles is disabled. Validation ensures that you
cannot repeat the same key twice in the Modifier keys window since that
won't work. You can't define 2 sets of option keys even if you really want
to. You can disable your control, option, and command keys if you
want, but that is not recommended.
* Rename kUpdateModifiers to kUpdateModifierKeys message to differetiate
it from kUpdateModifier.
* Add shift key to Modifier keys window, use the stop icon instead of the
warning icon to indicate conflicts.
* Allow the Layout system to control the size of the Modifier keys window
again, set the width's of the key role lables to the widest, set the width
of the menu fields to take up the rest of the space minus room for the
conflict views. I didn't like it that the Modifier keys window would change
size based on what options you had selected in the menu fields. Now it
doesn't, but, the layout system still makes it all fit.


# fcde0c6292166ba7cdf22028a20a5fa61bf45a36 11-Apr-2011 Jonas Sundström <jonas@kirilla.com>

Cleanup. Removal of superfluous UpdateList() call.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41216 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b44c25de42ce39022f701d5637797b2f57e63679 16-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Factored out a single base class out of the three Keymap implementations we
had in our tree.
* Adapted Keymap, <input>keyboard, and consoled to use it - the additional
functionality is implemented via a subclass in the first two cases.
* "keymap" will come next.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36328 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 64e57f07ce6c09400c5515447e149e5cafbe46db 13-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Added a bit of code to Keymap that lets it load a keymap from disk; I might
unify the three or so version we have of that class into one in the not so
distant future.
* Moved the AT keycode map into its own file.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36259 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cdea942eea9e157eb9d9edd79e32e64f4f0c8028 15-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* if a dead key sequence does not produce a special character as defined by
the dead key character map - both the dead key itself and the following
character are being sent.
R5 seems to do the same, at least the resulting behaviour in the terminal
is now identical: e.g. if you press ^ once, you see nothing, if you press ^ a
second time, you see '^^'.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30765 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf44fcdb5286615c17856a3c00b058235441c758 10-Dec-2008 Rene Gollent <anevilyak@gmail.com>

Updated patch from Olivier Cortes - complete the list of modifier keys that are checked and returned. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28800 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3332e5b7968a12fd6074d5d9293fe27f1f617fe2 10-Dec-2008 Rene Gollent <anevilyak@gmail.com>

Correct small style violation.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28798 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 932334b709d2172f799ac5b5afd5ae2370dce2da 10-Dec-2008 Rene Gollent <anevilyak@gmail.com>

Build fix, thanks to Olivier Cortes for submitting!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28797 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3363dbce1f6bbead9a60338ee24ed7f920a56714 24-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

Small coding style correction.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28320 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eb58b5e020ae89b379630bf164691d3de9f84ba9 30-Apr-2007 Jérôme Duval <korli@users.berlios.de>

now uses _get_key_map() and check offsets against the size of the array


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20918 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 304d5927608dfb5379a1e9bd0f51018c1cd4265b 29-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Made the keyboard device more resistant against any kind of error:
* Scancodes greater 255 are now handled correctly, and will no longer crash
the input_server. This fixes bug #830.
* Use new (std:nothrow) instead of a simple new
* Now checks all allocations and appropriately handle failure
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18694 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 718a665ba9da9d6c87abd9fc55dffa4c3f8a5b33 10-Feb-2006 Jérôme Duval <korli@users.berlios.de>

fix some memory leaks (part of bug #140


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16322 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 02bf3b7c1393c507539a21b312dadff4eae1d270 15-Jul-2005 Jérôme Duval <korli@users.berlios.de>

added some checks, this shouldn't be needed with a consistent keymap, but as we don't want to crash in this case ... (could help DarkWyrm)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13692 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca4719945cca2b11ef198b205c490fb96bddee9a 24-Oct-2004 Jérôme Duval <korli@users.berlios.de>

added initial team monitor
fixed device naming


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 421f4885ed0e313b6760dec03313ce1a7d6ce8ef 16-Sep-2004 Jérôme Duval <korli@users.berlios.de>

Support for LEDS
Support for keymap reloading


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8992 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5447827d2469696216f35f86b0a860c6ee93e58f 14-Sep-2004 Jérôme Duval <korli@users.berlios.de>

Added key events generation
Working!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8949 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da4ca8a49e384fa42fbecec4b15b3b0fa1699cba 06-Sep-2004 Jérôme Duval <korli@users.berlios.de>

added keymap


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8880 a95241bf-73f2-0310-859d-f6bbb57e9c96