This patch fixes this bug:
https://bugs.freedesktop.org/show_bug.cgi?id=52223
From ef69583b67ff9f34e615b3595984090515dec501 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?"Uray=20M.=20J=C3=A1nos"?= <uray.janos@gmail.com>
Date: Mon, 23 Jul 2012 18:48:47 +0200
Subject: [PATCH] fdo#52223 fix Object Catalog in Basic IDE when resizing
Change-Id: I96861bfcf7c0da6dd94c50acd673dedb14d15204
---
basctl/source/basicide/baside2.cxx | 28 +++++++++++++++++++++-------
basctl/source/basicide/baside2.hxx | 2 ++
basctl/source/basicide/basides1.cxx | 23 ++++-------------------
basctl/source/basicide/basidesh.cxx | 2 --
basctl/source/inc/basidesh.hxx | 2 --
5 files changed, 27 insertions(+), 30 deletions(-)
diff --git a/basctl/source/basicide/baside2.cxx b/basctl/source/basicide/baside2.cxx
index e419c42..0ece951 100644
--- a/basctl/source/basicide/baside2.cxx
+++ b/basctl/source/basicide/baside2.cxx
@@ -1508,14 +1508,14 @@ void ModulWindowLayout::ArrangeWindows()
if ( ( nVSplitPos < nMinPos ) || ( nVSplitPos > nMaxPos ) )
nVSplitPos = ( nVSplitPos < nMinPos ) ? 0 : ( aSz.Height() - SPLIT_HEIGHT );
- Size aXEWSz;
- aXEWSz.Width() = aSz.Width() - OBJCAT_PANE_WIDTH;
-
- aXEWSz.Height() = nVSplitPos + 1;
if ( m_pModulWindow )
{
DBG_CHKOBJ( m_pModulWindow, ModulWindow, 0 );
- m_pModulWindow->SetPosSizePixel( Point( OBJCAT_PANE_WIDTH, 0 ), aXEWSz );
+ bool const bObjCat = aObjectCatalog.IsVisible();
+ m_pModulWindow->SetPosSizePixel(
+ Point(bObjCat ? OBJCAT_PANE_WIDTH : 0, 0),
+ Size(bObjCat ? aSz.Width() - OBJCAT_PANE_WIDTH : aSz.Width(), nVSplitPos + 1)
+ );
}
aVSplitter.SetDragRectPixel( Rectangle( Point( 0, 0 ), Size( aSz.Width(), aSz.Height() ) ) );
@@ -1540,10 +1540,12 @@ void ModulWindowLayout::ArrangeWindows()
if ( !aStackWindow.IsFloatingMode() )
aStackWindow.SetPosSizePixel( aSWPos, aSWSz );
- Size aOCSz( OBJCAT_PANE_WIDTH, aSz.Height() - aSWSz.Height() - 3 );
- Point aOCPos( 0, 0 );
if ( !aObjectCatalog.IsFloatingMode() )
+ {
+ Size aOCSz( OBJCAT_PANE_WIDTH, aSz.Height() - aSWSz.Height() - 3 );
+ Point aOCPos( 0, 0 );
aObjectCatalog.SetPosSizePixel( aOCPos, aOCSz );
+ }
if ( aStackWindow.IsFloatingMode() && aWatchWindow.IsFloatingMode() )
aHSplitter.Hide();
@@ -1733,4 +1735,16 @@ Image ModulWindowLayout::getImage(sal_uInt16 nId) const
return m_aImagesNormal.GetImage(nId);
}
+// shows or hides the Object Catalog window (depending on its state)
+void ModulWindowLayout::ToggleObjectCatalog ()
+{
+ // show or hide?
+ bool const bShow = !aObjectCatalog.IsVisible();
+ bShow ? aObjectCatalog.Show() : aObjectCatalog.Hide();
+ if (m_pModulWindow)
+ m_pModulWindow->SetObjectCatalogDisplay(bShow);
+ // refreshing
+ ArrangeWindows();
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basctl/source/basicide/baside2.hxx b/basctl/source/basicide/baside2.hxx
index 9e90a75..e13ce31 100644
--- a/basctl/source/basicide/baside2.hxx
+++ b/basctl/source/basicide/baside2.hxx
@@ -477,6 +477,8 @@ public:
inline Color const & getSyntaxColor(TokenTypes eType) const
{ return m_aSyntaxColors[eType]; }
+
+ void ToggleObjectCatalog ();
};
#endif // _BASIDE2_HXX
diff --git a/basctl/source/basicide/basides1.cxx b/basctl/source/basicide/basides1.cxx
index d11ece3..ae9443f 100644
--- a/basctl/source/basicide/basides1.cxx
+++ b/basctl/source/basicide/basides1.cxx
@@ -439,26 +439,11 @@ void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )
pWin->EditMacro( rInfo.GetMethod() );
}
break;
+
case SID_BASICIDE_OBJCAT:
- {
- if ( bObjectCatalogDisplay )
- {
- pModulLayout->GetObjectCatalog().Hide();
- dynamic_cast<ModulWindow*>(pCurWin)->SetPosPixel( Point( 0, 0 ) );
- dynamic_cast<ModulWindow*>(pCurWin)->SetSizePixel( Size(
pCurWin->GetSizePixel().Width() + OBJCAT_PANE_WIDTH, pCurWin->GetSizePixel().Height() ) );
- dynamic_cast<ModulWindow*>(pCurWin)->SetObjectCatalogDisplay( false );
- bObjectCatalogDisplay = sal_False;
- }
- else
- {
- pModulLayout->GetObjectCatalog().Show();
- dynamic_cast<ModulWindow*>(pCurWin)->SetPosPixel( Point( OBJCAT_PANE_WIDTH, 0 ) );
- dynamic_cast<ModulWindow*>(pCurWin)->SetSizePixel( Size(
pCurWin->GetSizePixel().Width() - OBJCAT_PANE_WIDTH, pCurWin->GetSizePixel().Height() ) );
- dynamic_cast<ModulWindow*>(pCurWin)->SetObjectCatalogDisplay( true );
- bObjectCatalogDisplay = sal_True;
- }
- }
- break;
+ pModulLayout->ToggleObjectCatalog();
+ break;
+
case SID_BASICIDE_NAMECHANGEDONTAB:
{
DBG_ASSERT( rReq.GetArgs(), "arguments expected" );
diff --git a/basctl/source/basicide/basidesh.cxx b/basctl/source/basicide/basidesh.cxx
index 8144b17..885f7af 100644
--- a/basctl/source/basicide/basidesh.cxx
+++ b/basctl/source/basicide/basidesh.cxx
@@ -193,8 +193,6 @@ void BasicIDEShell::Init()
pObjectCatalog = 0;
bCreatingWindow = sal_False;
- bObjectCatalogDisplay = sal_True;
-
pTabBar = new BasicIDETabBar( &GetViewFrame()->GetWindow() );
pTabBar->SetSplitHdl( LINK( this, BasicIDEShell, TabBarSplitHdl ) );
bTabBarSplitted = sal_False;
diff --git a/basctl/source/inc/basidesh.hxx b/basctl/source/inc/basidesh.hxx
index 7ec8c84..9caf921 100644
--- a/basctl/source/inc/basidesh.hxx
+++ b/basctl/source/inc/basidesh.hxx
@@ -91,8 +91,6 @@ friend class LocalizationMgr;
friend class ContainerListenerImpl;
::com::sun::star::uno::Reference< ::com::sun::star::container::XContainerListener >
m_xLibListener;
- sal_Bool bObjectCatalogDisplay;
-
#if _SOLAR__PRIVATE
void Init();
void InitTabBar();
--
1.7.7
Context
- [PATCH] fdo#52223: fix Object Catalog in Basic IDE when resizing · János Uray
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.