Bugzilla – Attachment 129961 Details for
Bug 41063
Saving/Autosaving (Save/Autosave) while in table causes view to jump to cursor position
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
debugging code showing one factor (progressbar) that triggers the screen refresh
tdf41063_jump2cursorInTable_DEBUGGING.diff (text/plain), 6.98 KB, created by
Justin L
on 2016-12-27 14:53:28 UTC
(
hide
)
Description:
debugging code showing one factor (progressbar) that triggers the screen refresh
Filename:
MIME Type:
Creator:
Justin L
Created:
2016-12-27 14:53:28 UTC
Size:
6.98 KB
patch
obsolete
>diff --git a/framework/source/helper/statusindicatorfactory.cxx b/framework/source/helper/statusindicatorfactory.cxx >index 9f4d658..240e84e 100644 >--- a/framework/source/helper/statusindicatorfactory.cxx >+++ b/framework/source/helper/statusindicatorfactory.cxx >@@ -226,6 +226,7 @@ void StatusIndicatorFactory::end(const css::uno::Reference< css::task::XStatusIn > impl_stopWakeUpThread(); > } > >+SAL_WARN("DEBUG","StatusIndicatorFactory::End calls impl_reschedule(bAllEvents = true)"); > impl_reschedule(true); > } > >@@ -517,6 +518,7 @@ void StatusIndicatorFactory::impl_reschedule(bool bForce) > // SAFE -> > osl::ResettableMutexGuard aRescheduleGuard(RescheduleLock::get()); > >+SAL_WARN("DEBUG","if InReschedule["<<m_nInReschedule<<"]==0, then Reschedule bAllEvents = TRUE"); > if (m_nInReschedule == 0) > { > ++m_nInReschedule; >diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx >index 4077a2a..98adb39 100644 >--- a/sfx2/source/doc/guisaveas.cxx >+++ b/sfx2/source/doc/guisaveas.cxx >@@ -1324,6 +1324,7 @@ bool SfxStoringHelper::GUIStoreModel( const uno::Reference< frame::XModel >& xMo > bool bRemote = false; > sal_Int8 nStoreMode = getStoreModeFromSlotName( aSlotName ); > >+SAL_WARN("DEBUG","::GUIStoreModel["<<aSuggestedName<<"] starting"); > if ( nStoreMode == SAVEASREMOTE_REQUESTED ) > { > nStoreMode = SAVEAS_REQUESTED; >@@ -1433,6 +1434,7 @@ bool SfxStoringHelper::GUIStoreModel( const uno::Reference< frame::XModel >& xMo > aModelData.GetStorable()->store(); > } > >+SAL_WARN("DEBUG","::GUIStoreModel finished, returning bDialogUsed["<<bDialogUsed<<"] - can't do much if cursor table happens after this"); > return false; > } > >@@ -1697,6 +1699,7 @@ bool SfxStoringHelper::GUIStoreModel( const uno::Reference< frame::XModel >& xMo > } > } > >+SAL_WARN("DEBUG","::GUIStoreModel finished, returning bDialogUsed["<<bDialogUsed<<"] - can't do much if cursor table happens after this"); > return bDialogUsed; > } > >diff --git a/sw/source/core/doc/DocumentStatisticsManager.cxx b/sw/source/core/doc/DocumentStatisticsManager.cxx >index 46d4373..09172c3 100644 >--- a/sw/source/core/doc/DocumentStatisticsManager.cxx >+++ b/sw/source/core/doc/DocumentStatisticsManager.cxx >@@ -47,6 +47,7 @@ namespace > explicit LockAllViews(SwViewShell *pViewShell) > : m_pViewShell(pViewShell) > { >+SAL_WARN_IF(m_pViewShell,"DEBUG","::LockAllViews misses tablelock. #containers["<<m_pViewShell->GetRingContainer().size()<<"]"); > if (!m_pViewShell) > return; > for (SwViewShell& rShell : m_pViewShell->GetRingContainer()) >diff --git a/sw/source/filter/basflt/shellio.cxx b/sw/source/filter/basflt/shellio.cxx >index 113fe38f..99767d1 100644 >--- a/sw/source/filter/basflt/shellio.cxx >+++ b/sw/source/filter/basflt/shellio.cxx >@@ -747,6 +747,7 @@ sal_uLong SwWriter::Write( WriterRef& rxWriter, const OUString* pRealFileName ) > > SwDoc *pDoc = nullptr; > >+SAL_WARN("DEBUG","::Write pShell["<<pShell<<"] isTable["<<(pShell && pShell->IsTableMode())<<"] pOutPam["<<pOutPam<<"] writeAll["<<bWriteAll<<"] pam->EOD"); > if ( pShell && !bWriteAll && pShell->IsTableMode() ) > { > bWriteAll = true; >@@ -826,6 +827,7 @@ sal_uLong SwWriter::Write( WriterRef& rxWriter, const OUString* pRealFileName ) > > rxWriter->bWriteAll = bWriteAll; > SwDoc* pOutDoc = pDoc ? pDoc : &rDoc; >+SAL_WARN_IF(pOutDoc&& pOutDoc->GetEditShell()->GetCursor(),"DEBUG","::Write Cursor["<<*pOutDoc->GetEditShell()->GetCursor()<<"] node["<<pOutDoc->GetEditShell()->GetCursor()->GetNode().GetIndex()<<"] FindTable["<<pOutDoc->GetEditShell()->GetCursor()->GetNode().FindTableNode()<<"]"); > > // If the default PageDesc has still the initial value, > // (e.g. if no printer was set) then set it to DIN A4. >@@ -863,6 +865,7 @@ sal_uLong SwWriter::Write( WriterRef& rxWriter, const OUString* pRealFileName ) > pOutDoc->getIDocumentSettingAccess().set(DocumentSettingId::PURGE_OLE, false); > > sal_uLong nError = 0; >+SAL_WARN_IF(pPam,"DEBUG","::Write ready to call rxWriter->Write PaM["<<*pPam<<"] pMedium["<<pMedium<<"]"); > if( pMedium ) > nError = rxWriter->Write( *pPam, *pMedium, pRealFileName ); > else if( pStg.Is() ) >diff --git a/sw/source/filter/writer/writer.cxx b/sw/source/filter/writer/writer.cxx >index d0cb168..73e0474 100644 >--- a/sw/source/filter/writer/writer.cxx >+++ b/sw/source/filter/writer/writer.cxx >@@ -530,10 +530,13 @@ sal_uLong StgWriter::Write( SwPaM& rPaM, const uno::Reference < embed::XStorage > // for comparison secure to the current Pam > pOrigPam = &rPaM; > >+SAL_WARN("DEBUG","::Write save (m_)pCurPam["<<pCurPam<<"] (m_)pOrigPam["<<pOrigPam<<"] and then call WriteMedium"); >+SAL_WARN_IF(pCurPam,"DEBUG"," CurPam["<<*pCurPam<<"]"); > sal_uLong nRet = pMedium ? WriteMedium( *pMedium ) : WriteStorage(); > > pStg = nullptr; > ResetWriter(); >+SAL_WARN_IF(pCurPam,"DEBUG"," AFTER WriteMedium and ResetWriter CurPam["<<*pCurPam<<"] nRet["<<nRet<<"]"); > > return nRet; > } >diff --git a/sw/source/filter/xml/wrtxml.cxx b/sw/source/filter/xml/wrtxml.cxx >index 0447ac4..3334a6b 100644 >--- a/sw/source/filter/xml/wrtxml.cxx >+++ b/sw/source/filter/xml/wrtxml.cxx >@@ -160,6 +160,8 @@ sal_uInt32 SwXMLWriter::Write_( const uno::Reference < task::XStatusIndicator >& > xInfoSet->setPropertyValue( "TargetStorage", Any( xStg ) ); > > uno::Any aAny; >+SAL_WARN("DEBUG","::Write_ bShowProgress["<<bShowProgress<<"] forcing this to false helps DELAY the cursor move"); >+//******** bShowProgress = false; //DEBUG fix *******// > if (bShowProgress) > { > // set progress range and start status indicator >@@ -405,8 +407,10 @@ sal_uInt32 SwXMLWriter::Write_( const uno::Reference < task::XStatusIndicator >& > nRedlineFlags |= RedlineFlags::ShowDelete; > pDoc->getIDocumentRedlineAccess().SetRedlineFlags( nRedlineFlags ); > >+if( bShowProgress ) > if (xStatusIndicator.is()) > { >+SAL_WARN("DEBUG","::Write ending xStatusIndicator. avoiding this DELAYS the cursor move"); > xStatusIndicator->end(); > } > >diff --git a/vcl/unx/gtk3/gtk3gtkdata.cxx b/vcl/unx/gtk3/gtk3gtkdata.cxx >index f911d38..260a579 100644 >--- a/vcl/unx/gtk3/gtk3gtkdata.cxx >+++ b/vcl/unx/gtk3/gtk3gtkdata.cxx >@@ -458,12 +458,15 @@ SalYieldResult GtkData::Yield( bool bWait, bool bHandleAllCurrentEvents ) > return SalYieldResult::TIMEOUT; // someone else is waiting already, return > } > >+//bHandleAllCurrentEvents=false; //DEBUG fix this delays the cursor move for a very long time > if( bDispatchThread ) > { > int nMaxEvents = bHandleAllCurrentEvents ? 100 : 1; > gboolean wasOneEvent = TRUE; > while( nMaxEvents-- && wasOneEvent ) > { >+if( nMaxEvents == 99) >+ SAL_WARN("DEBUG","::Yield nMaxEvents["<<nMaxEvents+1<<"] wasOneEvent["<<wasOneEvent<<"] !!!! triggers cursor move !!!!"); > wasOneEvent = g_main_context_iteration( nullptr, bWait && !bWasEvent ); > if( wasOneEvent ) > bWasEvent = true;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 41063
:
51440
| 129961 |
131687