2 # User pfalcon@localhost
4 # Node ID ff9cf1fd8177dded04b9fc81ba630203848fc3ca
5 # Parent 96305d94eb31f06f5618c99310192c47c68a1f21
6 Add new modifier: layout. Used to cycle thru all available layouts.
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 },
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);
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;
39 DBG("unknown modifier action");
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
47 *width = max_row_width;
51 +mb_kbd_ui_recalc_ui_layout(MBKeyboardUI *ui)
53 + mb_kbd_ui_allocate_ui_layout(ui,
54 + &ui->base_alloc_width, &ui->base_alloc_height);
56 + mb_kbd_ui_resize(ui, ui->xwin_width, ui->xwin_height);
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)
66 = (MBKeyboardLayout *)util_list_get_nth_data(kb->layouts, 0);
67 + kb->selected_layout_no = 0;
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
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 ? */
84 mb_kbd_ui_init(MBKeyboard *kbd);
87 +mb_kbd_ui_recalc_ui_layout(MBKeyboardUI *ui);
90 mb_kbd_ui_realize(MBKeyboardUI *ui);