To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=72394





------- Additional comments from [EMAIL PROTECTED] Wed Nov 21 13:32:11 +0000 
2007 -------
fme->lijian: Thank you for your patch. Please find my comments below.

[...] I wonder what pSavePos is used for and where its value gets from in
SwCursor::IsSelOvr. [...]

pSavePos contains the last known 'save' position the cursor was set to. Usually
it works like this: before trying to move the cursor, an SwCrsrSaveState object
is created with the current cursor. Since ths current cursor is assumed to be on
a valid position, the SwCrsrSaveState object stored the last known valid cursor
position. Then the cursor is moved to a new position. After this, some checks
are executed, if the cursor is now 'valid', e.g., in IsSelOvr(). If the cursor
is found to be on an invalid position and the cursor either should not be
corrected (!SELOVR_CHANGEPOS) or could not be corrected (like in our case), the
SwCrsrSaveState object can be used to 'undo' the cursor move that resulted in
this 'invalid' cursor position.

[...] In my patch, I just changed the value of bGoNxt. Then all seems to work
fine. I just take this as a test. Actually, I think it should be like this :

if bGoNxt == 1 and pFrm is hidden, we could see if paragraph pFrm represents is
the last paragraph. If so, we need to move forward. It's similar to bGoNxt == 0.
What's your opinion ? [...]

Yes, I fully agree with you. bGoNxt == true indicates, that the cursor has been
moved forward, i.e., the last 'save' position is < than the position after the
cursor move. In this case the code tries to search forward for a suitable cursor
position. If bGoNxt == false, the cursor has been moved backward, i.e., the last
'save' position > thant the current position. In this case the code searches
backward for a suitable cursor position. We should keep this logic, and maybe
should check, if after the while loop pFrm == 0. This means that for bGoNxt ==
true (resp. false), we reached the end (resp. start) of the text without finding
a suitable paragraph. In this case we should restart the search with bGoNxt =
!bGoNxt. Hope this helps.

---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to