[haiku-bugs] Re: [Haiku] #9744: Greek (Extended).Keymap – Greek Polytonic keyboard

  • From: "X512" <trac@xxxxxxxxxxxx>
  • Date: Sat, 15 Jun 2013 01:34:58 -0000

#9744: Greek (Extended).Keymap  –  Greek Polytonic keyboard
----------------------------------+-----------------------------
   Reporter:  greekboy            |      Owner:  axeld
       Type:  enhancement         |     Status:  new
   Priority:  high                |  Milestone:  R1
  Component:  Preferences/Keymap  |    Version:  R1/alpha4.1
 Resolution:                      |   Keywords:  Greek Polytonic
 Blocked By:                      |   Blocking:
Has a Patch:  1                   |   Platform:  All
----------------------------------+-----------------------------

Comment (by X512):

 Replying to [comment:13 greekboy]:
 > My source code is 100% compatible with Greek Polytonic System in
 Windows.
 Nobody says that it is not. Haiku does not try to be Windows-comparible in
 any way. Your solution is specific for Greek language and nothing more.
 Language-specific info should be stored in keymap file and not hardcoded
 in key_map structure.

 Possible solution can be:
 {{{
 struct key_map_ex {
         uint32  version;
         uint32  caps_key;
         uint32  scroll_key;
         uint32  num_key;
         uint32  left_shift_key;
         uint32  right_shift_key;
         uint32  left_command_key;
         uint32  right_command_key;
         uint32  left_control_key;
         uint32  right_control_key;
         uint32  left_option_key;
         uint32  right_option_key;
         uint32  menu_key;
         uint32  lock_settings;
         int32   control_map[128];
         int32   option_caps_shift_map[128];
         int32   option_caps_map[128];
         int32   option_shift_map[128];
         int32   option_map[128];
         int32   caps_shift_map[128];
         int32   caps_map[128];
         int32   shift_map[128];
         int32   normal_map[128];
         uint32  dead_key_count;
         struct {
                 int32 chars;
                 uint32 tables;
         } dead_keys[1];
 };

 void    get_key_map_ex(uint32 version, key_map_ex** _map, char**
 _keyBuffer);
 }}}
 This extension is universal and don't break binary compatability. Also it
 add ability of future extentions.

 Another solution can be adding dead_key_count and dead_keys to the end of
 current key_map structure and don't use "ex" versions. dead_key_count will
 be set to 0 if predefined dead keys is enougth.

--
Ticket URL: <http://dev.haiku-os.org/ticket/9744#comment:14>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: