View | Details | Raw Unified | Return to issue 116037
Collapse All | Expand All

(-)a/sc/source/ui/app/client.cxx (+10 lines)
Lines 254-256 Link Here
254
	}
254
	}
255
}
255
}
256
256
257
void ScClient::DeactivateObj()
258
{
259
    DeactivateObject();
260
261
    ScTabViewShell* pViewSh = dynamic_cast< ScTabViewShell* >( GetViewShell() );
262
    if ( pViewSh )
263
    {
264
        pViewSh->UpdateInputHandler();
265
    }
266
}
(-)a/sc/source/ui/app/scdll.cxx (-2 / +1 lines)
Lines 287-294 Link Here
287
287
288
	//	Child-Windows
288
	//	Child-Windows
289
289
290
	// Hack: Eingabezeile mit 42 registrieren, damit sie im PlugIn immer sichtbar ist
290
    ScInputWindowWrapper        ::RegisterChildWindow( TRUE, pMod, SFX_CHILDWIN_TASK|SFX_CHILDWIN_FORCEDOCK|SFX_CHILDWIN_NEVERHIDEACTIVEOLE );
291
	ScInputWindowWrapper		::RegisterChildWindow(42, pMod, SFX_CHILDWIN_TASK|SFX_CHILDWIN_FORCEDOCK);
292
    ScNavigatorDialogWrapper    ::RegisterChildWindowContext(
291
    ScNavigatorDialogWrapper    ::RegisterChildWindowContext(
293
            sal::static_int_cast<sal_uInt16>(ScTabViewShell::GetInterfaceId()), pMod);
292
            sal::static_int_cast<sal_uInt16>(ScTabViewShell::GetInterfaceId()), pMod);
294
	ScSolverDlgWrapper			::RegisterChildWindow(FALSE, pMod);
293
	ScSolverDlgWrapper			::RegisterChildWindow(FALSE, pMod);
(-)a/sc/source/ui/drawfunc/fusel.cxx (-5 / +7 lines)
Lines 56-61 Link Here
56
#include "drwlayer.hxx"
56
#include "drwlayer.hxx"
57
#include "userdat.hxx"
57
#include "userdat.hxx"
58
#include "scmod.hxx"
58
#include "scmod.hxx"
59
#include "client.hxx"
59
60
60
// -----------------------------------------------------------------------
61
// -----------------------------------------------------------------------
61
62
Lines 462-476 Link Here
462
	/**************************************************************************
463
	/**************************************************************************
463
	* Ggf. OLE-Objekt beruecksichtigen
464
	* Ggf. OLE-Objekt beruecksichtigen
464
	**************************************************************************/
465
	**************************************************************************/
465
	SfxInPlaceClient* pIPClient = pViewShell->GetIPClient();
466
466
467
	if (pIPClient)
467
    ScClient* pClient = static_cast< ScClient* >( pViewShell->GetIPClient() );
468
    if ( pClient )
468
	{
469
	{
469
        ScModule* pScMod = SC_MOD();
470
        ScModule* pScMod = SC_MOD();
470
        bool bUnoRefDialog = pScMod->IsRefDialogOpen() && pScMod->GetCurRefDlgId() == WID_SIMPLE_REF;
471
        bool bUnoRefDialog = pScMod->IsRefDialogOpen() && pScMod->GetCurRefDlgId() == WID_SIMPLE_REF;
471
472
        if ( pClient->IsObjectInPlaceActive() && !bUnoRefDialog )
472
        if ( pIPClient->IsObjectInPlaceActive() && !bUnoRefDialog )
473
        {
473
            pIPClient->DeactivateObject();
474
            pClient->DeactivateObj();
475
        }
474
	}
476
	}
475
477
476
	USHORT nClicks = rMEvt.GetClicks();
478
	USHORT nClicks = rMEvt.GetClicks();
(-)a/sc/source/ui/inc/client.hxx (+1 lines)
Lines 56-61 Link Here
56
	SdrGrafObj*		GetGrafEdit() const				{ return pGrafEdit; }
56
	SdrGrafObj*		GetGrafEdit() const				{ return pGrafEdit; }
57
	void			SetGrafEdit(SdrGrafObj* pNew)	{ pGrafEdit = pNew; }
57
	void			SetGrafEdit(SdrGrafObj* pNew)	{ pGrafEdit = pNew; }
58
	SdrOle2Obj*		GetDrawObj();
58
	SdrOle2Obj*		GetDrawObj();
59
    void            DeactivateObj();
59
};
60
};
60
61
61
62
(-)a/sc/source/ui/view/drawview.cxx (-1 / +1 lines)
Lines 416-422 Link Here
416
	{
416
	{
417
		//	#41730# beim ViewShell::Activate aus dem Reset2Open nicht die Handles anzeigen
417
		//	#41730# beim ViewShell::Activate aus dem Reset2Open nicht die Handles anzeigen
418
		//HMHbDisableHdl = TRUE;
418
		//HMHbDisableHdl = TRUE;
419
        pClient->DeactivateObject();
419
        pClient->DeactivateObj();
420
		//HMHbDisableHdl = FALSE;
420
		//HMHbDisableHdl = FALSE;
421
		//	Image-Ole wieder durch Grafik ersetzen passiert jetzt in ScClient::UIActivate
421
		//	Image-Ole wieder durch Grafik ersetzen passiert jetzt in ScClient::UIActivate
422
	}
422
	}
(-)a/sc/source/ui/view/tabvwshb.cxx (-1 / +8 lines)
Lines 76-81 Link Here
76
#include "chartarr.hxx"
76
#include "chartarr.hxx"
77
#include "drawview.hxx"
77
#include "drawview.hxx"
78
#include "ChartRangeSelectionListener.hxx"
78
#include "ChartRangeSelectionListener.hxx"
79
#include "inputhdl.hxx"
79
80
80
using namespace com::sun::star;
81
using namespace com::sun::star;
81
82
Lines 179-184 Link Here
179
			bErrorShown = TRUE;
180
			bErrorShown = TRUE;
180
			// SfxViewShell::DoVerb zeigt seine Fehlermeldungen selber an
181
			// SfxViewShell::DoVerb zeigt seine Fehlermeldungen selber an
181
182
183
            ScInputHandler* pInputHdl = SC_MOD()->GetInputHdl( this );
184
            if ( pInputHdl )
185
            {
186
                pInputHdl->NotifyChange( NULL );
187
            }
188
182
			// attach listener to selection changes in chart that affect cell
189
			// attach listener to selection changes in chart that affect cell
183
			// ranges, so those can be highlighted
190
			// ranges, so those can be highlighted
184
            // note: do that after DoVerb, so that the chart controller exists
191
            // note: do that after DoVerb, so that the chart controller exists
Lines 263-269 Link Here
263
270
264
    ScClient* pClient = (ScClient*) GetIPClient();
271
    ScClient* pClient = (ScClient*) GetIPClient();
265
    if ( pClient && pClient->IsObjectInPlaceActive() && !bUnoRefDialog )
272
    if ( pClient && pClient->IsObjectInPlaceActive() && !bUnoRefDialog )
266
        pClient->DeactivateObject();
273
        pClient->DeactivateObj();
267
}
274
}
268
275
269
void ScTabViewShell::ExecDrawIns(SfxRequest& rReq)
276
void ScTabViewShell::ExecDrawIns(SfxRequest& rReq)
(-)a/sfx2/inc/sfx2/childwin.hxx (+1 lines)
Lines 60-65 Link Here
60
#define SFX_CHILDWIN_CANTGETFOCUS 0x20		// ChildWindow kann keinen Focus bekommen
60
#define SFX_CHILDWIN_CANTGETFOCUS 0x20		// ChildWindow kann keinen Focus bekommen
61
#define SFX_CHILDWIN_ALWAYSAVAILABLE 0x40   // ChildWindow is never disabled
61
#define SFX_CHILDWIN_ALWAYSAVAILABLE 0x40   // ChildWindow is never disabled
62
#define SFX_CHILDWIN_NEVERHIDE    0x80      // ChildWindow is can always made visible/is visible
62
#define SFX_CHILDWIN_NEVERHIDE    0x80      // ChildWindow is can always made visible/is visible
63
#define SFX_CHILDWIN_NEVERHIDEACTIVEOLE 0x0100 // ChildWindow is visible with active inplace client
63
#define CHILDWIN_NOPOS		      USHRT_MAX
64
#define CHILDWIN_NOPOS		      USHRT_MAX
64
65
65
// Konfiguration eines ChildWindows
66
// Konfiguration eines ChildWindows
(-)a/sfx2/source/appl/childwin.cxx (-3 lines)
Lines 467-478 Link Here
467
            if ( nNextPos != STRING_NOTFOUND )
467
            if ( nNextPos != STRING_NOTFOUND )
468
            {
468
            {
469
                // es gibt noch Extra-Information
469
                // es gibt noch Extra-Information
470
                rInfo.nFlags = (sal_uInt16)aWinData.Copy( nPos+1, nNextPos - nPos - 1 ).ToInt32();
471
                aWinData.Erase( nPos, nNextPos-nPos+1 );
470
                aWinData.Erase( nPos, nNextPos-nPos+1 );
472
                rInfo.aExtraString = aWinData;
471
                rInfo.aExtraString = aWinData;
473
            }
472
            }
474
            else
475
                rInfo.nFlags = (sal_uInt16)aWinData.Copy( nPos+1 ).ToInt32();
476
		}
473
		}
477
	}
474
	}
478
}
475
}
(-)a/sfx2/source/appl/workwin.cxx (-4 / +23 lines)
Lines 822-828 Link Here
822
    if ( pF && pF->GetViewShell() )
822
    if ( pF && pF->GetViewShell() )
823
        pClient = pF->GetViewShell()->GetIPClient();
823
        pClient = pF->GetViewShell()->GetIPClient();
824
824
825
    if ( pClient )
825
    bool bForceArrange( false );
826
    for ( USHORT n = 0; n < pChildWins->Count(); ++n )
827
    {
828
        SfxChildWin_Impl* pCW  = (*pChildWins)[ n ];
829
        SfxChildWindow* pChild = pCW->pWin;
830
        if ( pChild && ( pCW->aInfo.nFlags & SFX_CHILDWIN_NEVERHIDEACTIVEOLE ) && pCW->aInfo.bVisible )
831
        {
832
            bForceArrange = true;
833
            break;
834
        }
835
    }
836
    
837
    if ( pClient && !bForceArrange )
826
        return;
838
        return;
827
839
828
	aClientArea = GetTopRect_Impl();
840
	aClientArea = GetTopRect_Impl();
Lines 832-838 Link Here
832
	SvBorder aBorder;
844
	SvBorder aBorder;
833
	if ( nChilds )
845
	if ( nChilds )
834
    {
846
    {
835
        if ( IsVisible_Impl() )
847
        if ( IsVisible_Impl() || bForceArrange )
836
            aBorder = Arrange_Impl();
848
            aBorder = Arrange_Impl();
837
    }
849
    }
838
850
Lines 1143-1148 Link Here
1143
	DBG_CHKTHIS(SfxWorkWindow, 0);
1155
	DBG_CHKTHIS(SfxWorkWindow, 0);
1144
1156
1145
    bool bInvisible = ( !IsVisible_Impl() || ( !pWorkWin->IsReallyVisible() && !pWorkWin->IsReallyShown() ));
1157
    bool bInvisible = ( !IsVisible_Impl() || ( !pWorkWin->IsReallyVisible() && !pWorkWin->IsReallyShown() ));
1158
    
1159
    SfxInPlaceClient* pClient = 0;
1160
    SfxViewFrame* pViewFrame = pBindings->GetDispatcher_Impl()->GetFrame();
1161
    if ( pViewFrame && pViewFrame->GetViewShell() )
1162
    {
1163
        pClient = pViewFrame->GetViewShell()->GetIPClient();
1164
    }
1146
	
1165
	
1147
    SfxChild_Impl *pCli = 0;
1166
    SfxChild_Impl *pCli = 0;
1148
	for ( USHORT nPos = 0; nPos < pChilds->Count(); ++nPos )
1167
	for ( USHORT nPos = 0; nPos < pChilds->Count(); ++nPos )
Lines 1173-1178 Link Here
1173
                // visible.
1192
                // visible.
1174
                sal_uInt16 nFlags = pCW->aInfo.nFlags;
1193
                sal_uInt16 nFlags = pCW->aInfo.nFlags;
1175
                bVisible = !bInvisible || ( bInvisible & (( nFlags & SFX_CHILDWIN_NEVERHIDE ) != 0 ));
1194
                bVisible = !bInvisible || ( bInvisible & (( nFlags & SFX_CHILDWIN_NEVERHIDE ) != 0 ));
1195
                bVisible = bVisible || ( pClient && ( nFlags & SFX_CHILDWIN_NEVERHIDEACTIVEOLE ) );
1176
            }
1196
            }
1177
                
1197
                
1178
            if ( CHILD_VISIBLE == (pCli->nVisible & CHILD_VISIBLE) && bVisible )
1198
            if ( CHILD_VISIBLE == (pCli->nVisible & CHILD_VISIBLE) && bVisible )
Lines 1645-1652 Link Here
1645
1665
1646
void SfxWorkWindow::CreateChildWin_Impl( SfxChildWin_Impl *pCW, BOOL bSetFocus )
1666
void SfxWorkWindow::CreateChildWin_Impl( SfxChildWin_Impl *pCW, BOOL bSetFocus )
1647
{
1667
{
1648
	if ( pCW->aInfo.bVisible != 42 )
1668
    pCW->aInfo.bVisible = TRUE;
1649
		pCW->aInfo.bVisible = TRUE;
1650
1669
1651
    SfxChildWindow *pChildWin = SfxChildWindow::CreateChildWindow( pCW->nId, pWorkWin, &GetBindings(), pCW->aInfo);
1670
    SfxChildWindow *pChildWin = SfxChildWindow::CreateChildWindow( pCW->nId, pWorkWin, &GetBindings(), pCW->aInfo);
1652
	if (pChildWin)
1671
	if (pChildWin)

Return to issue 116037