Commit e9dadc80 authored by Alexey Golubev's avatar Alexey Golubev

Merge branch 'hotfix/v4.2.8'

parents ab2e14fc 2f686fce
......@@ -3107,16 +3107,12 @@ cROUND.prototype.Calculate = function ( arg ) {
return Math[n > 0 ? "floor" : "ceil"]( n );
}
function sign( n ) {
return n == 0 ? 0 : n < 0 ? -1 : 1
}
function Floor( number, significance ) {
var quotient = number / significance;
if ( quotient == 0 ) {
return 0;
}
var nolpiat = 5 * sign( quotient ) * Math.pow( 10, Math.floor( Math.log10( Math.abs( quotient ) ) ) - cExcelSignificantDigits );
var nolpiat = 5 * Math.sign( quotient ) * Math.pow( 10, Math.floor( Math.log10( Math.abs( quotient ) ) ) - cExcelSignificantDigits );
return truncate( quotient + nolpiat ) * significance;
}
......
......@@ -616,9 +616,12 @@ Math.approxEqual = function ( a, b ) {
return this.abs( a - b ) < 1e-15;
};
Math.sign = function ( x ) {
return x > 0 ? 1 : x < 0 ? -1 : 0;
};
if (typeof Math.sign != 'function') {
Math['sign'] = Math.sign = function (n) {
return n == 0 ? 0 : n < 0 ? -1 : 1;
};
}
RegExp.escape = function ( text ) {
return text.replace( /[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&" );
......
......@@ -356,16 +356,12 @@ cDOLLAR.prototype.Calculate = function ( arg ) {
return Math[n > 0 ? "floor" : "ceil"]( n );
}
function sign( n ) {
return n == 0 ? 0 : n < 0 ? -1 : 1
}
function Floor( number, significance ) {
var quotient = number / significance;
if ( quotient == 0 ) {
return 0;
}
var nolpiat = 5 * sign( quotient ) * Math.pow( 10, Math.floor( Math.log10( Math.abs( quotient ) ) ) - AscCommonExcel.cExcelSignificantDigits );
var nolpiat = 5 * Math.sign( quotient ) * Math.pow( 10, Math.floor( Math.log10( Math.abs( quotient ) ) ) - AscCommonExcel.cExcelSignificantDigits );
return truncate( quotient + nolpiat ) * significance;
}
......@@ -703,16 +699,12 @@ cFIXED.prototype.Calculate = function ( arg ) {
return Math[n > 0 ? "floor" : "ceil"]( n );
}
function sign( n ) {
return n == 0 ? 0 : n < 0 ? -1 : 1
}
function Floor( number, significance ) {
var quotient = number / significance;
if ( quotient == 0 ) {
return 0;
}
var nolpiat = 5 * sign( quotient ) * Math.pow( 10, Math.floor( Math.log10( Math.abs( quotient ) ) ) - AscCommonExcel.cExcelSignificantDigits );
var nolpiat = 5 * Math.sign( quotient ) * Math.pow( 10, Math.floor( Math.log10( Math.abs( quotient ) ) ) - AscCommonExcel.cExcelSignificantDigits );
return truncate( quotient + nolpiat ) * significance;
}
......
......@@ -2162,7 +2162,7 @@
*/
CellEditor.prototype._onWindowKeyDown = function (event, isInput) {
var t = this, kind = undefined, hieroglyph = false;
var ctrlKey = event.metaKey || event.ctrlKey;
var ctrlKey = !AscCommon.getAltGr(event) && (event.metaKey || event.ctrlKey);
if (!t.isOpened || (!isInput && !t.enableKeyEvents)) {
return true;
......@@ -2512,7 +2512,6 @@
/** @param event {KeyboardEvent} */
CellEditor.prototype._onWindowKeyPress = function (event) {
var t = this;
var ctrlKey = event.metaKey || event.ctrlKey;
if (!window['IS_NATIVE_EDITOR']) {
......@@ -2520,7 +2519,7 @@
return true;
}
if (t.skipKeyPress || event.which < 32 || event.altKey || ctrlKey) {
if (t.skipKeyPress || event.which < 32) {
t.skipKeyPress = true;
return true;
}
......
......@@ -323,7 +323,7 @@
// Будем делать dblClick как в Excel
asc_CEventsController.prototype.doMouseDblClick = function (event, isHideCursor) {
var t = this;
var ctrlKey = event.metaKey || event.ctrlKey;
var ctrlKey = !AscCommon.getAltGr(event) && (event.metaKey || event.ctrlKey);
// Для формулы не нужно выходить из редактирования ячейки
if (t.settings.isViewerMode || t.isFormulaEditMode || t.isSelectionDialogMode) {return true;}
......@@ -528,7 +528,7 @@
*/
asc_CEventsController.prototype._changeSelectionDone = function (event) {
var coord = this._getCoordinates(event);
var ctrlKey = event.metaKey || event.ctrlKey;
var ctrlKey = !AscCommon.getAltGr(event) && (event.metaKey || event.ctrlKey);
if (false === ctrlKey) {
coord.x = -1;
coord.y = -1;
......@@ -591,7 +591,8 @@
asc_CEventsController.prototype._changeFillHandleDone = function (event) {
// Закончили автозаполнение, пересчитаем
var coord = this._getCoordinates(event);
this.handlers.trigger("changeFillHandleDone", coord.x, coord.y, event.metaKey || event.ctrlKey);
var ctrlKey = !AscCommon.getAltGr(event) && (event.metaKey || event.ctrlKey);
this.handlers.trigger("changeFillHandleDone", coord.x, coord.y, ctrlKey);
};
/**
......@@ -661,7 +662,8 @@
/** @param event {MouseEvent} */
asc_CEventsController.prototype._moveRangeHandleDone = function (event) {
// Закончили перемещение диапазона, пересчитаем
this.handlers.trigger("moveRangeHandleDone", event.metaKey || event.ctrlKey);
var ctrlKey = !AscCommon.getAltGr(event) && (event.metaKey || event.ctrlKey);
this.handlers.trigger("moveRangeHandleDone", ctrlKey);
};
asc_CEventsController.prototype._moveResizeRangeHandleDone = function (event, target) {
......@@ -679,7 +681,7 @@
/** @param event {KeyboardEvent} */
asc_CEventsController.prototype._onWindowKeyDown = function (event) {
var t = this, dc = 0, dr = 0, isViewerMode = t.settings.isViewerMode;
var ctrlKey = event.metaKey || event.ctrlKey;
var ctrlKey = !AscCommon.getAltGr(event) && (event.metaKey || event.ctrlKey);
var shiftKey = event.shiftKey;
var result = true;
......@@ -979,10 +981,7 @@
return result;
default:
// При зажатом Ctrl или Alt не вводим символ
if (!ctrlKey && !event.altKey) {
t.skipKeyPress = false;
}
t.skipKeyPress = false;
return true;
} // end of switch
......@@ -1218,7 +1217,7 @@
}
var t = this;
var ctrlKey = event.metaKey || event.ctrlKey;
var ctrlKey = !AscCommon.getAltGr(event) && (event.metaKey || event.ctrlKey);
var coord = t._getCoordinates(event);
event.isLocked = t.isMousePressed = true;
......@@ -1459,7 +1458,7 @@
/** @param event {MouseEvent} */
asc_CEventsController.prototype._onMouseMove = function (event) {
var t = this;
var ctrlKey = event.metaKey || event.ctrlKey;
var ctrlKey = !AscCommon.getAltGr(event) && (event.metaKey || event.ctrlKey);
var coord = t._getCoordinates(event);
t.hasCursor = true;
......@@ -1537,7 +1536,7 @@
/** @param event {MouseEvent} */
asc_CEventsController.prototype._onMouseWheel = function (event) {
var ctrlKey = event.metaKey || event.ctrlKey;
var ctrlKey = !AscCommon.getAltGr(event) && (event.metaKey || event.ctrlKey);
if (this.isFillHandleMode || this.isMoveRangeMode || this.isMoveResizeRange || ctrlKey) {
return true;
}
......@@ -1548,25 +1547,44 @@
return true;
}
var delta = 0;
var self = this;
var deltaX = 0, deltaY = 0;
if (undefined !== event.wheelDelta && 0 !== event.wheelDelta) {
delta = -1 * event.wheelDelta / 40;
} else if (undefined != event.detail && 0 !== event.detail) {
// FF
delta = event.detail;
} else if (undefined != event.deltaY && 0 !== event.deltaY) {
deltaY = -1 * event.wheelDelta / 40;
} else if (undefined !== event.detail && 0 !== event.detail) {
// FF
delta = event.deltaY;
deltaY = event.detail;
}
if (event.axis !== undefined && event.axis === event.HORIZONTAL_AXIS) {
deltaX = deltaY;
deltaY = 0;
}
if (undefined !== event.wheelDeltaX && 0 !== event.wheelDeltaX) {
// Webkit
deltaX = -1 * event.wheelDeltaX / 40;
}
if (undefined !== event.wheelDeltaY && 0 !== event.wheelDeltaY) {
// Webkit
deltaY = -1 * event.wheelDeltaY / 40;
}
if (event.shiftKey) {
deltaX = deltaY;
deltaY = 0;
}
delta /= 3;
var self = this;
delta *= event.shiftKey ? 1 : this.settings.wheelScrollLines;
this.handlers.trigger("updateWorksheet", this.element, /*x*/undefined, /*y*/undefined, /*ctrlKey*/undefined,
function () {
event.shiftKey ? self.scrollHorizontal(delta, event) : self.scrollVertical(delta, event);
self._onMouseMove(event);
});
function () {
if (deltaX) {
deltaX = Math.sign(deltaX) * Math.ceil(Math.abs(deltaX / 3));
self.scrollHorizontal(deltaX, event);
}
if (deltaY) {
deltaY = Math.sign(deltaY) * Math.ceil(Math.abs(deltaY * self.settings.wheelScrollLines / 3));
self.scrollVertical(deltaY, event);
}
self._onMouseMove(event);
});
return true;
};
......
......@@ -178,20 +178,8 @@
function check_KeyboardEvent(e)
{
global_keyboardEvent.AltKey = e.altKey;
if (e.metaKey !== undefined)
global_keyboardEvent.CtrlKey = e.ctrlKey || e.metaKey;
else
global_keyboardEvent.CtrlKey = e.ctrlKey;
global_keyboardEvent.AltGr = (global_keyboardEvent.CtrlKey && global_keyboardEvent.AltKey) ? true : false;
if (AscBrowser.isMacOs)
{
global_keyboardEvent.AltGr = (!global_keyboardEvent.CtrlKey && global_keyboardEvent.AltKey) ? true : false;
}
if (global_keyboardEvent.AltGr)
global_keyboardEvent.CtrlKey = false;
global_keyboardEvent.AltGr = AscCommon.getAltGr(e);
global_keyboardEvent.CtrlKey = !global_keyboardEvent.AltGr && (e.metaKey || e.ctrlKey);
global_keyboardEvent.ShiftKey = e.shiftKey;
......
......@@ -2780,6 +2780,11 @@ CUserCacheColor.prototype.init = function(nColor) {
loadScript('./../../../../sdkjs/' + sdkName + '/sdk-all.js', callback);
}
}
function getAltGr (e) {
var ctrlKey = e.metaKey || e.ctrlKey;
var altKey = e.altKey;
return (altKey && (AscBrowser.isMacOs ? !ctrlKey : ctrlKey));
}
var g_oIdCounter = new CIdCounter();
var g_oTableId = new CTableId();
......@@ -2830,6 +2835,7 @@ window["SetDoctRendererParams"] = function(_params)
window["AscCommon"].CContentChangesElement = CContentChangesElement;
window["AscCommon"].loadSdk = loadSdk;
window["AscCommon"].getAltGr = getAltGr;
window["AscCommon"].g_oDocumentUrls = g_oDocumentUrls;
window["AscCommon"].FormulaTablePartInfo = FormulaTablePartInfo;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment