[DE] For Bug 42393
This commit is contained in:
parent
03cdfcfe56
commit
bb7f081dcf
|
@ -36,7 +36,8 @@
|
||||||
return _MAP[x] || x.toUpperCase().charCodeAt(0);
|
return _MAP[x] || x.toUpperCase().charCodeAt(0);
|
||||||
},
|
},
|
||||||
_downKeys = [];
|
_downKeys = [];
|
||||||
var locked;
|
var locked,
|
||||||
|
propagate;
|
||||||
|
|
||||||
for(k=1;k<20;k++) _MAP['f'+k] = 111+k;
|
for(k=1;k<20;k++) _MAP['f'+k] = 111+k;
|
||||||
|
|
||||||
|
@ -116,6 +117,8 @@
|
||||||
// call the handler and stop the event if neccessary
|
// call the handler and stop the event if neccessary
|
||||||
if((handler.mods.length == 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91]) || modifiersMatch){
|
if((handler.mods.length == 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91]) || modifiersMatch){
|
||||||
if(locked===true || handler.locked || handler.method(event, handler)===false){
|
if(locked===true || handler.locked || handler.method(event, handler)===false){
|
||||||
|
if (locked===true && propagate || handler.locked && handler.propagate)
|
||||||
|
continue;
|
||||||
if(event.preventDefault) event.preventDefault();
|
if(event.preventDefault) event.preventDefault();
|
||||||
else event.returnValue = false;
|
else event.returnValue = false;
|
||||||
if(event.stopPropagation) event.stopPropagation();
|
if(event.stopPropagation) event.stopPropagation();
|
||||||
|
@ -320,12 +323,23 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function suspend(key, scope) {
|
function suspend(key, scope, pass) {
|
||||||
key ? setKeyOptions(key, scope, 'locked', true) : (locked = true);
|
if (key) {
|
||||||
|
setKeyOptions(key, scope, 'locked', true)
|
||||||
|
pass && setKeyOptions(key, scope, 'propagate', true)
|
||||||
|
} else {
|
||||||
|
locked = true;
|
||||||
|
pass && (propagate = true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function resume(key, scope) {
|
function resume(key, scope) {
|
||||||
key ? setKeyOptions(key, scope, 'locked', false) : (locked = false);
|
if (key) {
|
||||||
|
setKeyOptions(key, scope, 'locked', false)
|
||||||
|
setKeyOptions(key, scope, 'propagate', false)
|
||||||
|
} else {
|
||||||
|
locked = propagate = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// set window.key and window.key.set/get/deleteScope, and the default filter
|
// set window.key and window.key.set/get/deleteScope, and the default filter
|
||||||
|
|
|
@ -148,8 +148,8 @@ Common.util = Common.util||{};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
suspendEvents: function(key,scope) {
|
suspendEvents: function(key,scope,propagate) {
|
||||||
window.key.suspend(key,scope);
|
window.key.suspend(key,scope,propagate);
|
||||||
},
|
},
|
||||||
|
|
||||||
resumeEvents: function(key,scope) {
|
resumeEvents: function(key,scope) {
|
||||||
|
|
|
@ -143,7 +143,8 @@ define([
|
||||||
me.userTooltip = true;
|
me.userTooltip = true;
|
||||||
me.wrapEvents = {
|
me.wrapEvents = {
|
||||||
userTipMousover: _.bind(me.userTipMousover, me),
|
userTipMousover: _.bind(me.userTipMousover, me),
|
||||||
userTipMousout: _.bind(me.userTipMousout, me)
|
userTipMousout: _.bind(me.userTipMousout, me),
|
||||||
|
onKeyUp: _.bind(me.onKeyUp, me)
|
||||||
};
|
};
|
||||||
|
|
||||||
var keymap = {};
|
var keymap = {};
|
||||||
|
@ -642,6 +643,9 @@ define([
|
||||||
var me = this;
|
var me = this;
|
||||||
if (me.api){
|
if (me.api){
|
||||||
var key = event.keyCode;
|
var key = event.keyCode;
|
||||||
|
if (me.hkSpecPaste) {
|
||||||
|
me._needShowSpecPasteMenu = !event.shiftKey && !event.altKey && event.keyCode == Common.UI.Keys.CTRL;
|
||||||
|
}
|
||||||
if ((event.ctrlKey || event.metaKey) && !event.shiftKey && !event.altKey){
|
if ((event.ctrlKey || event.metaKey) && !event.shiftKey && !event.altKey){
|
||||||
if (key === Common.UI.Keys.NUM_PLUS || key === Common.UI.Keys.EQUALITY || (Common.Utils.isGecko && key === Common.UI.Keys.EQUALITY_FF) || (Common.Utils.isOpera && key == 43)){
|
if (key === Common.UI.Keys.NUM_PLUS || key === Common.UI.Keys.EQUALITY || (Common.Utils.isGecko && key === Common.UI.Keys.EQUALITY_FF) || (Common.Utils.isOpera && key == 43)){
|
||||||
me.api.zoomIn();
|
me.api.zoomIn();
|
||||||
|
@ -1086,8 +1090,10 @@ define([
|
||||||
parentEl: $('#id-document-holder-btn-special-paste'),
|
parentEl: $('#id-document-holder-btn-special-paste'),
|
||||||
cls : 'btn-toolbar',
|
cls : 'btn-toolbar',
|
||||||
iconCls : 'toolbar__icon btn-paste',
|
iconCls : 'toolbar__icon btn-paste',
|
||||||
|
caption : Common.Utils.String.platformKey('Ctrl', '({0})'),
|
||||||
menu : new Common.UI.Menu({items: []})
|
menu : new Common.UI.Menu({items: []})
|
||||||
});
|
});
|
||||||
|
me.initSpecialPasteEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pasteItems.length>0) {
|
if (pasteItems.length>0) {
|
||||||
|
@ -1100,20 +1106,18 @@ define([
|
||||||
var group_prev = -1;
|
var group_prev = -1;
|
||||||
_.each(pasteItems, function(menuItem, index) {
|
_.each(pasteItems, function(menuItem, index) {
|
||||||
var mnu = new Common.UI.MenuItem({
|
var mnu = new Common.UI.MenuItem({
|
||||||
caption: me._arrSpecialPaste[menuItem],
|
caption: me._arrSpecialPaste[menuItem] + ' (' + me.hkSpecPaste[menuItem] + ')',
|
||||||
value: menuItem,
|
value: menuItem,
|
||||||
checkable: true,
|
checkable: true,
|
||||||
toggleGroup : 'specialPasteGroup'
|
toggleGroup : 'specialPasteGroup'
|
||||||
}).on('click', function(item, e) {
|
}).on('click', _.bind(me.onSpecialPasteItemClick, me));
|
||||||
me.api.asc_SpecialPaste(item.value);
|
|
||||||
setTimeout(function(){menu.hide();}, 100);
|
|
||||||
});
|
|
||||||
menu.addItem(mnu);
|
menu.addItem(mnu);
|
||||||
});
|
});
|
||||||
(menu.items.length>0) && menu.items[0].setChecked(true, true);
|
(menu.items.length>0) && menu.items[0].setChecked(true, true);
|
||||||
}
|
}
|
||||||
if (coord.asc_getX()<0 || coord.asc_getY()<0) {
|
if (coord.asc_getX()<0 || coord.asc_getY()<0) {
|
||||||
if (pasteContainer.is(':visible')) pasteContainer.hide();
|
if (pasteContainer.is(':visible')) pasteContainer.hide();
|
||||||
|
$(document).off('keyup', this.wrapEvents.onKeyUp);
|
||||||
} else {
|
} else {
|
||||||
var showPoint = [coord.asc_getX() + coord.asc_getWidth() + 3, coord.asc_getY() + coord.asc_getHeight() + 3];
|
var showPoint = [coord.asc_getX() + coord.asc_getWidth() + 3, coord.asc_getY() + coord.asc_getHeight() + 3];
|
||||||
if (!Common.Utils.InternalSettings.get("de-hidden-rulers")) {
|
if (!Common.Utils.InternalSettings.get("de-hidden-rulers")) {
|
||||||
|
@ -1121,13 +1125,54 @@ define([
|
||||||
}
|
}
|
||||||
pasteContainer.css({left: showPoint[0], top : showPoint[1]});
|
pasteContainer.css({left: showPoint[0], top : showPoint[1]});
|
||||||
pasteContainer.show();
|
pasteContainer.show();
|
||||||
|
setTimeout(function() {
|
||||||
|
$(document).on('keyup', me.wrapEvents.onKeyUp);
|
||||||
|
}, 10);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onHideSpecialPasteOptions: function() {
|
onHideSpecialPasteOptions: function() {
|
||||||
var pasteContainer = this.documentHolder.cmpEl.find('#special-paste-container');
|
var pasteContainer = this.documentHolder.cmpEl.find('#special-paste-container');
|
||||||
if (pasteContainer.is(':visible'))
|
if (pasteContainer.is(':visible')) {
|
||||||
pasteContainer.hide();
|
pasteContainer.hide();
|
||||||
|
$(document).off('keyup', this.wrapEvents.onKeyUp);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onKeyUp: function (e) {
|
||||||
|
if (e.keyCode == Common.UI.Keys.CTRL && this._needShowSpecPasteMenu && !this.btnSpecialPaste.menu.isVisible() && /area_id/.test(e.target.id)) {
|
||||||
|
$('button', this.btnSpecialPaste.cmpEl).click();
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
this._needShowSpecPasteMenu = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
initSpecialPasteEvents: function() {
|
||||||
|
var me = this;
|
||||||
|
me.hkSpecPaste = [];
|
||||||
|
me.hkSpecPaste[Asc.c_oSpecialPasteProps.paste] = 'P';
|
||||||
|
me.hkSpecPaste[Asc.c_oSpecialPasteProps.sourceformatting] = 'K';
|
||||||
|
me.hkSpecPaste[Asc.c_oSpecialPasteProps.keepTextOnly] = 'T';
|
||||||
|
me.hkSpecPaste[Asc.c_oSpecialPasteProps.insertAsNestedTable] = 'N';
|
||||||
|
me.hkSpecPaste[Asc.c_oSpecialPasteProps.overwriteCells] = 'O';
|
||||||
|
for(var key in me.hkSpecPaste){
|
||||||
|
if(me.hkSpecPaste.hasOwnProperty(key)){
|
||||||
|
var keymap = {};
|
||||||
|
keymap[me.hkSpecPaste[key]] = _.bind(me.onSpecialPasteItemClick, me, {value: parseInt(key)});
|
||||||
|
Common.util.Shortcuts.delegateShortcuts({shortcuts:keymap});
|
||||||
|
Common.util.Shortcuts.suspendEvents(me.hkSpecPaste[key], undefined, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
me.btnSpecialPaste.menu.on('show:after', function(menu) {
|
||||||
|
for (var i = 0; i < menu.items.length; i++) {
|
||||||
|
me.hkSpecPaste[menu.items[i].value] && Common.util.Shortcuts.resumeEvents(me.hkSpecPaste[menu.items[i].value]);
|
||||||
|
}
|
||||||
|
}).on('hide:after', function(menu) {
|
||||||
|
for (var i = 0; i < menu.items.length; i++) {
|
||||||
|
me.hkSpecPaste[menu.items[i].value] && Common.util.Shortcuts.suspendEvents(me.hkSpecPaste[menu.items[i].value], undefined, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
onDoubleClickOnChart: function(chart) {
|
onDoubleClickOnChart: function(chart) {
|
||||||
|
@ -2232,6 +2277,22 @@ define([
|
||||||
this.documentHolder.fireEvent('links:contents', [item.value, true]);
|
this.documentHolder.fireEvent('links:contents', [item.value, true]);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onSpecialPasteItemClick: function(item, e) {
|
||||||
|
if (this.api) {
|
||||||
|
this.api.asc_SpecialPaste(item.value);
|
||||||
|
var menu = this.btnSpecialPaste.menu;
|
||||||
|
if (!item.cmpEl) {
|
||||||
|
for (var i = 0; i < menu.items.length; i++) {
|
||||||
|
menu.items[i].setChecked(menu.items[i].value===item.value, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setTimeout(function(){
|
||||||
|
menu.hide();
|
||||||
|
}, 100);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
|
||||||
editComplete: function() {
|
editComplete: function() {
|
||||||
this.documentHolder && this.documentHolder.fireEvent('editcomplete', this.documentHolder);
|
this.documentHolder && this.documentHolder.fireEvent('editcomplete', this.documentHolder);
|
||||||
}
|
}
|
||||||
|
|
|
@ -715,6 +715,7 @@ define([
|
||||||
case 'replace':
|
case 'replace':
|
||||||
case 'search':
|
case 'search':
|
||||||
this.leftMenu.btnAbout.toggle(false);
|
this.leftMenu.btnAbout.toggle(false);
|
||||||
|
Common.UI.Menu.Manager.hideAll();
|
||||||
var selectedText = this.api.asc_GetSelectedText();
|
var selectedText = this.api.asc_GetSelectedText();
|
||||||
if (this.isSearchPanelVisible()) {
|
if (this.isSearchPanelVisible()) {
|
||||||
selectedText && this.leftMenu.panelSearch.setFindText(selectedText);
|
selectedText && this.leftMenu.panelSearch.setFindText(selectedText);
|
||||||
|
|
Loading…
Reference in a new issue