To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=98275





------- Additional comments from t...@openoffice.org Thu Jan 22 11:36:08 +0000 
2009 -------
tl->mod: The difference between OOO300_m15 (working) and DEV300_m39 lies with in
your code.

the stack for m15 is:

        svxmi.dll!ImpEditEngine::Spell(EditView * pEditView=0x09e50cb0, 
unsigned char
bMultipleDoc=0x00)  Line 1492   C++
        svxmi.dll!EditView::StartSpeller(unsigned char bMultipleDoc=0x00)  Line 
944     C++
        svxmi.dll!OutlinerView::StartSpeller(unsigned char bMultiDoc=0x00)  
Line 1379   C++
        swmi.dll!SwPostIt::InitControls()  Line 787     C++
        swmi.dll!SwPostIt::SwPostIt(Window * pParent=0x05b18908, __int64
nBits=0x0000000000000144, SwFmtFld * aField=0x09dbb798, SwPostItMgr *
aMgr=0x07994330, __int64 aBits=0x0000000000000000)  Line 512    C++
>       swmi.dll!SwPostItMgr::LayoutPostIts()  Line 589 + 0x5d bytes    C++
        swmi.dll!SwView::OuterResizePixel(const Point & rOfst={...}, const Size 
&
rSize={...})  Line 1264 C++
        sfxmi.dll!SfxViewFrame::DoAdjustPosSizePixel(SfxViewShell * 
pSh=0x07afcb48,
const Point & rPos={...}, const Size & rSize={...})  Line 1937  C++
        sfxmi.dll!SfxViewFrame::Resize(unsigned char bForce=0x00)  Line 3040    
C++
        sfxmi.dll!SfxTopViewWin_Impl::Resize()  Line 382 + 0xd bytes    C++


the stack for m39 is:

        svxmi.dll!SvxSpellWrapper::SpellNext()  Line 436        C++
        svxmi.dll!SvxSpellWrapper::FindSpellError()  Line 634 + 0xb bytes       
C++
        svxmi.dll!SvxSpellWrapper::SpellDocument()  Line 407 + 0x8 bytes        
C++
        svxmi.dll!ImpEditEngine::Spell()  + 0x170 bytes C++
        svxmi.dll!EditView::StartSpeller()  + 0x9a bytes        C++
        svxmi.dll!OutlinerView::StartSpeller()  + 0x27 bytes    C++
        swmi.dll!SwMarginWin::InitControls()  Line 814  C++
>       swmi.dll!SwPostItMgr::LayoutPostIts()  Line 636 C++
        swmi.dll!SwView::OuterResizePixel(const Point & rOfst={...}, const Size 
&
rSize={...})  Line 1264 C++
        sfxmi.dll!SfxViewFrame::DoAdjustPosSizePixel()  + 0x59 bytes    C++
        sfxmi.dll!SfxViewFrame::Resize()  + 0xb9 bytes  C++
        sfxmi.dll!SfxTopViewWin_Impl::Resize()  + 0x3c bytes    C++


And the code difference is in PostItMgr.cxx where the lines 

                                                if (pItem->bShow)
                                                {
                                                        long Y = 
mpEditWin->LogicToPixel( Point(0,pItem->mPos.Bottom())).Y();
                                                        long aPostItHeight = 0;
                                                        if (!pPostIt)
                                                        {
                                                                pPostIt = new
SwPostIt(static_cast<Window*>(&mpView->GetEditWin()),WINDOW_CONTROL,pFmtFld,this,0);
                                                                
pPostIt->SetReadonly(mbReadOnly);
                                                                
SetColors(pPostIt,static_cast<SwPostItField*>(pFmtFld->GetFld()));
                                                                pItem->pPostIt 
= pPostIt;
                                                        }

got changed to:

                                                if (pItem->bShow)
                                                {
                                                        long Y = 
mpEditWin->LogicToPixel( Point(0,pItem->mPos.Bottom())).Y();
                                                        long aPostItHeight = 0;
                                                        if (!pPostIt)
                                                        {
                                                                pPostIt =
(*i)->GetMarginWindow(static_cast<Window*>(&mpView->GetEditWin()),WINDOW_CONTROL,this,0);
                                                                
pPostIt->InitControls();
                                                                
pPostIt->SetReadonly(mbReadOnly);
                                                                pItem->pPostIt 
= pPostIt;
                                                                if (mpAnswer)
                                                                {
                                                                        if 
(pPostIt->CalcFollow()) //do we really have another note in front of
this one
                                                                                
static_cast<SwPostIt*>(pPostIt)->InitAnswer(mpAnswer);
                                                                        delete 
mpAnswer;
                                                                        
mpAnswer = 0;
                                                                }
                                                        }

That is it is probably your new added call to pPostIt->InitControls() where you
start the speller that is making the trouble.

I asked AMA about his opinion on this. He also said that on of the previously
listed code lines related to the idle-loop should be the correct places to start
the spelling for notes as well.

But if you still want to do it in the current manner you may try if it helps to
*suppress starting the speller* when the document is not yet loaded. However in
that case it is unclear to if and who will start the speller later on...
If you want to check for the document still being loaded AMA suggested to try by
checking the 'mbInReading' member in SwDoc. If that is still true spelling will
be a bad idea. But it might even be necessary to wait until a layout is
available see 'pLayout' member in SwDoc.

I hope these informations will be of use to you.



---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@sw.openoffice.org
For additional commands, e-mail: issues-h...@sw.openoffice.org


---------------------------------------------------------------------
To unsubscribe, e-mail: allbugs-unsubscr...@openoffice.org
For additional commands, e-mail: allbugs-h...@openoffice.org

Reply via email to