https://bugs.documentfoundation.org/show_bug.cgi?id=94689
--- Comment #8 from Michael Meeks <[email protected]> --- Interesting; the explanation is quite 'simple' ;-) there is an ordering change caused by the Idle re-work; and two idle handlers race each other: an asynchronous focus handling [ huh ] ... races with the 2nd trace: sfxlo.dll!SfxFrameWindow_Impl::GetFocus() Line 174 C++ vcllo.dll!vcl::Window::CompatGetFocus() Line 3975 C++ vcllo.dll!vcl::Window::ImplGrabFocus(unsigned short nFlags) Line 388 C++ vcllo.dll!vcl::Window::GrabFocus() Line 3153 C++ tklo.dll!VCLXWindow::setFocus() Line 1024 C++ fwklo.dll!`anonymous namespace'::Frame::focusGained(const com::sun::star::awt::FocusEvent & aEvent) Line 2346 C++ tklo.dll!FocusListenerMultiplexer::focusGained(const com::sun::star::awt::FocusEvent & evt) Line 76 C++ tklo.dll!VCLXWindow::ProcessWindowEvent(const VclWindowEvent & rVclWindowEvent) Line 587 C++ tklo.dll!VCLXWindow::WindowEventListener(VclSimpleEvent * pEvent) Line 419 C++ tklo.dll!VCLXWindow::LinkStubWindowEventListener(void * instance, void * data) Line 408 C++ vcllo.dll!Link<void *,long>::Call(void * data) Line 127 C++ vcllo.dll!VclEventListeners::Call(VclSimpleEvent * pEvent) Line 64 C++ vcllo.dll!vcl::Window::CallEventListeners(unsigned long nEvent, void * pData) Line 217 C++ vcllo.dll!vcl::Window::PreNotify(NotifyEvent & rNEvt) Line 71 C++ vcllo.dll!SystemWindow::PreNotify(NotifyEvent & rNEvt) Line 185 C++ vcllo.dll!vcl::Window::CompatPreNotify(NotifyEvent & rNEvt) Line 3998 C++ vcllo.dll!ImplCallPreNotify(NotifyEvent & rEvt) Line 61 C++ vcllo.dll!vcl::Window::ImplGrabFocus(unsigned short nFlags) Line 386 C++ vcllo.dll!vcl::Window::GrabFocus() Line 3153 C++ vcllo.dll!vcl::Window::ImplAsyncFocusHdl(void * __formal) Line 1806 C++ vcllo.dll!vcl::Window::LinkStubImplAsyncFocusHdl(void * instance, void * data) Line 1782 C++ vcllo.dll!Link<void *,long>::Call(void * data) Line 127 C++ vcllo.dll!ImplHandleUserEvent(ImplSVEvent * pSVEvent) Line 2041 C++ vcllo.dll!ImplWindowFrameProc(vcl::Window * _pWindow, SalFrame * __formal, unsigned short nEvent, const void * pEvent) Line 2593 C++ vcllo.dll!SalFrame::CallCallback(unsigned short nEvent, const void * pEvent) Line 247 C++ vcllo.dll!ImplHandleUserEvent(HWND__ * hWnd, long lParam) Line 4130 C++ vcllo.dll!SalFrameWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam, int & rDef) Line 5786 C++ vcllo.dll!SalFrameWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam) Line 5945 C++ user32.dll!_InternalCallWinProc@20() Unknown user32.dll!_UserCallWinProcCheckWow@32() Unknown user32.dll!_CallWindowProcAorW@24() Unknown user32.dll!_CallWindowProcW@20() Unknown opengl32.dll!_wglWndProc@16() Unknown user32.dll!_InternalCallWinProc@20() Unknown user32.dll!_UserCallWinProcCheckWow@32() Unknown user32.dll!_DispatchMessageWorker@8() Unknown user32.dll!_DispatchMessageW@4() Unknown vcllo.dll!ImplSalDispatchMessage(tagMSG * pMsg) Line 600 C++ vcllo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 616 C++ vcllo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, unsigned long nReleased) Line 676 C++ vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents, const unsigned long nReleased) Line 358 C++ vcllo.dll!Application::Yield() Line 386 C++ vcllo.dll!Application::Execute() Line 336 C++ sofficeapp.dll!desktop::Desktop::Main() Line 1607 C++ vcllo.dll!ImplSVMain() Line 169 C++ vcllo.dll!SVMain() Line 207 C++ sofficeapp.dll!soffice_main() Line 96 C++ soffice.bin!sal_main() Line 48 C soffice.bin!main(int argc, char * * argv) Line 47 C soffice.bin!WinMain(void * _hinst, void * _dummy, char * _cmdline, int _nshow) Line 47 C soffice.bin!__tmainCRTStartup() Line 618 C soffice.bin!WinMainCRTStartup() Line 466 C kernel32.dll!@BaseThreadInitThunk@12() Unknown ntdll.dll!___RtlUserThreadStart@8() Unknown ntdll.dll!__RtlUserThreadStart@8() Unknown After this - an async (?) Close_Foo ... > sfxlo.dll!SfxApplication::SetViewFrame_Impl(SfxViewFrame * pFrame) Line > 321 C++ sfxlo.dll!SfxViewFrame::SetViewFrame(SfxViewFrame * pFrame) Line 3302 C++ sfxlo.dll!SfxViewFrame::Close() Line 1122 C++ sfxlo.dll!SfxFrame::DoClose_Impl() Line 170 C++ sfxlo.dll!SfxBaseController::dispose() Line 1030 C++ fwklo.dll!`anonymous namespace'::Frame::setComponent(const com::sun::star::uno::Reference<com::sun::star::awt::XWindow> & xComponentWindow, const com::sun::star::uno::Reference<com::sun::star::frame::XController> & xController) Line 1550 C++ fwklo.dll!`anonymous namespace'::Frame::close(unsigned char bDeliverOwnership) Line 1781 C++ fwklo.dll!framework::pattern::frame::closeIt(const com::sun::star::uno::Reference<com::sun::star::uno::XInterface> & xResource, bool bDelegateOwnership) Line 80 C++ fwklo.dll!framework::CloseDispatcher::implts_closeFrame() Line 492 C++ fwklo.dll!framework::CloseDispatcher::impl_asyncCallback(void * __formal) Line 360 C++ fwklo.dll!framework::CloseDispatcher::LinkStubimpl_asyncCallback(void * instance, void * data) Line 244 C++ vcllo.dll!Link<void *,long>::Call(void * data) Line 127 C++ vcllo.dll!vcl::EventPoster::DoEvent_Impl(vcl::UserEvent * pEvent) Line 54 C++ vcllo.dll!vcl::EventPoster::LinkStubDoEvent_Impl(void * instance, void * data) Line 49 C++ vcllo.dll!Link<void *,long>::Call(void * data) Line 127 C++ vcllo.dll!ImplHandleUserEvent(ImplSVEvent * pSVEvent) Line 2041 C++ vcllo.dll!ImplWindowFrameProc(vcl::Window * _pWindow, SalFrame * __formal, unsigned short nEvent, const void * pEvent) Line 2593 C++ vcllo.dll!SalFrame::CallCallback(unsigned short nEvent, const void * pEvent) Line 247 C++ vcllo.dll!ImplHandleUserEvent(HWND__ * hWnd, long lParam) Line 4130 C++ vcllo.dll!SalFrameWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam, int & rDef) Line 5786 C++ vcllo.dll!SalFrameWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam) Line 5945 C++ user32.dll!_InternalCallWinProc@20() Unknown user32.dll!_UserCallWinProcCheckWow@32() Unknown user32.dll!_CallWindowProcAorW@24() Unknown user32.dll!_CallWindowProcW@20() Unknown opengl32.dll!_wglWndProc@16() Unknown user32.dll!_InternalCallWinProc@20() Unknown user32.dll!_UserCallWinProcCheckWow@32() Unknown user32.dll!_DispatchMessageWorker@8() Unknown user32.dll!_DispatchMessageW@4() Unknown vcllo.dll!ImplSalDispatchMessage(tagMSG * pMsg) Line 600 C++ vcllo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 616 C++ vcllo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents, unsigned long nReleased) Line 676 C++ vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents, const unsigned long nReleased) Line 358 C++ vcllo.dll!Application::Yield() Line 386 C++ vcllo.dll!Application::Execute() Line 336 C++ sofficeapp.dll!desktop::Desktop::Main() Line 1607 C++ vcllo.dll!ImplSVMain() Line 169 C++ vcllo.dll!SVMain() Line 207 C++ sofficeapp.dll!soffice_main() Line 96 C++ soffice.bin!sal_main() Line 48 C soffice.bin!main(int argc, char * * argv) Line 47 C soffice.bin!WinMain(void * _hinst, void * _dummy, char * _cmdline, int _nshow) Line 47 C soffice.bin!__tmainCRTStartup() Line 618 C soffice.bin!WinMainCRTStartup() Line 466 C kernel32.dll!@BaseThreadInitThunk@12() Unknown ntdll.dll!___RtlUserThreadStart@8() Unknown ntdll.dll!__RtlUserThreadStart@8() Unknown Sets that baby to zero (from another idle handler ...) This breaks the assumption that we will always get a focus -after- the close is done ... What an ugly heap ! =) we need to get the ordering right (or better) to aggressively de-lame-ify the Window/VCL <-> Sfx interaction. -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ Libreoffice-bugs mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
