2010/1/14 Vladimir Berezenko <qmas...@rambler.ru> > В Чтв, 14/01/2010 в 17:28 +0100, Michal Brzozowski пишет: > > > I don't think you need to change the code, at least it was designed so > > that you don't have to. Where am I checking shift and capslock in the > > code? > > keymap.cpp:80 > > if (first == "shift" && action!="capslock") > keys[GetFunId("capslock")].push_back(k); > > > Ok, sorry, I forgot about it (it's been a while since I've written that part).
The capslock mode is special in the sense that it copies all keys from the shift mode. That's what these 2 lines do. It's so that you don't have to define every single key in the capslock mode. The thing that's special about the shift mode is that it returns to normal mode after a key is pressed. It's impossible to define this purely in the layout file atm. So your shift_russian mode wouldn't have that property. This is implemented in the lines 106-108 and 134-137 in keymap.cpp. So you can change line 107 to sth like if (f == "shift" || f == "shift_russian") and it will work. Or just check if the prefix is "shift". Unfortunately I'm not able to fix this now in the general case (I'll be travelling for the next few months). If you have an idea for a fix (so you can define the keep_fun property in the layout file), feel free to release a new version. I'll be available via email every once in a while if you have questions, but I might not be reading this list.
_______________________________________________ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community