diff options
author | Eike Rathke <erack@redhat.com> | 2013-12-05 01:50:38 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-12-05 03:26:25 -0600 |
commit | 22ff85716967e573ec3bfdb8c9b17cab7b30d8a4 (patch) | |
tree | 00bcd2ad303446bef8d22e0e083fafe925878454 /sc/source/ui/app/inputhdl.cxx | |
parent | 5d98639ec39f302df3dd38498703630e0556938d (diff) |
resolved fdo#71667 and fdo#72278, fdo#69971 follow-up fix
a9d85d62a889288b17899c8defc020da487d8b36 used
ScInputHandler::EnterHandler() to reset all sort of things related to
input EditEngine, but that is a handler for Enter and does not enter a
handler and actually attempts to finalize input, which lead to various
unwanted side effects.
Introduced ScInputHandler::InputTurnOffWinEngine() as only the input bar
window EditEngine needs to be reset in the window switching case (which
EnterHandler also does hence it did prevent that bug). The approach
could be polished with further refinement but most importantly fixes the
actual problems now.
(cherry picked from commit dfd1a47a38dac743f9ed0f1e9507714bac027d35)
Conflicts:
sc/inc/scmod.hxx
sc/source/ui/app/scmod.cxx
Change-Id: I9a0bc452b49ba11a3313cafbc1e5972f41dc65c7
Reviewed-on: https://gerrit.libreoffice.org/6935
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc/source/ui/app/inputhdl.cxx')
-rw-r--r-- | sc/source/ui/app/inputhdl.cxx | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx index 76e07524be07..b31489c4db00 100644 --- a/sc/source/ui/app/inputhdl.cxx +++ b/sc/source/ui/app/inputhdl.cxx @@ -3894,6 +3894,20 @@ void ScInputHandler::InputReplaceSelection( const OUString& rStr ) bModified = true; } +void ScInputHandler::InputTurnOffWinEngine() +{ + bInOwnChange = true; // disable ModifyHdl (reset below) + + eMode = SC_INPUT_NONE; + /* TODO: it would be better if there was some way to reset the input bar + * engine instead of deleting and having it recreate through + * GetFuncEditView(), but first least invasively let this fix fdo#71667 and + * fdo#72278 without reintroducing fdo#69971. */ + StopInputWinEngine(true); + + bInOwnChange = false; +} + //======================================================================== // ScInputHdlState //======================================================================== |