diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-07-20 11:33:10 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-07-20 10:04:50 +0000 |
commit | 6ea8084487411feea049f57712979fba4ad2fbce (patch) | |
tree | 033876b7c2b17ecfe2685ce9f30351fbb035ead3 /editeng/source/outliner/outlvw.cxx | |
parent | ecb34112cc4c768fd2f57499151920fa7798776f (diff) |
sd lok: decouple vcl window focus from cursor visibility
The problem was the the blinking cursor was hidden when another vcl
window got its focus, so it wasn't possible to edit two shape text in
parallel in two windows.
The code path is like this:
- show cursor, cursor is created: SdrObjEditView::SdrBeginTextEdit() ->
OutlinerView::ShowCursor()
- show cursor, focus case: sd::FuText::Activate() ->
OutlinerView::ShowCursor()
- hide cursor, cursor is deleted: SdrObjEditView::SdrEndTextEdit() ->
OutlinerView::HideCursor()
- hide cursor, focus case: sd::FuText::Deactivate() ->
OutlinerView::HideCursor()
So add a new optional bool parameter that allows not emitting the
LOK_CALLBACK_CURSOR_VISIBLE callback in the focus change case.
Also, if we're at it, make sure that painting emits no show/cursor LOK
callbacks.
Change-Id: I1068a1b1f5cd76fd09b5a79066834bfb0daebc77
Reviewed-on: https://gerrit.libreoffice.org/27335
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'editeng/source/outliner/outlvw.cxx')
-rw-r--r-- | editeng/source/outliner/outlvw.cxx | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/editeng/source/outliner/outlvw.cxx b/editeng/source/outliner/outlvw.cxx index ea011f2924c2..fb18848de740 100644 --- a/editeng/source/outliner/outlvw.cxx +++ b/editeng/source/outliner/outlvw.cxx @@ -1229,14 +1229,14 @@ bool OutlinerView::HasSelection() const return pEditView->HasSelection(); } -void OutlinerView::ShowCursor( bool bGotoCursor ) +void OutlinerView::ShowCursor( bool bGotoCursor, bool bActivate ) { - pEditView->ShowCursor( bGotoCursor ); + pEditView->ShowCursor( bGotoCursor, /*bForceVisCursor=*/true, bActivate ); } -void OutlinerView::HideCursor() +void OutlinerView::HideCursor(bool bDeactivate) { - pEditView->HideCursor(); + pEditView->HideCursor(bDeactivate); } void OutlinerView::SetWindow( vcl::Window* pWin ) |