https://bugs.documentfoundation.org/show_bug.cgi?id=169480

            Bug ID: 169480
           Summary: Change navigation back function to first make sure the
                    cursor is visible
           Product: LibreOffice
           Version: 3.3.0 release
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: Writer
          Assignee: [email protected]
          Reporter: [email protected]

In my opinion, the navigate back funtion is a little unintuitive to use, in the
way that it behaves when the user has scrolled the view, so that the cursor is
no longer visible. In this case, the navigate back function does not take the
user back to the place where cursor is, but to the place where it was before. I
think most people would first want to go back to the place where the cursor is
currently and only in the case where the cursor is already in the view, then go
where the cursor was previously.

In summary, navigate back function should IMO:
  * Check if the cursor is visible
     * if cursor is not visible -> scroll to make cursor visible 
     * if cursor is visible -> move where the cursor was previously

I don't have c++ experience, but here are links to code sections I think might
be relevant for implementing this.

void SwNavigationMgr::goBack() 
https://docs.libreoffice.org/sw/html/navmgr_8cxx_source.html#l00094

Here are some places where one might want look for how to check if cursor is
visible and to make it visible

bool SwWrtShell::Left
https://docs.libreoffice.org/sw/html/move_8cxx_source.html#l00110

// scroll Cursor to visible area
https://docs.libreoffice.org/sw/html/crsrsh_8cxx_source.html#l02288

void SwCursorShell::MakeSelVisible()
https://docs.libreoffice.org/sw/html/crsrsh_8cxx_source.html#l03392

PS. I also made this related Bug 169479 report, to add Alt+left shortcut to
navigate back function.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to