8aae3a02037581c8642f371818addfb6802bb0b4
[openembedded.git] /
1 # HG changeset patch
2 # User pfalcon@localhost
3 # Date 1176076569 0
4 # Node ID ff9cf1fd8177dded04b9fc81ba630203848fc3ca
5 # Parent  96305d94eb31f06f5618c99310192c47c68a1f21
6 Add new modifier: layout. Used to cycle thru all available layouts.
7
8 diff -r 96305d94eb31 -r ff9cf1fd8177 src/config-parser.c
9 --- a/src/config-parser.c       Sun Apr 08 23:28:43 2007 +0000
10 +++ b/src/config-parser.c       Sun Apr 08 23:56:09 2007 +0000
11 @@ -113,7 +113,8 @@ ModLookup[] =
12    { "mod1",    MBKeyboardKeyModMod1 },
13    { "mod2",    MBKeyboardKeyModMod2 },
14    { "mod3",    MBKeyboardKeyModMod3 },
15 -  { "caps",    MBKeyboardKeyModCaps }
16 +  { "caps",    MBKeyboardKeyModCaps },
17 +  { "layout",  MBKeyboardKeyModLayout },
18  };
19  
20  typedef struct MBKeyboardConfigState
21 diff -r 96305d94eb31 -r ff9cf1fd8177 src/matchbox-keyboard-key.c
22 --- a/src/matchbox-keyboard-key.c       Sun Apr 08 23:28:43 2007 +0000
23 +++ b/src/matchbox-keyboard-key.c       Sun Apr 08 23:56:09 2007 +0000
24 @@ -493,6 +493,16 @@ mb_kbd_key_press(MBKeyboardKey *key)
25           case MBKeyboardKeyModAlt:
26             mb_kbd_toggle_state(key->kbd, MBKeyboardStateAlt);
27             break;
28 +         case MBKeyboardKeyModLayout:
29 +           key->kbd->selected_layout_no++;
30 +           if (key->kbd->selected_layout_no >= util_list_length(key->kbd->layouts))
31 +             key->kbd->selected_layout_no = 0;
32 +           key->kbd->selected_layout = 
33 +             (MBKeyboardLayout *)util_list_get_nth_data(key->kbd->layouts, 
34 +                                                        key->kbd->selected_layout_no);
35 +           mb_kbd_ui_recalc_ui_layout(key->kbd->ui);
36 +           queue_full_kbd_redraw = True;
37 +           break;
38           default:
39             DBG("unknown modifier action");
40             break;
41 diff -r 96305d94eb31 -r ff9cf1fd8177 src/matchbox-keyboard-ui.c
42 --- a/src/matchbox-keyboard-ui.c        Sun Apr 08 23:28:43 2007 +0000
43 +++ b/src/matchbox-keyboard-ui.c        Sun Apr 08 23:56:09 2007 +0000
44 @@ -505,6 +505,15 @@ mb_kbd_ui_allocate_ui_layout(MBKeyboardU
45      }
46    
47    *width = max_row_width;
48 +}
49 +
50 +void
51 +mb_kbd_ui_recalc_ui_layout(MBKeyboardUI *ui)
52 +{
53 +  mb_kbd_ui_allocate_ui_layout(ui,
54 +                               &ui->base_alloc_width, &ui->base_alloc_height);
55 +
56 +  mb_kbd_ui_resize(ui, ui->xwin_width, ui->xwin_height); 
57  }
58  
59  void
60 diff -r 96305d94eb31 -r ff9cf1fd8177 src/matchbox-keyboard.c
61 --- a/src/matchbox-keyboard.c   Sun Apr 08 23:28:43 2007 +0000
62 +++ b/src/matchbox-keyboard.c   Sun Apr 08 23:56:09 2007 +0000
63 @@ -85,6 +85,7 @@ mb_kbd_new (int argc, char **argv)
64  
65    kb->selected_layout 
66      = (MBKeyboardLayout *)util_list_get_nth_data(kb->layouts, 0);
67 +  kb->selected_layout_no = 0;
68  
69    if (want_embedding)
70      mb_kbd_ui_set_embeded( kb->ui, True );
71 diff -r 96305d94eb31 -r ff9cf1fd8177 src/matchbox-keyboard.h
72 --- a/src/matchbox-keyboard.h   Sun Apr 08 23:28:43 2007 +0000
73 +++ b/src/matchbox-keyboard.h   Sun Apr 08 23:56:09 2007 +0000
74 @@ -153,6 +153,7 @@
75    char                  *config_file;
76    List                  *layouts;
77    MBKeyboardLayout      *selected_layout;
78 +  int                  selected_layout_no;
79    int                    key_border, key_pad, key_margin;
80    int                    row_spacing, col_spacing;
81    boolean                extended; /* are we showing extended keys ? */
82 @@ -179,6 +180,9 @@
83  int
84  mb_kbd_ui_init(MBKeyboard *kbd);
85  
86 +void
87 +mb_kbd_ui_recalc_ui_layout(MBKeyboardUI *ui);
88 +
89  int
90  mb_kbd_ui_realize(MBKeyboardUI  *ui);
91