mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-25 09:07:40 +00:00
fix(windows): arrow keys need to select next/prev item in options tab
Fixes #7750.
This commit is contained in:
parent
7c3e7c0d07
commit
446089a8d3
2 changed files with 13 additions and 10 deletions
|
|
@ -76,18 +76,21 @@ document.addEventListener("DOMContentLoaded", windowResize);
|
|||
}
|
||||
break;
|
||||
case 35: // end
|
||||
var elem = event.srcElement.parentElement;
|
||||
var j = elem.children.length - 1;
|
||||
elem.children[j].focus();
|
||||
let elem = event.srcElement.parentElement;
|
||||
for(let i = elem.children.length - 1; i >= 0; i--) {
|
||||
if(elem.children[i].tabIndex != undefined && elem.children[i].tabIndex >= 0) {
|
||||
elem.children[i].focus();
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 36: // home
|
||||
var elem = event.srcElement.parentElement;
|
||||
for( var i = 0; i < elem.children.length; i++ ) {
|
||||
if( elem.children[i].tabIndex ) {
|
||||
if( elem.children[i].tabIndex != undefined && elem.children[i].tabIndex >= 0 ) {
|
||||
elem.children[i].focus();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
case 38: // up
|
||||
|
|
@ -105,7 +108,7 @@ document.addEventListener("DOMContentLoaded", windowResize);
|
|||
j = i;
|
||||
do {
|
||||
if(--j < 0) j = elem.children.length-1;
|
||||
if(elem.children[j].tabIndex)
|
||||
if(elem.children[j].tabIndex != undefined && elem.children[j].tabIndex >= 0)
|
||||
{
|
||||
elem.children[j].focus();
|
||||
list_expanded_selected(elem.children[j]);
|
||||
|
|
@ -131,7 +134,7 @@ document.addEventListener("DOMContentLoaded", windowResize);
|
|||
j = i;
|
||||
do {
|
||||
if(++j >= elem.children.length) j = 0;
|
||||
if(elem.children[j].tabIndex)
|
||||
if(elem.children[j].tabIndex != undefined && elem.children[j].tabIndex >= 0)
|
||||
{
|
||||
elem.children[j].focus();
|
||||
list_expanded_selected(elem.children[j]);
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<div id="options" class="options_list">
|
||||
<xsl:for-each select="//OptionGroups/OptionGroup">
|
||||
<xsl:sort select="sort" />
|
||||
<div class="options_list_header"><xsl:value-of select="$locale/string[@name=current()/name]"/></div>
|
||||
<div class="options_list_header" tabindex="-1"><xsl:value-of select="$locale/string[@name=current()/name]"/></div>
|
||||
<xsl:for-each select="//KeymanOption[group=current()/name]">
|
||||
<xsl:if test="optiontype = 1 and id != 'koAutoSwitchOSKPages'">
|
||||
<xsl:call-template name="option" />
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
<div class="options_list_footer"></div>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<div class="options_list_footer"></div>
|
||||
<div class="options_list_footer" tabindex="-1"></div>
|
||||
|
||||
<div id='options_control'>
|
||||
<xsl:call-template name="button">
|
||||
|
|
@ -97,5 +97,5 @@
|
|||
</div>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
</xsl:stylesheet>
|
||||
Loading…
Add table
Reference in a new issue