<html>
<head>
<base href="https://bugs.documentfoundation.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Saving/Autosaving (Save/Autosave) while in table causes view to jump to cursor position"
href="https://bugs.documentfoundation.org/show_bug.cgi?id=41063#c67">Comment # 67</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Saving/Autosaving (Save/Autosave) while in table causes view to jump to cursor position"
href="https://bugs.documentfoundation.org/show_bug.cgi?id=41063">bug 41063</a>
from <span class="vcard"><a class="email" href="mailto:mikekaganski@hotmail.com" title="Mike Kaganski <mikekaganski@hotmail.com>"> <span class="fn">Mike Kaganski</span></a>
</span></b>
<pre>The call stack that resets the view is the following:
<span class="quote">> swlo.dll!SwViewShell::IsViewLocked() Line 461
> at c:\lo\core\sw\inc\viewsh.hxx(461)
> swlo.dll!SwViewShell::MakeVisible(const SwRect & rRect) Line 572
> at c:\lo\core\sw\source\core\view\viewsh.cxx(572)
> swlo.dll!SwCursorShell::MakeSelVisible() Line 2828
> at c:\lo\core\sw\source\core\crsr\crsrsh.cxx(2828)
> swlo.dll!SwFEShell::MakeSelVisible() Line 2584
> at c:\lo\core\sw\source\core\frmedt\feshview.cxx(2584)
> swlo.dll!SwCursorShell::UpdateCursor(unsigned short eFlags, bool bIdleEnd) Line 1844
> at c:\lo\core\sw\source\core\crsr\crsrsh.cxx(1844)
> swlo.dll!SwCursorShell::EndAction(const bool bIdleEnd, const bool DoSetPosX) Line 274
> at c:\lo\core\sw\source\core\crsr\crsrsh.cxx(274)
> swlo.dll!SwCursorShell::CheckTableBoxContent(const SwPosition * pPos) Line 868
> at c:\lo\core\sw\source\core\crsr\trvltbl.cxx(868)
> swlo.dll!SwCursorShell::EndAllTableBoxEdit() Line 923
> at c:\lo\core\sw\source\core\crsr\trvltbl.cxx(923)
> swlo.dll!SwDocShell::SaveAs(SfxMedium & rMedium) Line 506
> at c:\lo\core\sw\source\uibase\app\docsh.cxx(506)
> sfxlo.dll!SfxObjectShell::SaveAsOwnFormat(SfxMedium & rMedium) Line 3087
> at c:\lo\core\sfx2\source\doc\objstor.cxx(3087)
> sfxlo.dll!SfxObjectShell::SaveTo_Impl(SfxMedium & rMedium, const SfxItemSet * pSet) Line 1427
> at c:\lo\core\sfx2\source\doc\objstor.cxx(1427)
> sfxlo.dll!SfxObjectShell::PreDoSaveAs_Impl(const rtl::OUString & rFileName, const rtl::OUString & aFilterName, const SfxItemSet & rItemSet) Line 2847
> at c:\lo\core\sfx2\source\doc\objstor.cxx(2847)
> sfxlo.dll!SfxObjectShell::CommonSaveAs_Impl(const INetURLObject & aURL, const rtl::OUString & aFilterName, SfxItemSet & rItemSet) Line 2705
> at c:\lo\core\sfx2\source\doc\objstor.cxx(2705)
> sfxlo.dll!SfxObjectShell::APISaveAs_Impl(const rtl::OUString & aFileName, SfxItemSet & rItemSet) Line 307
> at c:\lo\core\sfx2\source\doc\objserv.cxx(307)
> sfxlo.dll!SfxBaseModel::impl_store(const rtl::OUString & sURL, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & seqArguments, bool bSaveTo) Line 2970
> at c:\lo\core\sfx2\source\doc\sfxbasemodel.cxx(2970)
> sfxlo.dll!SfxBaseModel::storeToRecoveryFile(const rtl::OUString & i_TargetLocation, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & i_MediaDescriptor) Line 1666
> at c:\lo\core\sfx2\source\doc\sfxbasemodel.cxx(1666)
> fwklo.dll!`anonymous namespace'::AutoRecovery::implts_saveOneDoc(const rtl::OUString & sBackupPath, `anonymous-namespace'::AutoRecovery::TDocumentInfo & rInfo, const com::sun::star::uno::Reference<com::sun::star::task::XStatusIndicator> & xExternalProgress) Line 3061
> at c:\lo\core\framework\source\services\autorecovery.cxx(3061)
> fwklo.dll!`anonymous namespace'::AutoRecovery::implts_saveDocs(bool bAllowUserIdleLoop, bool bRemoveLockFiles, const `anonymous-namespace'::DispatchParams * pParams) Line 2960
> at c:\lo\core\framework\source\services\autorecovery.cxx(2960)
> fwklo.dll!`anonymous namespace'::AutoRecovery::implts_timerExpired(Timer * __formal) Line 2310
> at c:\lo\core\framework\source\services\autorecovery.cxx(2310)
> fwklo.dll!`anonymous namespace'::AutoRecovery::LinkStubimplts_timerExpired(void * instance, Timer * data) Line 2248
> at c:\lo\core\framework\source\services\autorecovery.cxx(2248)
> vcllo.dll!Link<Timer *,void>::Call(Timer * data) Line 84
> at c:\lo\core\include\tools\link.hxx(84)
> vcllo.dll!Timer::Invoke() Line 77
> at c:\lo\core\vcl\source\app\timer.cxx(77)
> vcllo.dll!Scheduler::ProcessTaskScheduling() Line 448
> at c:\lo\core\vcl\source\app\scheduler.cxx(448)
> vcllo.dll!Scheduler::CallbackTaskScheduling() Line 271
> at c:\lo\core\vcl\source\app\scheduler.cxx(271)
> vcllo.dll!SalTimer::CallCallback() Line 56
> at c:\lo\core\vcl\inc\saltimer.hxx(56)
> vcllo.dll!WinSalTimer::ImplHandleElapsedTimer() Line 158
> at c:\lo\core\vcl\win\app\saltimer.cxx(158)
> vcllo.dll!WinSalTimer::ImplHandleTimerEvent(unsigned __int64 aWPARAM) Line 168
> at c:\lo\core\vcl\win\app\saltimer.cxx(168)
> vcllo.dll!SalComWndProc(HWND__ * __formal, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam, bool & rDef) Line 642
> at c:\lo\core\vcl\win\app\salinst.cxx(642)
> vcllo.dll!SalComWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 670
> at c:\lo\core\vcl\win\app\salinst.cxx(670)
> user32.dll!UserCallWinProcCheckWow()
> user32.dll!DispatchMessageWorker()
> vcllo.dll!ImplSalDispatchMessage(const tagMSG * pMsg) Line 458
> at c:\lo\core\vcl\win\app\salinst.cxx(458)
> vcllo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 526
> at c:\lo\core\vcl\win\app\salinst.cxx(526)
> vcllo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) Line 555
> at c:\lo\core\vcl\win\app\salinst.cxx(555)
> vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 470
> at c:\lo\core\vcl\source\app\svapp.cxx(470)
> vcllo.dll!Application::Yield() Line 536
> at c:\lo\core\vcl\source\app\svapp.cxx(536)
> vcllo.dll!Application::Execute() Line 450
> at c:\lo\core\vcl\source\app\svapp.cxx(450)
> sofficeapp.dll!desktop::Desktop::Main() Line 1635
> at c:\lo\core\desktop\source\app\app.cxx(1635)
> vcllo.dll!ImplSVMain() Line 200
> at c:\lo\core\vcl\source\app\svmain.cxx(200)
> vcllo.dll!SVMain() Line 239
> at c:\lo\core\vcl\source\app\svmain.cxx(239)
> sofficeapp.dll!soffice_main() Line 169
> at c:\lo\core\desktop\source\app\sofficemain.cxx(169)
> soffice.bin!sal_main() Line 48
> at c:\lo\core\desktop\source\app\main.c(48)
> soffice.bin!main(int argc, char * * argv) Line 47
> at c:\lo\core\desktop\source\app\main.c(47)
> soffice.bin!WinMain(void * _hinst, void * _dummy, char * _cmdline, int _nshow) Line 47
> at c:\lo\core\desktop\source\app\main.c(47)
> soffice.bin!invoke_main() Line 107
> at f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl(107)
> soffice.bin!__scrt_common_main_seh() Line 283
> at f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl(283)
> soffice.bin!__scrt_common_main() Line 326
> at f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl(326)
> soffice.bin!WinMainCRTStartup() Line 17
> at f:\dd\vctools\crt\vcstartup\src\startup\exe_winmain.cpp(17)
> kernel32.dll!BaseThreadInitThunk()
> ntdll.dll!RtlUserThreadStart()</span >
... so the problematic part is the SwCursorShell::EndAllTableBoxEdit being not
wrapped into some guard like the one that was fixed in
<a href="http://cgit.freedesktop.org/libreoffice/core/commit/?id=2d67042dc2f0672d1aca4784e61eb2a5d0e91e08">http://cgit.freedesktop.org/libreoffice/core/commit/?id=2d67042dc2f0672d1aca4784e61eb2a5d0e91e08</a>
(see <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - Current display of the document moves away (jumps) when saving or when autorecovery information is saved"
href="show_bug.cgi?id=95797">bug 95797</a>).</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>