Fix hint manager
This commit is contained in:
parent
7eabfe94af
commit
a6134b58a1
|
@ -374,11 +374,14 @@ Common.UI.HintManager = new(function() {
|
||||||
_api.asc_enableKeyEvents(true);
|
_api.asc_enableKeyEvents(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (_hintVisible) {
|
||||||
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
_isAlt = false;
|
_isAlt = false;
|
||||||
});
|
});
|
||||||
$(document).on('keydown', function(e) {
|
$(document).on('keydown', function(e) {
|
||||||
if (_hintVisible) {
|
if (_hintVisible) {
|
||||||
|
e.preventDefault();
|
||||||
if (e.keyCode == Common.UI.Keys.ESC ) {
|
if (e.keyCode == Common.UI.Keys.ESC ) {
|
||||||
if (_currentLevel === 0) {
|
if (_currentLevel === 0) {
|
||||||
_hideHints();
|
_hideHints();
|
||||||
|
@ -389,66 +392,71 @@ Common.UI.HintManager = new(function() {
|
||||||
_showHints();
|
_showHints();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var curr;
|
var curLetter = null;
|
||||||
var curLetter = _lang === 'en' ? String.fromCharCode(e.keyCode) : e.key;
|
var keyCode = e.keyCode;
|
||||||
if (_lang !== 'en' && _arrAlphabet.indexOf(curLetter.toLowerCase()) === -1) {
|
if (keyCode !== 16 && keyCode !== 17 && keyCode !== 18 && keyCode !== 91) {
|
||||||
var ind = _arrEnQwerty.indexOf(curLetter.toLowerCase());
|
curLetter = _lang === 'en' ? ((keyCode > 47 && keyCode < 58 || keyCode > 64 && keyCode < 91) ? String.fromCharCode(e.keyCode) : null) : e.key;
|
||||||
if (ind !== -1) {
|
|
||||||
curLetter = _arrQwerty[ind];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_inputLetters = _inputLetters + curLetter.toUpperCase();
|
if (curLetter) {
|
||||||
for (var i = 0; i < _currentControls.length; i++) {
|
var curr;
|
||||||
var item = _currentControls[i];
|
if (_lang !== 'en' && _arrAlphabet.indexOf(curLetter.toLowerCase()) === -1) {
|
||||||
if (!_isItemDisabled(item) && item.attr('data-hint-title') === _inputLetters) {
|
var ind = _arrEnQwerty.indexOf(curLetter.toLowerCase());
|
||||||
curr = item;
|
if (ind !== -1) {
|
||||||
break;
|
curLetter = _arrQwerty[ind];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
_inputLetters = _inputLetters + curLetter.toUpperCase();
|
||||||
if (curr) {
|
for (var i = 0; i < _currentControls.length; i++) {
|
||||||
var tag = curr.prop("tagName").toLowerCase();
|
var item = _currentControls[i];
|
||||||
if (window.SSE && curr.parent().prop('id') === 'statusbar_bottom') {
|
if (!_isItemDisabled(item) && item.attr('data-hint-title') === _inputLetters) {
|
||||||
_hideHints();
|
curr = item;
|
||||||
curr.contextmenu();
|
break;
|
||||||
_resetToDefault();
|
}
|
||||||
} else if (tag === 'input' || tag === 'textarea') {
|
}
|
||||||
_hideHints();
|
if (curr) {
|
||||||
curr.trigger(jQuery.Event('click', {which: 1}));
|
var tag = curr.prop("tagName").toLowerCase();
|
||||||
curr.focus();
|
if (window.SSE && curr.parent().prop('id') === 'statusbar_bottom') {
|
||||||
_resetToDefault();
|
_hideHints();
|
||||||
} else {
|
curr.contextmenu();
|
||||||
_isComplete = false;
|
_resetToDefault();
|
||||||
_hideHints();
|
} else if (tag === 'input' || tag === 'textarea') {
|
||||||
if (!curr.attr('content-target') || (curr.attr('content-target') && !$(`#${curr.attr('content-target')}`).is(':visible'))) { // need to open panel
|
_hideHints();
|
||||||
if (!($('#file-menu-panel').is(':visible') && (curr.parent().prop('id') === 'fm-btn-info' && $('#panel-info').is(':visible') ||
|
curr.trigger(jQuery.Event('click', {which: 1}));
|
||||||
curr.parent().prop('id') === 'fm-btn-settings' && $('#panel-settings').is(':visible')))) {
|
curr.focus();
|
||||||
if (curr.attr('for')) { // to trigger event in checkbox
|
_resetToDefault();
|
||||||
$(`#${curr.attr('for')}`).trigger(jQuery.Event('click', {which: 1}));
|
} else {
|
||||||
} else {
|
_isComplete = false;
|
||||||
curr.trigger(jQuery.Event('click', {which: 1}));
|
_hideHints();
|
||||||
|
if (!curr.attr('content-target') || (curr.attr('content-target') && !$(`#${curr.attr('content-target')}`).is(':visible'))) { // need to open panel
|
||||||
|
if (!($('#file-menu-panel').is(':visible') && (curr.parent().prop('id') === 'fm-btn-info' && $('#panel-info').is(':visible') ||
|
||||||
|
curr.parent().prop('id') === 'fm-btn-settings' && $('#panel-settings').is(':visible')))) {
|
||||||
|
if (curr.attr('for')) { // to trigger event in checkbox
|
||||||
|
$(`#${curr.attr('for')}`).trigger(jQuery.Event('click', {which: 1}));
|
||||||
|
} else {
|
||||||
|
curr.trigger(jQuery.Event('click', {which: 1}));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if (curr.prop('id') === 'btn-goback' || curr.closest('.btn-slot').prop('id') === 'slot-btn-options' || curr.prop('id') === 'left-btn-thumbs') {
|
||||||
if (curr.prop('id') === 'btn-goback' || curr.closest('.btn-slot').prop('id') === 'slot-btn-options' || curr.prop('id') === 'left-btn-thumbs') {
|
_resetToDefault();
|
||||||
_resetToDefault();
|
return;
|
||||||
return;
|
}
|
||||||
}
|
if (curr.prop('id') === 'add-comment-doc') {
|
||||||
if (curr.prop('id') === 'add-comment-doc') {
|
_removeHints();
|
||||||
_removeHints();
|
_currentHints.length = 0;
|
||||||
_currentHints.length = 0;
|
_currentControls.length = 0;
|
||||||
_currentControls.length = 0;
|
_showHints();
|
||||||
_showHints();
|
return;
|
||||||
return;
|
}
|
||||||
}
|
if (!_isComplete) {
|
||||||
if (!_isComplete) {
|
_nextLevel();
|
||||||
_nextLevel();
|
_setCurrentSection(curr);
|
||||||
_setCurrentSection(curr);
|
_showHints();
|
||||||
_showHints();
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
e.preventDefault();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_isAlt = (e.keyCode == Common.UI.Keys.ALT);
|
_isAlt = (e.keyCode == Common.UI.Keys.ALT);
|
||||||
|
|
|
@ -71,7 +71,13 @@
|
||||||
var key, handler, k, i, modifiersMatch, scope;
|
var key, handler, k, i, modifiersMatch, scope;
|
||||||
key = event.keyCode;
|
key = event.keyCode;
|
||||||
|
|
||||||
if (key !== 27 && Common.UI.HintManager.isHintVisible()) return;
|
if (Common.UI.HintManager.isHintVisible()) {
|
||||||
|
if (key === 112) {
|
||||||
|
Common.UI.HintManager.clearHints();
|
||||||
|
} else if (key !== 27) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (index(_downKeys, key) == -1) {
|
if (index(_downKeys, key) == -1) {
|
||||||
_downKeys.push(key);
|
_downKeys.push(key);
|
||||||
|
|
|
@ -229,6 +229,8 @@ define([
|
||||||
};
|
};
|
||||||
|
|
||||||
var onContextMenu = function(event){
|
var onContextMenu = function(event){
|
||||||
|
if (Common.UI.HintManager.isHintVisible())
|
||||||
|
Common.UI.HintManager.clearHints();
|
||||||
_.delay(function(){
|
_.delay(function(){
|
||||||
if (event.get_Type() == 0) {
|
if (event.get_Type() == 0) {
|
||||||
showObjectMenu.call(me, event);
|
showObjectMenu.call(me, event);
|
||||||
|
|
|
@ -219,6 +219,8 @@ define([
|
||||||
};
|
};
|
||||||
|
|
||||||
var onContextMenu = function(event){
|
var onContextMenu = function(event){
|
||||||
|
if (Common.UI.HintManager.isHintVisible())
|
||||||
|
Common.UI.HintManager.clearHints();
|
||||||
_.delay(function(){
|
_.delay(function(){
|
||||||
if (event.get_Type() == Asc.c_oAscContextMenuTypes.Thumbnails) {
|
if (event.get_Type() == Asc.c_oAscContextMenuTypes.Thumbnails) {
|
||||||
showPopupMenu.call(me, (me.mode.isEdit && !me._isDisabled) ? me.slideMenu : me.viewModeMenuSlide, {isSlideSelect: event.get_IsSlideSelect(), isSlideHidden: event.get_IsSlideHidden(), fromThumbs: true}, event);
|
showPopupMenu.call(me, (me.mode.isEdit && !me._isDisabled) ? me.slideMenu : me.viewModeMenuSlide, {isSlideSelect: event.get_IsSlideSelect(), isSlideHidden: event.get_IsSlideHidden(), fromThumbs: true}, event);
|
||||||
|
|
|
@ -1582,6 +1582,8 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
onApiContextMenu: function(event) {
|
onApiContextMenu: function(event) {
|
||||||
|
if (Common.UI.HintManager.isHintVisible())
|
||||||
|
Common.UI.HintManager.clearHints();
|
||||||
var me = this;
|
var me = this;
|
||||||
_.delay(function(){
|
_.delay(function(){
|
||||||
me.showObjectMenu.call(me, event);
|
me.showObjectMenu.call(me, event);
|
||||||
|
|
Loading…
Reference in a new issue