2010/1/14 Vladimir Berezenko <span dir="ltr">&lt;<a href="mailto:qmaster@rambler.ru">qmaster@rambler.ru</a>&gt;</span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
 , 14/01/2010  17:28 +0100, Michal Brzozowski :<br>
<div class="im"><br>
&gt; I don&#39;t think you need to change the code, at least it was designed so<br>
&gt; that you don&#39;t have to. Where am I checking shift and capslock in the<br>
&gt; code?<br>
<br>
</div>keymap.cpp:80<br>
<br>
if (first == &quot;shift&quot; &amp;&amp; action!=&quot;capslock&quot;)<br>
  keys[GetFunId(&quot;capslock&quot;)].push_back(k);<br>
<div><div></div><div class="h5"><br><br></div></div></blockquote><div>Ok, sorry, I forgot about it (it&#39;s been a while since I&#39;ve written that part).<br><br>The capslock mode is special in the sense that it copies all keys from the shift mode. That&#39;s what these 2 lines do. It&#39;s so that you don&#39;t have to define every single key in the capslock mode.<br>
<br>The thing that&#39;s special about the shift mode is that it returns to normal mode after a key is pressed. It&#39;s impossible to define this purely in the layout file atm. So your shift_russian mode wouldn&#39;t have that property. This is implemented in the lines 106-108 and 134-137 in keymap.cpp.<br>
<br>So you can change line 107 to sth like if (f == &quot;shift&quot; || f == &quot;shift_russian&quot;) and it will work. Or just check if the prefix is &quot;shift&quot;.<br><br>Unfortunately I&#39;m not able to fix this now in the general case (I&#39;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&#39;ll be available via email every once in a while if you have questions, but I might not be reading this list.<br>
</div></div><br>