diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-09-27 15:14:46 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-10-06 14:26:17 +0000 |
commit | 06761518b63cc420ee11cff3e54e1059a5985b01 (patch) | |
tree | 8b46e4481c2b39f91699ea31da20d0ae49f50cfa /include | |
parent | 3e441af7c12e408a886256a55c34780699af7e2a (diff) |
Resolves: tdf#102177 focus not restored from context menus
this is a bunch of squashed together commits, much easier to
read commit by commit
the problem being that the attempt to restore the focus in the document in the
floatingwindow tear down is blocked because the menus have set that window as
modal so the focus isn't set.
The attempt to set the focus in the floatingwindow teardown causes the
SavedFocus in the menufloatingwindow to be dropped, so the extra layer of code
to restore focus after modality is removed doesn't do anything
this is fallout from...
commit dd46727b99d4bb5135451aa7e5e1bdb197373843
Author: Caolán McNamara <caolanm@redhat.com>
Date: Tue Apr 5 15:27:38 2016 +0100
Resolves: tdf#87120 no keyboard navigation inside floating windows
which allows the focus to "truly" enter the menus, triggering the
floatingwindow attempt, which fails but blocks the menufloatingwindow attempt
easiest thing seems to make the restoring modality, and then restore focus,
something that MenuFloatingWindow does before it finishes
(cherry picked from commit 4da7971812b0a53ba80f7d9c29851c527488067d)
the only place the default xFocusId arg isn't used...
the argument is (effectively) equal to the default
(cherry picked from commit 95a6d24ed7a231c42ccd608fb93cbed989a62e3a)
EndSaveFocus return value is unused
(cherry picked from commit 98da362f1691734437cb37f902fb1cdab613ac0a)
EndSaveFocus does nothing on the !bRestore case
(cherry picked from commit 9b7dfb10641ba7978ffcbd1db0507163411ae027)
detangle code that now looks silly since...
commit 9b7dfb10641ba7978ffcbd1db0507163411ae027
Author: Caolán McNamara <caolanm@redhat.com>
Date: Thu Jun 9 16:52:21 2016 +0100
EndSaveFocus does nothing on the !bRestore case
removed the code that made it look like it made sense
(cherry picked from commit 0d56cc15803965a1be6991a3630076f7ccf67817)
Change-Id: I97a4ac71419dcb04709e4667586d8343e89ddbeb
26fcd43d2bc8e37e6887c244f728e3231328e34e
746e47b118a8b8c687c435371e2bdf2dc22cbf88
8e199535803faf364469f9b9df46f339febe25c6
2e7280fd6643e86d65cba04c8302be099d6f3d0e
Reviewed-on: https://gerrit.libreoffice.org/29326
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'include')
-rw-r--r-- | include/vcl/window.hxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx index dea60a940d06..577416dce315 100644 --- a/include/vcl/window.hxx +++ b/include/vcl/window.hxx @@ -1132,7 +1132,7 @@ public: bool IsCompoundControl() const; static VclPtr<vcl::Window> SaveFocus(); - static bool EndSaveFocus( const VclPtr<vcl::Window>& xFocusWin, bool bRestore = true ); + static void EndSaveFocus(const VclPtr<vcl::Window>& xFocusWin); void CaptureMouse(); void ReleaseMouse(); |