Commit 5d1a48d4 authored by Ilya Kirillov's avatar Ilya Kirillov

Fixed bug #33344. Fixed a problem with the selection of the cell, which is divided into pages.

parent 2a2eecc2
...@@ -4017,8 +4017,24 @@ CDocumentContent.prototype.Cursor_MoveStartOfLine = function(AddToSe ...@@ -4017,8 +4017,24 @@ CDocumentContent.prototype.Cursor_MoveStartOfLine = function(AddToSe
}; };
CDocumentContent.prototype.Cursor_MoveAt = function(X, Y, AddToSelect, bRemoveOldSelection, CurPage) CDocumentContent.prototype.Cursor_MoveAt = function(X, Y, AddToSelect, bRemoveOldSelection, CurPage)
{ {
if (undefined != CurPage) if (this.Pages.length <= 0)
this.CurPage = CurPage; return;
if (undefined !== CurPage)
{
if (CurPage < 0)
{
CurPage = 0;
Y = 0;
}
else if (CurPage >= this.Pages.length)
{
CurPage = this.Pages.length - 1;
Y = this.Pages[CurPage].YLimit;
}
this.CurPage = CurPage;
}
if (false != bRemoveOldSelection) if (false != bRemoveOldSelection)
{ {
...@@ -7268,8 +7284,19 @@ CDocumentContent.prototype.Selection_Draw_Page = function(PageIndex) ...@@ -7268,8 +7284,19 @@ CDocumentContent.prototype.Selection_Draw_Page = function(PageIndex)
}; };
CDocumentContent.prototype.Selection_SetStart = function(X, Y, CurPage, MouseEvent) CDocumentContent.prototype.Selection_SetStart = function(X, Y, CurPage, MouseEvent)
{ {
if (CurPage < 0 || CurPage >= this.Pages.length) if (this.Pages.length <= 0)
CurPage = 0; return;
if (CurPage < 0)
{
CurPage = 0;
Y = 0;
}
else if (CurPage >= this.Pages.length)
{
CurPage = this.Pages.length - 1;
Y = this.Pages[CurPage].YLimit;
}
this.CurPage = CurPage; this.CurPage = CurPage;
var AbsPage = this.Get_AbsolutePage(this.CurPage); var AbsPage = this.Get_AbsolutePage(this.CurPage);
...@@ -7395,6 +7422,20 @@ CDocumentContent.prototype.Selection_SetStart = function(X, Y, CurPage, MouseEve ...@@ -7395,6 +7422,20 @@ CDocumentContent.prototype.Selection_SetStart = function(X, Y, CurPage, MouseEve
// Если bEnd = true, тогда это конец селекта. // Если bEnd = true, тогда это конец селекта.
CDocumentContent.prototype.Selection_SetEnd = function(X, Y, CurPage, MouseEvent) CDocumentContent.prototype.Selection_SetEnd = function(X, Y, CurPage, MouseEvent)
{ {
if (this.Pages.length <= 0)
return;
if (CurPage < 0)
{
CurPage = 0;
Y = 0;
}
else if (CurPage >= this.Pages.length)
{
CurPage = this.Pages.length - 1;
Y = this.Pages[CurPage].YLimit;
}
if (docpostype_DrawingObjects === this.CurPos.Type) if (docpostype_DrawingObjects === this.CurPos.Type)
{ {
var PageAbs = (this.Parent instanceof CHeaderFooter ? CurPage : this.Get_StartPage_Absolute(CurPage)); var PageAbs = (this.Parent instanceof CHeaderFooter ? CurPage : this.Get_StartPage_Absolute(CurPage));
...@@ -7411,9 +7452,6 @@ CDocumentContent.prototype.Selection_SetEnd = function(X, Y, CurPage, M ...@@ -7411,9 +7452,6 @@ CDocumentContent.prototype.Selection_SetEnd = function(X, Y, CurPage, M
return; return;
} }
if (CurPage < 0 || CurPage >= this.Pages.length)
CurPage = 0;
this.CurPage = CurPage; this.CurPage = CurPage;
if (selectionflag_Numbering === this.Selection.Flag) if (selectionflag_Numbering === this.Selection.Flag)
......
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