vcl/source/window/winproc.cxx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
New commits: commit 72c2f90a42dad97cf9bc1a20c15f9946348fe01b Author: Caolán McNamara <caol...@redhat.com> Date: Tue Jan 26 14:46:49 2016 +0000 Resolves: tdf#97331 use VclPtr instead of pointers to avoid crash (cherry picked from commit 5d29ed1801a07d4649e095c25935b50f5ad32eb4) (cherry picked from commit 53e693ccfb19aa653ab2b5762c10ae87c9320954) Change-Id: Ia653a67046cb2cfb7c96367a7483ddc0cb29819e Reviewed-on: https://gerrit.libreoffice.org/21810 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Eike Rathke <er...@redhat.com> diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx index 304753a..e708e18 100644 --- a/vcl/source/window/winproc.cxx +++ b/vcl/source/window/winproc.cxx @@ -1354,7 +1354,7 @@ static bool ImplCallWheelCommand( vcl::Window* pWindow, const Point& rPos, static bool acceptableWheelScrollTarget(const vcl::Window *pMouseWindow) { - return (pMouseWindow && pMouseWindow->IsInputEnabled() && !pMouseWindow->IsInModalMode()); + return (pMouseWindow && !pMouseWindow->isDisposed() && pMouseWindow->IsInputEnabled() && !pMouseWindow->IsInModalMode()); } //If the last event at the same absolute screen position was handled by a @@ -1520,26 +1520,26 @@ public: bool HandleWheelEvent::HandleEvent(const SalWheelMouseEvent& rEvt) { static SalWheelMouseEvent aPreviousEvent; - static vcl::Window *pPreviousWindow; + static VclPtr<vcl::Window> xPreviousWindow; if (!Setup()) return false; - vcl::Window *pMouseWindow = FindTarget(); + VclPtr<vcl::Window> xMouseWindow = FindTarget(); // avoid the problem that scrolling via wheel to this point brings a widget // under the mouse that also accepts wheel commands, so stick with the old // widget if the time gap is very small - if (shouldReusePreviousMouseWindow(aPreviousEvent, rEvt) && acceptableWheelScrollTarget(pPreviousWindow)) + if (shouldReusePreviousMouseWindow(aPreviousEvent, rEvt) && acceptableWheelScrollTarget(xPreviousWindow)) { - pMouseWindow = pPreviousWindow; + xMouseWindow = xPreviousWindow.get(); } aPreviousEvent = rEvt; - pPreviousWindow = Dispatch(pMouseWindow); + xPreviousWindow = Dispatch(xMouseWindow); - return pPreviousWindow != NULL; + return xPreviousWindow; } class HandleGestureEvent : public HandleGestureEventBase
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits