Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
sdkjs
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boris Kocherov
sdkjs
Commits
ef597b07
Commit
ef597b07
authored
Oct 06, 2016
by
Alexander.Trofimov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix fillHandle
parent
f7e179b0
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
80 additions
and
102 deletions
+80
-102
cell/view/WorksheetView.js
cell/view/WorksheetView.js
+80
-102
No files found.
cell/view/WorksheetView.js
View file @
ef597b07
...
@@ -7602,41 +7602,41 @@
...
@@ -7602,41 +7602,41 @@
};
};
/* Функция для работы автозаполнения (selection). (x, y) - координаты точки мыши на области */
/* Функция для работы автозаполнения (selection). (x, y) - координаты точки мыши на области */
WorksheetView
.
prototype
.
changeSelectionFillHandle
=
function
(
x
,
y
)
{
WorksheetView
.
prototype
.
changeSelectionFillHandle
=
function
(
x
,
y
)
{
// Возвращаемый результат
// Возвращаемый результат
var
ret
=
null
;
var
ret
=
null
;
// Если мы только первый раз попали сюда, то копируем выделенную область
// Если мы только первый раз попали сюда, то копируем выделенную область
if
(
null
===
this
.
activeFillHandle
)
{
if
(
null
===
this
.
activeFillHandle
)
{
this
.
activeFillHandle
=
this
.
activeRange
.
clone
(
true
);
this
.
activeFillHandle
=
this
.
model
.
selectionRange
.
getLast
().
clone
(
);
// Для первого раза нормализуем (т.е. первая точка - это левый верхний угол)
// Для первого раза нормализуем (т.е. первая точка - это левый верхний угол)
this
.
activeFillHandle
.
normalize
();
this
.
activeFillHandle
.
normalize
();
return
ret
;
return
ret
;
}
}
// Пересчитываем координаты
// Пересчитываем координаты
x
*=
asc_getcvt
(
0
/*px*/
,
1
/*pt*/
,
this
.
_getPPIX
()
);
x
*=
asc_getcvt
(
0
/*px*/
,
1
/*pt*/
,
this
.
_getPPIX
()
);
y
*=
asc_getcvt
(
0
/*px*/
,
1
/*pt*/
,
this
.
_getPPIY
()
);
y
*=
asc_getcvt
(
0
/*px*/
,
1
/*pt*/
,
this
.
_getPPIY
()
);
// Очищаем выделение, будем рисовать заново
// Очищаем выделение, будем рисовать заново
this
.
cleanSelection
();
this
.
cleanSelection
();
// Копируем выделенную область
// Копируем выделенную область
var
ar
=
this
.
activeRange
.
clone
(
true
);
var
ar
=
this
.
model
.
selectionRange
.
getLast
().
clone
(
true
);
// Получаем координаты левого верхнего угла выделения
// Получаем координаты левого верхнего угла выделения
var
xL
=
this
.
getCellLeft
(
ar
.
c1
,
/*pt*/
1
);
var
xL
=
this
.
getCellLeft
(
ar
.
c1
,
/*pt*/
1
);
var
yL
=
this
.
getCellTop
(
ar
.
r1
,
/*pt*/
1
);
var
yL
=
this
.
getCellTop
(
ar
.
r1
,
/*pt*/
1
);
// Получаем координаты правого нижнего угла выделения
// Получаем координаты правого нижнего угла выделения
var
xR
=
this
.
getCellLeft
(
ar
.
c2
,
/*pt*/
1
)
+
this
.
cols
[
ar
.
c2
].
width
;
var
xR
=
this
.
getCellLeft
(
ar
.
c2
,
/*pt*/
1
)
+
this
.
cols
[
ar
.
c2
].
width
;
var
yR
=
this
.
getCellTop
(
ar
.
r2
,
/*pt*/
1
)
+
this
.
rows
[
ar
.
r2
].
height
;
var
yR
=
this
.
getCellTop
(
ar
.
r2
,
/*pt*/
1
)
+
this
.
rows
[
ar
.
r2
].
height
;
// range для пересчета видимой области
// range для пересчета видимой области
var
activeFillHandleCopy
;
var
activeFillHandleCopy
;
// Колонка по X и строка по Y
// Колонка по X и строка по Y
var
colByX
=
this
.
_findColUnderCursor
(
x
,
/*canReturnNull*/
false
,
/*dX*/
true
).
col
;
var
colByX
=
this
.
_findColUnderCursor
(
x
,
/*canReturnNull*/
false
,
/*dX*/
true
).
col
;
var
rowByY
=
this
.
_findRowUnderCursor
(
y
,
/*canReturnNull*/
false
,
/*dX*/
true
).
row
;
var
rowByY
=
this
.
_findRowUnderCursor
(
y
,
/*canReturnNull*/
false
,
/*dX*/
true
).
row
;
// Колонка по X и строка по Y (без половинчатого счета). Для сдвига видимой области
// Колонка по X и строка по Y (без половинчатого счета). Для сдвига видимой области
var
colByXNoDX
=
this
.
_findColUnderCursor
(
x
,
/*canReturnNull*/
false
,
/*dX*/
false
).
col
;
var
colByXNoDX
=
this
.
_findColUnderCursor
(
x
,
/*canReturnNull*/
false
,
/*dX*/
false
).
col
;
var
rowByYNoDY
=
this
.
_findRowUnderCursor
(
y
,
/*canReturnNull*/
false
,
/*dX*/
false
).
row
;
var
rowByYNoDY
=
this
.
_findRowUnderCursor
(
y
,
/*canReturnNull*/
false
,
/*dX*/
false
).
row
;
// Сдвиг в столбцах и строках от крайней точки
// Сдвиг в столбцах и строках от крайней точки
var
dCol
;
var
dCol
;
var
dRow
;
var
dRow
;
...
@@ -7669,66 +7669,58 @@
...
@@ -7669,66 +7669,58 @@
// Область точки (x, y)
// Область точки (x, y)
var
_tmpArea
=
0
;
var
_tmpArea
=
0
;
if
(
dXR
<=
0
)
{
if
(
dXR
<=
0
)
{
// Области (1), (2), (4), (5), (7), (8)
// Области (1), (2), (4), (5), (7), (8)
if
(
dXL
<=
0
)
{
if
(
dXL
<=
0
)
{
// Области (1), (4), (7)
// Области (1), (4), (7)
if
(
dYR
<=
0
)
{
if
(
dYR
<=
0
)
{
// Области (1), (4)
// Области (1), (4)
if
(
dYL
<=
0
)
{
if
(
dYL
<=
0
)
{
// Область (1)
// Область (1)
_tmpArea
=
1
;
_tmpArea
=
1
;
}
}
else
{
else
{
// Область (4)
// Область (4)
_tmpArea
=
4
;
_tmpArea
=
4
;
}
}
}
}
else
{
else
{
// Область (7)
// Область (7)
_tmpArea
=
7
;
_tmpArea
=
7
;
}
}
}
}
else
{
else
{
// Области (2), (5), (8)
// Области (2), (5), (8)
if
(
dYR
<=
0
)
{
if
(
dYR
<=
0
)
{
// Области (2), (5)
// Области (2), (5)
if
(
dYL
<=
0
)
{
if
(
dYL
<=
0
)
{
// Область (2)
// Область (2)
_tmpArea
=
2
;
_tmpArea
=
2
;
}
}
else
{
else
{
// Область (5)
// Область (5)
_tmpArea
=
5
;
_tmpArea
=
5
;
}
}
}
}
else
{
else
{
// Область (3)
// Область (3)
_tmpArea
=
8
;
_tmpArea
=
8
;
}
}
}
}
}
}
else
{
else
{
// Области (3), (6), (9)
// Области (3), (6), (9)
if
(
dYR
<=
0
)
{
if
(
dYR
<=
0
)
{
// Области (3), (6)
// Области (3), (6)
if
(
dYL
<=
0
)
{
if
(
dYL
<=
0
)
{
// Область (3)
// Область (3)
_tmpArea
=
3
;
_tmpArea
=
3
;
}
}
else
{
else
{
// Область (6)
// Область (6)
_tmpArea
=
6
;
_tmpArea
=
6
;
}
}
}
}
else
{
else
{
// Область (9)
// Область (9)
_tmpArea
=
9
;
_tmpArea
=
9
;
}
}
}
}
// Проверяем, в каком направлении движение
// Проверяем, в каком направлении движение
switch
(
_tmpArea
)
{
switch
(
_tmpArea
)
{
case
2
:
case
2
:
case
8
:
case
8
:
// Двигаемся по вертикали.
// Двигаемся по вертикали.
...
@@ -7741,42 +7733,42 @@
...
@@ -7741,42 +7733,42 @@
break
;
break
;
case
1
:
case
1
:
// Сравниваем расстояния от точки до левого верхнего угла выделения
// Сравниваем расстояния от точки до левого верхнего угла выделения
dXRMod
=
Math
.
abs
(
x
-
xL
);
dXRMod
=
Math
.
abs
(
x
-
xL
);
dYRMod
=
Math
.
abs
(
y
-
yL
);
dYRMod
=
Math
.
abs
(
y
-
yL
);
// Сдвиги по столбцам и строкам
// Сдвиги по столбцам и строкам
dCol
=
Math
.
abs
(
colByX
-
ar
.
c1
);
dCol
=
Math
.
abs
(
colByX
-
ar
.
c1
);
dRow
=
Math
.
abs
(
rowByY
-
ar
.
r1
);
dRow
=
Math
.
abs
(
rowByY
-
ar
.
r1
);
// Определим направление позднее
// Определим направление позднее
this
.
fillHandleDirection
=
-
1
;
this
.
fillHandleDirection
=
-
1
;
break
;
break
;
case
3
:
case
3
:
// Сравниваем расстояния от точки до правого верхнего угла выделения
// Сравниваем расстояния от точки до правого верхнего угла выделения
dXRMod
=
Math
.
abs
(
x
-
xR
);
dXRMod
=
Math
.
abs
(
x
-
xR
);
dYRMod
=
Math
.
abs
(
y
-
yL
);
dYRMod
=
Math
.
abs
(
y
-
yL
);
// Сдвиги по столбцам и строкам
// Сдвиги по столбцам и строкам
dCol
=
Math
.
abs
(
colByX
-
ar
.
c2
);
dCol
=
Math
.
abs
(
colByX
-
ar
.
c2
);
dRow
=
Math
.
abs
(
rowByY
-
ar
.
r1
);
dRow
=
Math
.
abs
(
rowByY
-
ar
.
r1
);
// Определим направление позднее
// Определим направление позднее
this
.
fillHandleDirection
=
-
1
;
this
.
fillHandleDirection
=
-
1
;
break
;
break
;
case
7
:
case
7
:
// Сравниваем расстояния от точки до левого нижнего угла выделения
// Сравниваем расстояния от точки до левого нижнего угла выделения
dXRMod
=
Math
.
abs
(
x
-
xL
);
dXRMod
=
Math
.
abs
(
x
-
xL
);
dYRMod
=
Math
.
abs
(
y
-
yR
);
dYRMod
=
Math
.
abs
(
y
-
yR
);
// Сдвиги по столбцам и строкам
// Сдвиги по столбцам и строкам
dCol
=
Math
.
abs
(
colByX
-
ar
.
c1
);
dCol
=
Math
.
abs
(
colByX
-
ar
.
c1
);
dRow
=
Math
.
abs
(
rowByY
-
ar
.
r2
);
dRow
=
Math
.
abs
(
rowByY
-
ar
.
r2
);
// Определим направление позднее
// Определим направление позднее
this
.
fillHandleDirection
=
-
1
;
this
.
fillHandleDirection
=
-
1
;
break
;
break
;
case
5
:
case
5
:
case
9
:
case
9
:
// Сравниваем расстояния от точки до правого нижнего угла выделения
// Сравниваем расстояния от точки до правого нижнего угла выделения
dXRMod
=
Math
.
abs
(
dXR
);
dXRMod
=
Math
.
abs
(
dXR
);
dYRMod
=
Math
.
abs
(
dYR
);
dYRMod
=
Math
.
abs
(
dYR
);
// Сдвиги по столбцам и строкам
// Сдвиги по столбцам и строкам
dCol
=
Math
.
abs
(
colByX
-
ar
.
c2
);
dCol
=
Math
.
abs
(
colByX
-
ar
.
c2
);
dRow
=
Math
.
abs
(
rowByY
-
ar
.
r2
);
dRow
=
Math
.
abs
(
rowByY
-
ar
.
r2
);
// Определим направление позднее
// Определим направление позднее
this
.
fillHandleDirection
=
-
1
;
this
.
fillHandleDirection
=
-
1
;
break
;
break
;
...
@@ -7785,28 +7777,25 @@
...
@@ -7785,28 +7777,25 @@
//console.log(_tmpArea);
//console.log(_tmpArea);
// Возможно еще не определили направление
// Возможно еще не определили направление
if
(
-
1
===
this
.
fillHandleDirection
)
{
if
(
-
1
===
this
.
fillHandleDirection
)
{
// Проверим сдвиги по столбцам и строкам, если не поможет, то рассчитываем по расстоянию
// Проверим сдвиги по столбцам и строкам, если не поможет, то рассчитываем по расстоянию
if
(
0
===
dCol
&&
0
!==
dRow
)
{
if
(
0
===
dCol
&&
0
!==
dRow
)
{
// Двигаемся по вертикали.
// Двигаемся по вертикали.
this
.
fillHandleDirection
=
1
;
this
.
fillHandleDirection
=
1
;
}
}
else
if
(
0
!==
dCol
&&
0
===
dRow
)
{
else
if
(
0
!==
dCol
&&
0
===
dRow
)
{
// Двигаемся по горизонтали.
// Двигаемся по горизонтали.
this
.
fillHandleDirection
=
0
;
this
.
fillHandleDirection
=
0
;
}
}
else
if
(
dXRMod
>=
dYRMod
)
{
else
if
(
dXRMod
>=
dYRMod
)
{
// Двигаемся по горизонтали.
// Двигаемся по горизонтали.
this
.
fillHandleDirection
=
0
;
this
.
fillHandleDirection
=
0
;
}
}
else
{
else
{
// Двигаемся по вертикали.
// Двигаемся по вертикали.
this
.
fillHandleDirection
=
1
;
this
.
fillHandleDirection
=
1
;
}
}
}
}
// Проверяем, в каком направлении движение
// Проверяем, в каком направлении движение
if
(
0
===
this
.
fillHandleDirection
)
{
if
(
0
===
this
.
fillHandleDirection
)
{
// Определяем область попадания и точку
// Определяем область попадания и точку
/*
/*
| |
| |
...
@@ -7815,18 +7804,16 @@
...
@@ -7815,18 +7804,16 @@
| |
| |
| |
| |
*/
*/
if
(
dXR
<=
0
)
{
if
(
dXR
<=
0
)
{
// Область (1) или (2)
// Область (1) или (2)
if
(
dXL
<=
0
)
{
if
(
dXL
<=
0
)
{
// Область (1)
// Область (1)
this
.
fillHandleArea
=
1
;
this
.
fillHandleArea
=
1
;
}
}
else
{
else
{
// Область (2)
// Область (2)
this
.
fillHandleArea
=
2
;
this
.
fillHandleArea
=
2
;
}
}
}
}
else
{
else
{
// Область (3)
// Область (3)
this
.
fillHandleArea
=
3
;
this
.
fillHandleArea
=
3
;
}
}
...
@@ -7834,7 +7821,7 @@
...
@@ -7834,7 +7821,7 @@
// Находим колонку для точки
// Находим колонку для точки
this
.
activeFillHandle
.
c2
=
colByX
;
this
.
activeFillHandle
.
c2
=
colByX
;
switch
(
this
.
fillHandleArea
)
{
switch
(
this
.
fillHandleArea
)
{
case
1
:
case
1
:
// Первая точка (xR, yR), вторая точка (x, yL)
// Первая точка (xR, yR), вторая точка (x, yL)
this
.
activeFillHandle
.
c1
=
ar
.
c2
;
this
.
activeFillHandle
.
c1
=
ar
.
c2
;
...
@@ -7845,7 +7832,7 @@
...
@@ -7845,7 +7832,7 @@
// Когда идем назад, должна быть колонка на 1 больше
// Когда идем назад, должна быть колонка на 1 больше
this
.
activeFillHandle
.
c2
+=
1
;
this
.
activeFillHandle
.
c2
+=
1
;
// Случай, если мы еще не вышли из внутренней области
// Случай, если мы еще не вышли из внутренней области
if
(
this
.
activeFillHandle
.
c2
==
ar
.
c1
)
{
if
(
this
.
activeFillHandle
.
c2
==
ar
.
c1
)
{
this
.
fillHandleArea
=
2
;
this
.
fillHandleArea
=
2
;
}
}
break
;
break
;
...
@@ -7859,7 +7846,7 @@
...
@@ -7859,7 +7846,7 @@
// Когда идем назад, должна быть колонка на 1 больше
// Когда идем назад, должна быть колонка на 1 больше
this
.
activeFillHandle
.
c2
+=
1
;
this
.
activeFillHandle
.
c2
+=
1
;
if
(
this
.
activeFillHandle
.
c2
>
this
.
activeFillHandle
.
c1
)
{
if
(
this
.
activeFillHandle
.
c2
>
this
.
activeFillHandle
.
c1
)
{
// Ситуация половинки последнего столбца
// Ситуация половинки последнего столбца
this
.
activeFillHandle
.
c1
=
ar
.
c1
;
this
.
activeFillHandle
.
c1
=
ar
.
c1
;
this
.
activeFillHandle
.
r1
=
ar
.
r1
;
this
.
activeFillHandle
.
r1
=
ar
.
r1
;
...
@@ -7880,8 +7867,7 @@
...
@@ -7880,8 +7867,7 @@
// Копируем в range для пересчета видимой области
// Копируем в range для пересчета видимой области
activeFillHandleCopy
=
this
.
activeFillHandle
.
clone
();
activeFillHandleCopy
=
this
.
activeFillHandle
.
clone
();
activeFillHandleCopy
.
c2
=
colByXNoDX
;
activeFillHandleCopy
.
c2
=
colByXNoDX
;
}
}
else
{
else
{
// Определяем область попадания и точку
// Определяем область попадания и точку
/*
/*
(1)
(1)
...
@@ -7894,18 +7880,16 @@
...
@@ -7894,18 +7880,16 @@
(3)
(3)
*/
*/
if
(
dYR
<=
0
)
{
if
(
dYR
<=
0
)
{
// Область (1) или (2)
// Область (1) или (2)
if
(
dYL
<=
0
)
{
if
(
dYL
<=
0
)
{
// Область (1)
// Область (1)
this
.
fillHandleArea
=
1
;
this
.
fillHandleArea
=
1
;
}
}
else
{
else
{
// Область (2)
// Область (2)
this
.
fillHandleArea
=
2
;
this
.
fillHandleArea
=
2
;
}
}
}
}
else
{
else
{
// Область (3)
// Область (3)
this
.
fillHandleArea
=
3
;
this
.
fillHandleArea
=
3
;
}
}
...
@@ -7913,7 +7897,7 @@
...
@@ -7913,7 +7897,7 @@
// Находим строку для точки
// Находим строку для точки
this
.
activeFillHandle
.
r2
=
rowByY
;
this
.
activeFillHandle
.
r2
=
rowByY
;
switch
(
this
.
fillHandleArea
)
{
switch
(
this
.
fillHandleArea
)
{
case
1
:
case
1
:
// Первая точка (xR, yR), вторая точка (xL, y)
// Первая точка (xR, yR), вторая точка (xL, y)
this
.
activeFillHandle
.
c1
=
ar
.
c2
;
this
.
activeFillHandle
.
c1
=
ar
.
c2
;
...
@@ -7924,7 +7908,7 @@
...
@@ -7924,7 +7908,7 @@
// Когда идем назад, должна быть строка на 1 больше
// Когда идем назад, должна быть строка на 1 больше
this
.
activeFillHandle
.
r2
+=
1
;
this
.
activeFillHandle
.
r2
+=
1
;
// Случай, если мы еще не вышли из внутренней области
// Случай, если мы еще не вышли из внутренней области
if
(
this
.
activeFillHandle
.
r2
==
ar
.
r1
)
{
if
(
this
.
activeFillHandle
.
r2
==
ar
.
r1
)
{
this
.
fillHandleArea
=
2
;
this
.
fillHandleArea
=
2
;
}
}
break
;
break
;
...
@@ -7938,7 +7922,7 @@
...
@@ -7938,7 +7922,7 @@
// Когда идем назад, должна быть строка на 1 больше
// Когда идем назад, должна быть строка на 1 больше
this
.
activeFillHandle
.
r2
+=
1
;
this
.
activeFillHandle
.
r2
+=
1
;
if
(
this
.
activeFillHandle
.
r2
>
this
.
activeFillHandle
.
r1
)
{
if
(
this
.
activeFillHandle
.
r2
>
this
.
activeFillHandle
.
r1
)
{
// Ситуация половинки последней строки
// Ситуация половинки последней строки
this
.
activeFillHandle
.
c1
=
ar
.
c1
;
this
.
activeFillHandle
.
c1
=
ar
.
c1
;
this
.
activeFillHandle
.
r1
=
ar
.
r1
;
this
.
activeFillHandle
.
r1
=
ar
.
r1
;
...
@@ -7966,8 +7950,8 @@
...
@@ -7966,8 +7950,8 @@
this
.
_drawSelection
();
this
.
_drawSelection
();
// Смотрим, ушли ли мы за границу видимой области
// Смотрим, ушли ли мы за границу видимой области
ret
=
this
.
_calcFillHandleOffset
(
activeFillHandleCopy
);
ret
=
this
.
_calcFillHandleOffset
(
activeFillHandleCopy
);
this
.
model
.
workbook
.
handlers
.
trigger
(
"
asc_onHideComment
"
);
this
.
model
.
workbook
.
handlers
.
trigger
(
"
asc_onHideComment
"
);
return
ret
;
return
ret
;
};
};
...
@@ -7977,8 +7961,7 @@
...
@@ -7977,8 +7961,7 @@
var
t
=
this
;
var
t
=
this
;
// Текущее выделение (к нему применится автозаполнение)
// Текущее выделение (к нему применится автозаполнение)
var
arn
=
t
.
activeRange
.
clone
(
true
);
var
arn
=
t
.
model
.
selectionRange
.
getLast
();
arn
.
normalize
();
var
range
=
t
.
model
.
getRange3
(
arn
.
r1
,
arn
.
c1
,
arn
.
r2
,
arn
.
c2
);
var
range
=
t
.
model
.
getRange3
(
arn
.
r1
,
arn
.
c1
,
arn
.
r2
,
arn
.
c2
);
// Были ли изменения
// Были ли изменения
...
@@ -8009,27 +7992,25 @@
...
@@ -8009,27 +7992,25 @@
// Меняли ли что-то
// Меняли ли что-то
if
(
bIsHaveChanges
&&
(
this
.
activeFillHandle
.
r1
!==
this
.
activeFillHandle
.
r2
||
if
(
bIsHaveChanges
&&
(
this
.
activeFillHandle
.
r1
!==
this
.
activeFillHandle
.
r2
||
this
.
activeFillHandle
.
c1
!==
this
.
activeFillHandle
.
c2
))
{
this
.
activeFillHandle
.
c1
!==
this
.
activeFillHandle
.
c2
))
{
// Диапазон ячеек, который мы будем менять
// Диапазон ячеек, который мы будем менять
var
changedRange
=
this
.
activeRange
.
clone
(
true
);
var
changedRange
=
arn
.
clone
(
);
// Очищаем выделение
// Очищаем выделение
this
.
cleanSelection
();
this
.
cleanSelection
();
if
(
2
===
this
.
fillHandleArea
)
{
if
(
2
===
this
.
fillHandleArea
)
{
// Мы внутри, будет удаление, нормируем и cбрасываем первую ячейку
// Мы внутри, будет удаление cбрасываем первую ячейку
this
.
activeRange
.
normalize
();
// Проверяем, удалили ли мы все (если да, то область не меняется)
// Проверяем, удалили ли мы все (если да, то область не меняется)
if
(
arn
.
c1
!==
this
.
activeFillHandle
.
c2
||
arn
.
r1
!==
this
.
activeFillHandle
.
r2
)
{
if
(
arn
.
c1
!==
this
.
activeFillHandle
.
c2
||
arn
.
r1
!==
this
.
activeFillHandle
.
r2
)
{
// Уменьшаем диапазон (мы удалили не все)
// Уменьшаем диапазон (мы удалили не все)
if
(
0
===
this
.
fillHandleDirection
)
{
if
(
0
===
this
.
fillHandleDirection
)
{
// Горизонтальное движение (для внутренности необходимо вычесть 1)
// Горизонтальное движение (для внутренности необходимо вычесть 1)
this
.
activeRange
.
c2
=
this
.
activeFillHandle
.
c2
-
1
;
arn
.
c2
=
this
.
activeFillHandle
.
c2
-
1
;
changedRange
.
c1
=
changedRange
.
c2
;
changedRange
.
c1
=
changedRange
.
c2
;
changedRange
.
c2
=
this
.
activeFillHandle
.
c2
;
changedRange
.
c2
=
this
.
activeFillHandle
.
c2
;
}
else
{
}
else
{
// Вертикальное движение (для внутренности необходимо вычесть 1)
// Вертикальное движение (для внутренности необходимо вычесть 1)
this
.
activeRange
.
r2
=
this
.
activeFillHandle
.
r2
-
1
;
arn
.
r2
=
this
.
activeFillHandle
.
r2
-
1
;
changedRange
.
r1
=
changedRange
.
r2
;
changedRange
.
r1
=
changedRange
.
r2
;
changedRange
.
r2
=
this
.
activeFillHandle
.
r2
;
changedRange
.
r2
=
this
.
activeFillHandle
.
r2
;
...
@@ -8040,12 +8021,12 @@
...
@@ -8040,12 +8021,12 @@
if
(
0
===
this
.
fillHandleDirection
)
{
if
(
0
===
this
.
fillHandleDirection
)
{
// Горизонтальное движение
// Горизонтальное движение
if
(
1
===
this
.
fillHandleArea
)
{
if
(
1
===
this
.
fillHandleArea
)
{
this
.
activeRange
.
c1
=
this
.
activeFillHandle
.
c2
;
arn
.
c1
=
this
.
activeFillHandle
.
c2
;
changedRange
.
c2
=
changedRange
.
c1
-
1
;
changedRange
.
c2
=
changedRange
.
c1
-
1
;
changedRange
.
c1
=
this
.
activeFillHandle
.
c2
;
changedRange
.
c1
=
this
.
activeFillHandle
.
c2
;
}
else
{
}
else
{
this
.
activeRange
.
c2
=
this
.
activeFillHandle
.
c2
;
arn
.
c2
=
this
.
activeFillHandle
.
c2
;
changedRange
.
c1
=
changedRange
.
c2
+
1
;
changedRange
.
c1
=
changedRange
.
c2
+
1
;
changedRange
.
c2
=
this
.
activeFillHandle
.
c2
;
changedRange
.
c2
=
this
.
activeFillHandle
.
c2
;
...
@@ -8053,20 +8034,17 @@
...
@@ -8053,20 +8034,17 @@
}
else
{
}
else
{
// Вертикальное движение
// Вертикальное движение
if
(
1
===
this
.
fillHandleArea
)
{
if
(
1
===
this
.
fillHandleArea
)
{
this
.
activeRange
.
r1
=
this
.
activeFillHandle
.
r2
;
arn
.
r1
=
this
.
activeFillHandle
.
r2
;
changedRange
.
r2
=
changedRange
.
r1
-
1
;
changedRange
.
r2
=
changedRange
.
r1
-
1
;
changedRange
.
r1
=
this
.
activeFillHandle
.
r2
;
changedRange
.
r1
=
this
.
activeFillHandle
.
r2
;
}
else
{
}
else
{
this
.
activeRange
.
r2
=
this
.
activeFillHandle
.
r2
;
arn
.
r2
=
this
.
activeFillHandle
.
r2
;
changedRange
.
r1
=
changedRange
.
r2
+
1
;
changedRange
.
r1
=
changedRange
.
r2
+
1
;
changedRange
.
r2
=
this
.
activeFillHandle
.
r2
;
changedRange
.
r2
=
this
.
activeFillHandle
.
r2
;
}
}
}
}
// После увеличения, нужно обновить больший range
arn
=
this
.
activeRange
.
clone
(
true
);
}
}
changedRange
.
normalize
();
changedRange
.
normalize
();
...
@@ -8080,7 +8058,7 @@
...
@@ -8080,7 +8058,7 @@
}
else
{
}
else
{
t
.
handlers
.
trigger
(
"
onErrorEvent
"
,
c_oAscError
.
ID
.
CannotFillRange
,
t
.
handlers
.
trigger
(
"
onErrorEvent
"
,
c_oAscError
.
ID
.
CannotFillRange
,
c_oAscError
.
Level
.
NoCritical
);
c_oAscError
.
Level
.
NoCritical
);
t
.
active
Range
.
assign2
(
range
.
bbox
);
t
.
model
.
selection
Range
.
assign2
(
range
.
bbox
);
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment