[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

rpms/openoffice.org/devel workspace.impress57.patch, NONE, 1.1 openoffice.org.spec, 1.432, 1.433



Author: caolanm

Update of /cvs/dist/rpms/openoffice.org/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv18470

Modified Files:
	openoffice.org.spec 
Added Files:
	workspace.impress57.patch 
Log Message:
likely fix for rh#167130#

workspace.impress57.patch:
 sdi/SlideSorterController.sdi                              |   40 --
 source/ui/accessibility/AccessibleSlideSorterView.cxx      |    6 
 source/ui/dlg/dlgass.src                                   |    1 
 source/ui/inc/SlideSorterViewShell.hxx                     |    5 
 source/ui/inc/ViewShell.hxx                                |    2 
 source/ui/slidesorter/controller/SlideSorterController.cxx |    9 
 source/ui/slidesorter/controller/SlsClipboard.cxx          |  244 ++++++++----
 source/ui/slidesorter/controller/SlsSelectionFunction.cxx  |   18 
 source/ui/slidesorter/controller/SlsSlotManager.cxx        |  250 -------------
 source/ui/slidesorter/controller/SlsSlotManager.hxx        |    4 
 source/ui/slidesorter/inc/controller/SlsClipboard.hxx      |   32 +
 source/ui/slidesorter/model/SlideSorterModel.cxx           |    2 
 source/ui/slidesorter/shell/SlideSorterViewShell.cxx       |   26 +
 source/ui/toolpanel/LayoutMenu.cxx                         |    2 
 source/ui/toolpanel/SubToolPanel.cxx                       |    4 
 source/ui/toolpanel/ToolPanel.cxx                          |    2 
 source/ui/toolpanel/controls/MasterPagesSelector.cxx       |   10 
 source/ui/tools/EventMultiplexer.cxx                       |    6 
 source/ui/view/ViewShellBase.cxx                           |    6 
 source/ui/view/ViewShellCache.cxx                          |    7 
 source/ui/view/sdview.cxx                                  |   31 -
 21 files changed, 285 insertions(+), 422 deletions(-)

--- NEW FILE workspace.impress57.patch ---
? source/ui/app/optsitem.cxx.ooo44843.sdcasting.patch
Index: sdi/SlideSorterController.sdi
===================================================================
RCS file: /cvs/graphics/sd/sdi/SlideSorterController.sdi,v
retrieving revision 1.9
retrieving revision 1.9.30.1
diff -u -r1.9 -r1.9.30.1
--- openoffice.org.orig/sd/sdi/SlideSorterController.sdi	27 Apr 2005 08:55:17 -0000	1.9
+++ openoffice.org/sd/sdi/SlideSorterController.sdi	26 May 2005 08:58:16 -0000	1.9.30.1
@@ -169,11 +169,6 @@
 		ExecMethod = FuTemporary ;
 		StateMethod = GetMenuState ;
 	]
-	SID_ATTR_ZOOM // ole : no, status : ?
-	[
-		ExecMethod = FuTemporary ;
-		StateMethod = GetStatusBarState ;
-	]
 	SID_HIDE_SLIDE // ole : no, status : ?
 	[
 		ExecMethod = FuTemporary ;
@@ -184,51 +179,16 @@
 		ExecMethod = FuPermanent ;
 		StateMethod = GetMenuState ;
 	]
-	SID_ZOOM_NEXT // ole : no, status : play rec
-	[
-		ExecMethod = FuSupport ;
-		StateMethod = GetMenuState ;
-	]
-	SID_ZOOM_PREV // ole : no, status : play rec
-	[
-		ExecMethod = FuSupport ;
-		StateMethod = GetMenuState ;
-	]
 	SID_ZOOM_TOOLBOX // ole : no, status : ?
 	[
 		ExecMethod = FuTemporary ;
 		StateMethod = GetMenuState ;
 	]
-	SID_ZOOM_OUT // ole : no, status : play rec
-	[
-		ExecMethod = FuTemporary ;
-		StateMethod = GetMenuState ;
-	]
-	SID_ZOOM_IN // ole : no, status : play rec
-	[
-		ExecMethod = FuTemporary ;
-		StateMethod = GetMenuState ;
-	]
-	SID_SIZE_REAL // ole : no, status : play rec
-	[
-		ExecMethod = FuTemporary ;
-		StateMethod = GetMenuState ;
-	]
 	SID_SIZE_VISAREA // ole : no, status : no
 	[
 		ExecMethod = FuTemporary ;
 		StateMethod = GetMenuState ;
 	]
-	SID_SIZE_PAGE // ole : no, status : play rec
-	[
-		ExecMethod = FuTemporary ;
-		StateMethod = GetMenuState ;
-	]
-	SID_SIZE_ALL // ole : no, status : play rec
-	[
-		ExecMethod = FuTemporary ;
-		StateMethod = GetMenuState ;
-	]
 	SID_PAGES_PER_ROW // ole : no, status : ?
 	[
 		ExecMethod = FuTemporary ;
Index: source/ui/accessibility/AccessibleSlideSorterView.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx,v
retrieving revision 1.2
retrieving revision 1.2.8.1
diff -u -r1.2 -r1.2.8.1
--- openoffice.org.orig/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx	14 Jul 2005 10:10:40 -0000	1.2
+++ openoffice.org/sd/source/ui/accessibility/AccessibleSlideSorterView.cxx	26 Jul 2005 15:41:06 -0000	1.2.8.1
@@ -163,7 +163,10 @@
 AccessibleSlideSorterView::~AccessibleSlideSorterView (void)
 {
     if ( ! IsDisposed())
+    {
+        mpImpl->Dispose();
         Destroyed ();
+    }
 }
 
 
@@ -207,8 +210,6 @@
     // Send a disposing to all listeners.
 	if (mnClientId != 0)
 	{
-        mpImpl->Clear();
-        
         comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( mnClientId, *this );
 		mnClientId = 0;
 	}
@@ -826,7 +827,6 @@
 
 AccessibleSlideSorterView::Implementation::~Implementation (void)
 {
-    ReleaseListeners();
 }
 
 
Index: source/ui/dlg/dlgass.src
===================================================================
RCS file: /cvs/graphics/sd/source/ui/dlg/dlgass.src,v
retrieving revision 1.44
retrieving revision 1.44.50.1
diff -u -r1.44 -r1.44.50.1
--- openoffice.org.orig/sd/source/ui/dlg/dlgass.src	6 Apr 2005 09:44:13 -0000	1.44
+++ openoffice.org/sd/source/ui/dlg/dlgass.src	30 May 2005 16:40:12 -0000	1.44.50.1
@@ -183,6 +183,7 @@
 		TabStop = TRUE;
 		Border = TRUE;
 		HelpId = HID_SD_AUTOPILOT_OPEN ;
+        AutoHScroll = TRUE;
 	};
 
 	// Seite 2
Index: source/ui/inc/SlideSorterViewShell.hxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/inc/SlideSorterViewShell.hxx,v
retrieving revision 1.6
retrieving revision 1.5.110.2
diff -u -r1.6 -r1.5.110.2
--- openoffice.org.orig/sd/source/ui/inc/SlideSorterViewShell.hxx	14 Jul 2005 10:13:09 -0000	1.6
+++ openoffice.org/sd/source/ui/inc/SlideSorterViewShell.hxx	20 Jul 2005 08:24:03 -0000	1.5.110.2
@@ -293,6 +293,11 @@
     */
     virtual controller::SlideSorterController* CreateController (void);
 
+    /** This method is overloaded to handle a missing tool bar correctly.
+        This is the case when the slide sorter is not the main view shell.
+    */
+    virtual SfxUndoManager* ImpGetUndoManager (void) const;
+
 private:
 	::std::auto_ptr<TabBar> mpTabBar;
 
Index: source/ui/inc/ViewShell.hxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/inc/ViewShell.hxx,v
retrieving revision 1.14
retrieving revision 1.14.110.1
diff -u -r1.14 -r1.14.110.1
--- openoffice.org.orig/sd/source/ui/inc/ViewShell.hxx	17 Feb 2005 09:43:08 -0000	1.14
+++ openoffice.org/sd/source/ui/inc/ViewShell.hxx	1 Jun 2005 08:43:12 -0000	1.14.110.1
@@ -619,7 +619,7 @@
     ::std::auto_ptr<Implementation> mpImpl;
 
 	// #96090# Support methods for centralized UNDO/REDO
-	SfxUndoManager* ImpGetUndoManager (void) const;
+	virtual SfxUndoManager* ImpGetUndoManager (void) const;
 	void ImpGetUndoStrings(SfxItemSet &rSet) const;
 	void ImpGetRedoStrings(SfxItemSet &rSet) const;
 	void ImpSidUndo(BOOL bDrawViewShell, SfxRequest& rReq);
Index: source/ui/slidesorter/controller/SlideSorterController.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/slidesorter/controller/SlideSorterController.cxx,v
retrieving revision 1.21
retrieving revision 1.18.42.3
diff -u -r1.21 -r1.18.42.3
--- openoffice.org.orig/sd/source/ui/slidesorter/controller/SlideSorterController.cxx	21 Jul 2005 13:44:21 -0000	1.21
+++ openoffice.org/sd/source/ui/slidesorter/controller/SlideSorterController.cxx	27 Jul 2005 12:41:52 -0000	1.18.42.3
@@ -491,6 +491,15 @@
             bEventHasBeenHandled = true;
         }
         break;
+        
+        case COMMAND_WHEEL:
+        {
+            // We ignore zooming with control+mouse wheel.
+            const CommandWheelData* pData = rEvent.GetWheelData();
+            if (pData!=NULL && pData->IsMod1())
+                bEventHasBeenHandled = true;
+        }
+        break;
 	}
 
     return bEventHasBeenHandled;
Index: source/ui/slidesorter/controller/SlsClipboard.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/slidesorter/controller/SlsClipboard.cxx,v
retrieving revision 1.13
retrieving revision 1.12.42.2
diff -u -r1.13 -r1.12.42.2
--- openoffice.org.orig/sd/source/ui/slidesorter/controller/SlsClipboard.cxx	7 Jul 2005 13:35:27 -0000	1.13
+++ openoffice.org/sd/source/ui/slidesorter/controller/SlsClipboard.cxx	30 May 2005 15:52:50 -0000	1.12.42.2
@@ -75,6 +75,8 @@
 #include "controller/SlsScrollBarManager.hxx"
 #include "controller/SlsFocusManager.hxx"
 
+#include "ViewShellBase.hxx"
+#include "DrawViewShell.hxx"
 #include "Window.hxx"
 #include "fupoor.hxx"
 #include "fuslhide.hxx"
@@ -84,6 +86,7 @@
 #include "fuexpand.hxx"
 #include "fusumry.hxx"
 #include "app.hrc"
+#include "glob.hrc"
 #include "strings.hrc"
 #include "sdresid.hxx"
 #include "sdxfer.hxx"
@@ -101,6 +104,7 @@
 #include <svx/svxids.hrc>
 #include <vcl/msgbox.hxx>
 #include <tools/urlobj.hxx>
+#include <rtl/ustring.hxx>
 
 namespace sd { namespace slidesorter { namespace controller {
 
@@ -504,21 +508,36 @@
 {
     sal_Int8 nResult = DND_ACTION_NONE;
 
-    if (IsDropAccepted())
+    switch (IsDropAccepted())
     {
-        const SdTransferable* pDragTransferable = SD_MOD()->pTransferDrag;
-        // Accept a drop.
-        nResult = rEvent.mnAction;
-
-        // Show the insertion marker and the substitution for a drop.
-        Point aPosition = pTargetWindow->PixelToLogic (rEvent.maPosPixel);
-        view::ViewOverlay& rOverlay (mrController.GetView().GetOverlay());
-        rOverlay.GetInsertionIndicatorOverlay().SetPosition (aPosition);
-        rOverlay.GetInsertionIndicatorOverlay().Show();
-        rOverlay.GetSubstitutionOverlay().SetPosition (aPosition);
+        case DT_PAGE:
+        {
+            const SdTransferable* pDragTransferable = SD_MOD()->pTransferDrag;
+            // Accept a drop.
+            nResult = rEvent.mnAction;
+
+            // Show the insertion marker and the substitution for a drop.
+            Point aPosition = pTargetWindow->PixelToLogic (rEvent.maPosPixel);
+            view::ViewOverlay& rOverlay (mrController.GetView().GetOverlay());
+            rOverlay.GetInsertionIndicatorOverlay().SetPosition (aPosition);
+            rOverlay.GetInsertionIndicatorOverlay().Show();
+            rOverlay.GetSubstitutionOverlay().SetPosition (aPosition);
+
+            // Scroll the window when the mouse reaches the window border.
+            mrController.GetScrollBarManager().AutoScroll (rEvent.maPosPixel);
+        }
+        break;
 
-        // Scroll the window when the mouse reaches the window border.
-        mrController.GetScrollBarManager().AutoScroll (rEvent.maPosPixel);
+        case DT_SHAPE:
+            nResult = ExecuteOrAcceptShapeDrop(
+                DC_ACCEPT,
+                rEvent.maPosPixel,
+                &rEvent,
+                rTargetHelper,
+                pTargetWindow,
+                nPage,
+                nLayer);
+            break;
     }
 
     return nResult;
@@ -536,59 +555,74 @@
 {
     sal_Int8 nResult = DND_ACTION_NONE;
 
-    if (IsDropAccepted())
+    switch (IsDropAccepted())
     {
-        const SdTransferable* pDragTransferable = SD_MOD()->pTransferDrag;
-        const Point aEventModelPosition (
-            pTargetWindow->PixelToLogic (rEvent.maPosPixel));
-        long int nXOffset = labs (pDragTransferable->GetStartPos().X() 
-            - aEventModelPosition.X());
-        long int nYOffset = labs (pDragTransferable->GetStartPos().Y() 
-            - aEventModelPosition.Y());
-        const bool bContinue = 
-            ( pDragTransferable->GetView() != &mrController.GetView() ) 
-            || ( nXOffset >= 2 && nYOffset >= 2 );
-
-        // Get insertion position and then turn off the insertion indicator.
-        view::ViewOverlay& rOverlay (mrController.GetView().GetOverlay());
-        rOverlay.GetInsertionIndicatorOverlay().SetPosition(
-            aEventModelPosition);
-        USHORT nIndex = DetermineInsertPosition (*pDragTransferable);
-        OSL_TRACE ("Clipboard::AcceptDrop() called for index %d",
-            nIndex);
-        rOverlay.GetInsertionIndicatorOverlay().Hide();
-        
-        if (bContinue)
+        case DT_PAGE:
         {
-            SlideSorterController::ModelChangeLock aModelChangeLock (mrController);
-
-            if (pDragTransferable->GetView() == &mrController.GetView()
-                && rEvent.mnAction == DND_ACTION_MOVE)
+            const SdTransferable* pDragTransferable = SD_MOD()->pTransferDrag;
+            const Point aEventModelPosition (
+                pTargetWindow->PixelToLogic (rEvent.maPosPixel));
+            long int nXOffset = labs (pDragTransferable->GetStartPos().X() 
+                - aEventModelPosition.X());
+            long int nYOffset = labs (pDragTransferable->GetStartPos().Y() 
+                - aEventModelPosition.Y());
+            const bool bContinue = 
+                ( pDragTransferable->GetView() != &mrController.GetView() ) 
+                || ( nXOffset >= 2 && nYOffset >= 2 );
+            
+            // Get insertion position and then turn off the insertion indicator.
+            view::ViewOverlay& rOverlay (mrController.GetView().GetOverlay());
+            rOverlay.GetInsertionIndicatorOverlay().SetPosition(
+                aEventModelPosition);
+            USHORT nIndex = DetermineInsertPosition (*pDragTransferable);
+            OSL_TRACE ("Clipboard::AcceptDrop() called for index %d",
+                nIndex);
+            rOverlay.GetInsertionIndicatorOverlay().Hide();
+            
+            if (bContinue)
             {
-                // We are asked to move pages inside one view.  For this we
-                // call MoveSelectedPages() which is faster than going the
-                // generic way.
-
-                // Remember to select the moved pages afterwards.
-                maPagesToRemove.swap(maPagesToSelect);
-                maPagesToRemove.clear();
-
-                USHORT nSdrModelIndex;
-                if (nIndex != SDRPAGE_NOTFOUND)
-                    nSdrModelIndex = nIndex / 2 - 1;
+                SlideSorterController::ModelChangeLock aModelChangeLock (mrController);
+
+                if (pDragTransferable->GetView() == &mrController.GetView()
+                    && rEvent.mnAction == DND_ACTION_MOVE)
+                {
+                    // We are asked to move pages inside one view.  For this we
+                    // call MoveSelectedPages() which is faster than going the
+                    // generic way.
+
+                    // Remember to select the moved pages afterwards.
+                    maPagesToRemove.swap(maPagesToSelect);
+                    maPagesToRemove.clear();
+
+                    USHORT nSdrModelIndex;
+                    if (nIndex != SDRPAGE_NOTFOUND)
+                        nSdrModelIndex = nIndex / 2 - 1;
+                    else
+                        nSdrModelIndex = SDRPAGE_NOTFOUND;
+                    mrController.MoveSelectedPages(nSdrModelIndex);
+                    mbUpdateSelectionPending = true;
+                    nResult = DND_ACTION_NONE;
+                }
                 else
-                    nSdrModelIndex = SDRPAGE_NOTFOUND;
-                mrController.MoveSelectedPages(nSdrModelIndex);
-                mbUpdateSelectionPending = true;
-                nResult = DND_ACTION_NONE;
-            }
-            else
-            {
-                // Handle a general drop operation.
-                HandlePageDrop (*pDragTransferable);
-                nResult = rEvent.mnAction;
+                {
+                    // Handle a general drop operation.
+                    HandlePageDrop (*pDragTransferable);
+                    nResult = rEvent.mnAction;
+                }
             }
         }
+        break;
+
+        case DT_SHAPE:
+            nResult = ExecuteOrAcceptShapeDrop(
+                DC_EXECUTE,
+                rEvent.maPosPixel,
+                &rEvent,
+                rTargetHelper,
+                pTargetWindow,
+                nPage,
+                nLayer);
+            break;
     }
 
     return nResult;
@@ -646,27 +680,91 @@
 
 
 
-bool Clipboard::IsDropAccepted (void) const
+Clipboard::DropType Clipboard::IsDropAccepted (void) const
 {
-    const SdTransferable* pDragTransferable = SD_MOD()->pTransferDrag;
+    DropType eResult (DT_NONE);
 
-    bool bIsDropAccepted (false);
-    do
+    const SdTransferable* pDragTransferable = SD_MOD()->pTransferDrag;
+    if (pDragTransferable != NULL)
     {
-        if (pDragTransferable == NULL)
-            break;
+        if (pDragTransferable->IsPageTransferable())
+        {
+            if (mrController.GetModel().GetEditMode() != EM_MASTERPAGE)
+                eResult = DT_PAGE;
+        }
+        else
+        {
+            eResult = DT_SHAPE;
+        }
+    }
 
-        if ( ! pDragTransferable->IsPageTransferable())
-            break;
+    return eResult;
+}
 
-        if (mrController.GetModel().GetEditMode() == EM_MASTERPAGE)
-            break;
 
-        bIsDropAccepted = true;
+
+
+sal_Int8 Clipboard::ExecuteOrAcceptShapeDrop (
+    DropCommand eCommand,
+    const Point& rPosition,
+    const void* pDropEvent,
+    DropTargetHelper& rTargetHelper,
+    ::sd::Window* pTargetWindow,
+    USHORT nPage,
+    USHORT nLayer)
+{
+    sal_Int8 nResult = 0;
+
+    // The dropping of a shape is accepted or executed only when there is
+    // DrawViewShell available to which we can forward this call.  This has
+    // technical reasons:  The actual code to accept or execute a shape drop
+    // is implemented in the ViewShell class and uses the page view of the
+    // main edit view.  This is not possible without a DrawViewShell.
+    DrawViewShell* pDrawViewShell = dynamic_cast<DrawViewShell*>(
+        mrController.GetViewShell().GetViewShellBase().GetMainViewShell());
+    if (pDrawViewShell != NULL
+        && (pDrawViewShell->GetShellType() == ViewShell::ST_IMPRESS
+            || pDrawViewShell->GetShellType() == ViewShell::ST_DRAW))
+    {
+        // The drop is only accepted or executed when it takes place over a
+        // page object.  Therefore we replace a missing page number by the
+        // number of the page under the mouse.
+        if (nPage == SDRPAGE_NOTFOUND)
+        {
+            model::PageDescriptor* pDescriptor
+                = mrController.GetModel().GetPageDescriptor(
+                    mrController.GetView().GetPageIndexAtPoint(rPosition));
+            if (pDescriptor != NULL && pDescriptor->GetPage()!=NULL)
+                nPage = (pDescriptor->GetPage()->GetPageNum() - 1) / 2;
+        }
+
+        // Now comes the code that is different for the Execute and Accept:
+        // We simply forward the call to the AcceptDrop() or ExecuteDrop()
+        // methods of the DrawViewShell in the center pane.
+        if (nPage != SDRPAGE_NOTFOUND)
+            switch (eCommand)
+            {
+                case DC_ACCEPT:
+                    nResult = pDrawViewShell->AcceptDrop(
+                        *reinterpret_cast<const AcceptDropEvent*>(pDropEvent),
+                        rTargetHelper,
+                        pTargetWindow,
+                        nPage,
+                        nLayer);
+                    break;
+                    
+                case DC_EXECUTE:
+                    nResult = pDrawViewShell->ExecuteDrop(
+                        *reinterpret_cast<const ExecuteDropEvent*>(pDropEvent),
+                        rTargetHelper,
+                        pTargetWindow,
+                        nPage,
+                        nLayer);
+                    break;
+            }
     }
-    while (false);
 
-    return bIsDropAccepted;
+    return nResult;
 }
 
 
Index: source/ui/slidesorter/controller/SlsSelectionFunction.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx,v
retrieving revision 1.22
retrieving revision 1.21.2.3
diff -u -r1.22 -r1.21.2.3
--- openoffice.org.orig/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx	14 Jul 2005 10:16:28 -0000	1.22
+++ openoffice.org/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx	1 Aug 2005 08:17:27 -0000	1.21.2.3
@@ -467,19 +467,6 @@
             bResult = TRUE;
             break;
 
-		case KEY_ADD:
-            // Scale up by 3/2 of the current zoom scale.  Round so that
-            // even with the smallest zoom scale of 1 the scale is
-            // increased.
-            pViewShell->SetZoom ((pWindow->GetZoom() * 3 + 1) / 2);
-			bResult = TRUE;
-            break;
-
-		case KEY_SUBTRACT:
-            pViewShell->SetZoom(pWindow->GetZoom() * 2 / 3);
-			bResult = TRUE;
-            break;
-
         case KEY_DELETE:
         {
             int	nSelectedPagesCount = 0;
@@ -797,13 +784,14 @@
     // 2. Compute a numerical code that describes the event and that is used
     // for fast look-up of the associated reaction.
     pEventDescriptor->mnEventCode = EncodeMouseEvent(*pEventDescriptor, rEvent);
-    OSL_TRACE ("EventCode is %x", pEventDescriptor->mnEventCode);
-    TRACE_EVENT_CODE(pEventDescriptor->mnEventCode);
 
     // 3. Process the event.
     EventPreprocessing(*pEventDescriptor);
     if ( ! EventProcessing(*pEventDescriptor))
+    {
         OSL_TRACE ("can not handle event code %x", pEventDescriptor->mnEventCode);
+        TRACE_EVENT_CODE(pEventDescriptor->mnEventCode);
+    }
     EventPostprocessing(*pEventDescriptor);
 
     if (nEventType == BUTTON_UP)
Index: source/ui/slidesorter/controller/SlsSlotManager.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx,v
retrieving revision 1.17
retrieving revision 1.16.28.4
diff -u -r1.17 -r1.16.28.4
--- openoffice.org.orig/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx	7 Jul 2005 13:36:17 -0000	1.17
+++ openoffice.org/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx	1 Jun 2005 09:17:31 -0000	1.16.28.4
@@ -179,15 +179,6 @@
 			rShell.Cancel();
             break;
 
-		case SID_ATTR_ZOOM:
-		case SID_ZOOM_OUT:
-		case SID_SIZE_REAL:
-		case SID_ZOOM_IN:
-		case SID_SIZE_ALL:
-		case SID_SIZE_PAGE:
-            HandleSizeSlots (rRequest);
-            break;
-
 		case SID_PAGES_PER_ROW:
 			if (rRequest.GetArgs() != NULL)
 			{
@@ -417,11 +408,6 @@
 			rRequest.Done();
             break;
 
-        case SID_ZOOM_PREV:
-		case SID_ZOOM_NEXT:
-            HandleSizeSlots (rRequest);
-            break;
-
 		case SID_UNDO :
 			rShell.ImpSidUndo (FALSE, rRequest);
             break;
@@ -615,37 +601,13 @@
 
 	// Vorlagenkatalog darf nicht aufgerufen werden
 	rSet.DisableItem(SID_STYLE_CATALOG);
-    //	rSet.DisableItem(SID_SIZE_ALL);
+
     if (rShell.IsMainViewShell())
     {
         rSet.DisableItem(SID_SPELL_DIALOG);
         rSet.DisableItem(SID_SEARCH_DLG);
     }
     
-	if ( ! rShell.GetZoomList()->IsNextPossible())
-	{
-        rSet.DisableItem(SID_ZOOM_NEXT);
-	}
-	if ( ! rShell.GetZoomList()->IsPreviousPossible())
-	{
-        rSet.DisableItem(SID_ZOOM_PREV);
-	}
-        
-	if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_IN ) ||
-		SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_OUT ) ||
-		SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_SIZE_REAL ) )
-	{
-		BOOL bUIActive = pDocShell->IsUIActive();
-
-        ::sd::Window* pWindow = rShell.GetActiveWindow();
-		if( pWindow->GetZoom() <= pWindow->GetMinZoom() || bUIActive )
-			rSet.DisableItem( SID_ZOOM_IN );
-		if( pWindow->GetZoom() >= pWindow->GetMaxZoom() || bUIActive )
-			rSet.DisableItem( SID_ZOOM_OUT );
-		if( 100 >= pWindow->GetMaxZoom() || bUIActive )
-			rSet.DisableItem( SID_SIZE_REAL );
-	}
-
 	if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_EXPAND_PAGE))
 	{
 		bool bDisable = true;
@@ -817,26 +779,7 @@
 void SlotManager::GetStatusBarState (SfxItemSet& rSet)
 {
     SlideSorterViewShell& rShell (mrController.GetViewShell());
-
-	// Zoom-Item
-	if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ATTR_ZOOM ) )
-	{
-		SvxZoomItem* pZoomItem;
-		UINT16 nZoom = (UINT16) rShell.GetActiveWindow()->GetZoom();
-
-		pZoomItem = new SvxZoomItem( SVX_ZOOM_PERCENT, nZoom );
-
-		// Bereich einschraenken
-		USHORT nZoomValues = SVX_ZOOM_ENABLE_ALL;
-		nZoomValues &= ~SVX_ZOOM_ENABLE_OPTIMAL;
-		nZoomValues &= ~SVX_ZOOM_ENABLE_PAGEWIDTH;
-		nZoomValues &= ~(SVX_ZOOM_ENABLE_100|SVX_ZOOM_ENABLE_150|SVX_ZOOM_ENABLE_200);
-
-		pZoomItem->SetValueSet( nZoomValues );
-		rSet.Put( *pZoomItem );
-		delete pZoomItem;
-	}
-
+    
 	// Seitenanzeige und Layout
 	/*
 	if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_STATUS_PAGE ) ||
@@ -876,195 +819,6 @@
 
 
 
-void SlotManager::HandleSizeSlots (SfxRequest& rRequest)
-{
-    SlideSorterViewShell& rShell (mrController.GetViewShell());
-    bool bRequestRepaint = true;
-    ::sd::Window* pWindow = mrController.GetView().GetWindow();
-
-	switch (rRequest.GetSlot())
-    {
-		case SID_ATTR_ZOOM:
-		{
-			const SfxItemSet* pArgs = rRequest.GetArgs();
-
-			if (pArgs != NULL)
-			{
-				SvxZoomType aZoomType = static_cast<const SvxZoomItem&>(
-                    pArgs->Get(SID_ATTR_ZOOM)).GetType();
-				switch (aZoomType)
-				{
-					case SVX_ZOOM_PERCENT:
-						rShell.SetZoom (
-                            (long)static_cast<const SvxZoomItem&> (
-                                pArgs->Get(SID_ATTR_ZOOM)).GetValue());
-						break;
-
-					case SVX_ZOOM_WHOLEPAGE:
-						rShell.GetViewFrame()->GetDispatcher()->Execute( 
-                            SID_SIZE_PAGE,
-                            SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD);
-						break;
-				}
-				rShell.Invalidate (SID_ATTR_ZOOM);
-				rRequest.Done();
-			}
-			else
-			{
-				rShell.SetCurrentFunction (
-                    new FuScale (
-                        &rShell, 
-                        pWindow, 
-                        &mrController.GetView(), 
-                        mrController.GetModel().GetDocument(),
-                        rRequest));
-            }
-			rShell.Cancel();
-        }
-        break;
-
-		case SID_ZOOM_OUT:
-            rShell.SetCurrentFunction (
-                new FuZoom (
-                    &rShell,
-                    pWindow,
-                    &mrController.GetView(),
-                    mrController.GetModel().GetDocument(),
-                    rRequest));
-			rRequest.Done();
-            break;
-
-		case SID_ZOOM_IN:
-            rShell.SetZoom( Max(
-                (long) ( pWindow->GetZoom() / 2 ),
-                (long) pWindow->GetMinZoom() ) );
-            rShell.GetZoomList()->InsertZoomRect(
-                pWindow->PixelToLogic(
-                    Rectangle( 
-                        Point(0,0),
-                        pWindow->GetOutputSizePixel())));
-            rShell.Invalidate (SID_ATTR_ZOOM);
-            rShell.Invalidate (SID_ZOOM_OUT);
-            rShell.Invalidate (SID_ZOOM_IN);
-            rShell.Invalidate (SID_SIZE_REAL);
-            rShell.Cancel();
-            rRequest.Done();
-            break;
-
-		case SID_SIZE_REAL:
-			rShell.SetZoom (100);
-			rShell.GetZoomList()->InsertZoomRect (
-                pWindow->PixelToLogic(
-                    Rectangle(
-                        Point(0,0),
-                        pWindow->GetOutputSizePixel())));
-			rShell.Invalidate (SID_ATTR_ZOOM);
-			rShell.Invalidate (SID_ZOOM_OUT);
-			rShell.Invalidate (SID_ZOOM_IN);
-			rShell.Invalidate (SID_SIZE_REAL);
-
-			rShell.Cancel();
-			rRequest.Done();
-            break;
-
-		case SID_SIZE_ALL:
-		case SID_SIZE_PAGE:
-		{
-            // The zoom is set so that
-            // a) for SID_SIZE_PAGE the first page is fully visible and as
-            // large as possible,
-            // b) for SID_SIZE_ALL and non-empty selection that all selected
-            // pages are visible,
-            // c) for SID_SIZE_ALL and empty selection that all pages are
-            // visible. 
-            Rectangle aZoomRect;
-			int nPageCount = mrController.GetModel().GetPageCount();
-
-            if (nPageCount > 0)
-            {
-                // a) Use the bounding box of the first page.
-                if (rRequest.GetSlot() == SID_SIZE_PAGE)
-                    aZoomRect = mrController.GetView().GetPageBoundingBox(
-                        0,
-                        view::SlideSorterView::CS_MODEL,
-                        view::SlideSorterView::BBT_INFO);
-                else
-                {
-                    // b) and c) use the enumeration of the selected pages,
-                    // or if that is empty, the enumeration of all pages to
-                    // create the union of their bounding boxes.
-                    model::SlideSorterModel::Enumeration aPages ( 
-                        mrController.GetModel().GetSelectedPagesEnumeration());
-                    if ( ! aPages.HasMoreElements())
-                        aPages = 
-                            mrController.GetModel().GetAllPagesEnumeration();
-                    while (aPages.HasMoreElements())
-                    {
-                        aZoomRect.Union (
-                            mrController.GetView().GetPageBoundingBox(
-                                aPages.GetNextElement(),
-                                view::SlideSorterView::CS_MODEL,
-                                view::SlideSorterView::BBT_INFO));
-                    }
-                }
-            }
-
-            // Add some extra space at the borders and set the new zoom
-            // rectangle.
-			if ( ! aZoomRect.IsEmpty())
-			{
-				Point aPagePosition (aZoomRect.Center());
-				Size aPageSize (aZoomRect.GetSize());
-				aPageSize.Width()  = aPageSize.Width()	* 11 / 10;
-				aPageSize.Height() = aPageSize.Height() * 11 / 10;
-				aPagePosition.X() -= aPageSize.Width() / 2;
-				aPagePosition.Y() -= aPageSize.Height() / 2;
-
-				rShell.SetZoomRect (Rectangle(aPagePosition, aPageSize));
-
-				Rectangle aVisibleArea = pWindow->PixelToLogic(
-                    Rectangle( 
-                        Point(0,0),
-                        pWindow->GetOutputSizePixel()));
-				rShell.GetZoomList()->InsertZoomRect (aVisibleArea);
-			}
-
-			rShell.Invalidate (SID_ATTR_ZOOM);
-			rShell.Cancel();
-			rRequest.Done();
-		}
-        break;
-
-        case SID_ZOOM_PREV:
-			if (rShell.GetZoomList()->IsPreviousPossible())
-			{
-				// Go to previous zoom rectangle.
-				rShell.SetZoomRect (
-                    rShell.GetZoomList()->GetPreviousZoomRect());
-			}
-			rRequest.Done ();
-            break;
-
-		case SID_ZOOM_NEXT:
-			if (rShell.GetZoomList()->IsNextPossible())
-			{
-				// Go to next zoom rectangle.
-				rShell.SetZoomRect (
-                    rShell.GetZoomList()->GetNextZoomRect());
-			}
-			rRequest.Done ();
-            break;
-
-        default:
-            bRequestRepaint = false;
-    }
-    if (bRequestRepaint)
-        mrController.GetView().RequestRepaint ();
-}
-
-
-
-
 void SlotManager::ShowSlideShow( SfxRequest& rRequest)
 {
     SlideSorterViewShell& rShell (mrController.GetViewShell());
Index: source/ui/slidesorter/controller/SlsSlotManager.hxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/slidesorter/controller/SlsSlotManager.hxx,v
retrieving revision 1.4
retrieving revision 1.4.64.1
diff -u -r1.4 -r1.4.64.1
--- openoffice.org.orig/sd/source/ui/slidesorter/controller/SlsSlotManager.hxx	23 Mar 2005 14:00:25 -0000	1.4
+++ openoffice.org/sd/source/ui/slidesorter/controller/SlsSlotManager.hxx	26 May 2005 09:20:12 -0000	1.4.64.1
@@ -108,10 +108,6 @@
     typedef ::std::queue<Command*> CommandQueue;
     CommandQueue maCommandQueue;
 
-    /** Handle slot calls that modify the zoom factor.
-    */
-    void HandleSizeSlots (SfxRequest& rRequest);
-
     /** Called by FuTemporary to show the slide show.
     */
     void ShowSlideShow (SfxRequest& rRequest);
Index: source/ui/slidesorter/inc/controller/SlsClipboard.hxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/slidesorter/inc/controller/SlsClipboard.hxx,v
retrieving revision 1.6
retrieving revision 1.5.44.2
diff -u -r1.6 -r1.5.44.2
--- openoffice.org.orig/sd/source/ui/slidesorter/inc/controller/SlsClipboard.hxx	7 Jul 2005 13:36:53 -0000	1.6
+++ openoffice.org/sd/source/ui/slidesorter/inc/controller/SlsClipboard.hxx	30 May 2005 15:27:24 -0000	1.5.44.2
@@ -206,7 +206,37 @@
         transferable is not accepted.  The reason is the missing
         implementation of proper handling master pages copy-and-paste.
     */
-    bool IsDropAccepted (void) const;
+    enum DropType { DT_PAGE, DT_SHAPE, DT_NONE };
+    DropType IsDropAccepted (void) const;
+
+    /** This method contains the code for AcceptDrop() and ExecuteDrop() shapes.
+        There are only minor differences for the two cases at this level.
+        @param eCommand
+            This parameter specifies whether to do a AcceptDrop() or
+            ExecuteDrop().
+        @param rPosition
+            Since the event is given as void pointer we can not take the
+            mouse position from it.  The caller has to supply it in this
+            parameter.
+        @param pDropEvent
+            Event though the AcceptDropEvent and ExecuteDropEvent are very
+            similar they do not have a common base class.  Because of that
+            we have to use a void* to pase these structs.
+        @param nPage
+            When the page number is given as 0xffff then it is replaced by
+            the number of the page at the mouse position.  If the mouse is
+            not over a page then neither AcceptDrop() nor ExecuteDrop() are
+            executed.
+    */
+    enum DropCommand { DC_ACCEPT, DC_EXECUTE };
+    sal_Int8 ExecuteOrAcceptShapeDrop (
+        DropCommand eCommand,
+        const Point& rPosition,
+        const void* pDropEvent ,
+        DropTargetHelper& rTargetHelper,
+        ::sd::Window* pTargetWindow,
+        USHORT nPage,
+        USHORT nLayer);
 };
 
 } } } // end of namespace ::sd::slidesorter::controller
Index: source/ui/slidesorter/model/SlideSorterModel.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/slidesorter/model/SlideSorterModel.cxx,v
retrieving revision 1.2
retrieving revision 1.2.340.1
diff -u -r1.2 -r1.2.340.1
--- openoffice.org.orig/sd/source/ui/slidesorter/model/SlideSorterModel.cxx	13 Jul 2004 14:24:07 -0000	1.2
+++ openoffice.org/sd/source/ui/slidesorter/model/SlideSorterModel.cxx	1 Jun 2005 09:01:41 -0000	1.2.340.1
@@ -278,12 +278,10 @@
 void SlideSorterModel::Resync (void)
 {
     ::osl::MutexGuard aGuard (maMutex);
-    OSL_TRACE("Resync in");
     DUMP_MODEL;
     ClearDescriptorList ();
     AdaptSize();
     DUMP_MODEL;
-    OSL_TRACE("Resync out");
 }
 
 
Index: source/ui/slidesorter/shell/SlideSorterViewShell.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx,v
retrieving revision 1.14
retrieving revision 1.12.64.5
diff -u -r1.14 -r1.12.64.5
--- openoffice.org.orig/sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx	14 Jul 2005 10:17:41 -0000	1.14
+++ openoffice.org/sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx	1 Aug 2005 08:15:30 -0000	1.12.64.5
@@ -84,6 +84,7 @@
 #include "SdUnoSlideView.hxx"
 #include "PaneManager.hxx"
 #include "DrawDocShell.hxx"
+#include "ObjectBarManager.hxx"
 
 #include <sfx2/app.hxx>
 #include <sfx2/msg.hxx>
@@ -357,6 +358,27 @@
 
 
 
+SfxUndoManager* SlideSorterViewShell::ImpGetUndoManager (void) const
+{
+    SfxShell* pObjectBar = GetObjectBarManager().GetTopObjectBar();
+    if (pObjectBar != NULL)
+    {
+        // When it exists then return the undo manager of the currently
+        // active object bar.  The object bar is missing when the
+        // SlideSorterViewShell is not the main view shell.
+        return pObjectBar->GetUndoManager();
+    }
+    else
+	{
+        // Return the undo manager of this  shell when there is no object or
+        // tool bar.
+        return const_cast<SlideSorterViewShell*>(this)->GetUndoManager();
+    }
+}
+
+
+
+
 SfxShell* SlideSorterViewShell::CreateInstance (
     sal_Int32 nId, 
     SfxShell* pParent,
@@ -758,7 +780,9 @@
 
 void SlideSorterViewShell::SetZoom (long int nZoom)
 {
-    mpSlideSorterController->SetZoom (nZoom);
+    // Ignored.
+    // The zoom scale is adapted internally to fit a number of columns in
+    // the window.
 }
 
 
Index: source/ui/toolpanel/LayoutMenu.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/toolpanel/LayoutMenu.cxx,v
retrieving revision 1.13
retrieving revision 1.13.8.1
diff -u -r1.13 -r1.13.8.1
--- openoffice.org.orig/sd/source/ui/toolpanel/LayoutMenu.cxx	14 Jul 2005 10:19:46 -0000	1.13
+++ openoffice.org/sd/source/ui/toolpanel/LayoutMenu.cxx	27 Jul 2005 12:11:38 -0000	1.13.8.1
@@ -712,7 +712,7 @@
         SetOfByte aVisibleLayers (pPage->TRG_GetMasterPageVisibleLayers());
     
         aRequest.AppendItem(
-            SfxStringItem (ID_VAL_PAGENAME, pPage->GetName()));
+            SfxStringItem (ID_VAL_PAGENAME, String()));//pPage->GetName()));
         aRequest.AppendItem(SfxUInt32Item (ID_VAL_WHATLAYOUT, aLayout));
         aRequest.AppendItem(
             SfxBoolItem(ID_VAL_ISPAGEBACK, aVisibleLayers.IsSet(aBackground)));
Index: source/ui/toolpanel/SubToolPanel.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/toolpanel/SubToolPanel.cxx,v
retrieving revision 1.5
retrieving revision 1.4.68.2
diff -u -r1.5 -r1.4.68.2
--- openoffice.org.orig/sd/source/ui/toolpanel/SubToolPanel.cxx	14 Jul 2005 10:20:50 -0000	1.5
+++ openoffice.org/sd/source/ui/toolpanel/SubToolPanel.cxx	20 Jul 2005 08:31:09 -0000	1.4.68.2
@@ -145,7 +145,7 @@
         rTitle,
         TitleBar::TBT_SUB_CONTROL_HEADLINE);
     pTitledControl->GetWindow()->SetParent(this);
-    pTitledControl->GetTitleBar()->SetHelpId(nHelpId);
+    pTitledControl->GetWindow()->SetHelpId(nHelpId);
     ::std::auto_ptr<TreeNode> pChild (pTitledControl);
 
     // Add a down link only for the first control so that when
@@ -155,7 +155,6 @@
     FocusManager::Instance().RegisterUpLink(pTitledControl->GetWindow(), GetParent());
     
     mpControlContainer->AddControl (pChild);
-
 }
 
 
@@ -173,7 +172,6 @@
     FocusManager::Instance().RegisterUpLink(pControl->GetWindow(), GetParent());
     
     mpControlContainer->AddControl (pControl);
-
 }
 
 
Index: source/ui/toolpanel/ToolPanel.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/toolpanel/ToolPanel.cxx,v
retrieving revision 1.7
retrieving revision 1.6.66.2
diff -u -r1.7 -r1.6.66.2
--- openoffice.org.orig/sd/source/ui/toolpanel/ToolPanel.cxx	14 Jul 2005 10:23:39 -0000	1.7
+++ openoffice.org/sd/source/ui/toolpanel/ToolPanel.cxx	20 Jul 2005 08:32:26 -0000	1.6.66.2
@@ -151,7 +151,7 @@
         rFocusManager.RegisterLink(pChild->GetWindow(),pFirst, KEY_DOWN);
     }
 
-    pTitledControl->GetTitleBar()->SetHelpId(nHelpId);
+    pTitledControl->GetWindow()->SetHelpId(nHelpId);
 
     return mpControlContainer->AddControl (pChild);
 }
Index: source/ui/toolpanel/controls/MasterPagesSelector.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/toolpanel/controls/MasterPagesSelector.cxx,v
retrieving revision 1.11
retrieving revision 1.10.100.2
diff -u -r1.11 -r1.10.100.2
--- openoffice.org.orig/sd/source/ui/toolpanel/controls/MasterPagesSelector.cxx	14 Jul 2005 10:25:35 -0000	1.11
+++ openoffice.org/sd/source/ui/toolpanel/controls/MasterPagesSelector.cxx	20 Jul 2005 08:33:17 -0000	1.10.100.2
@@ -126,6 +126,7 @@
 #ifndef _SFXITEMPOOL_HXX //autogen
 #include <svtools/itempool.hxx>
 #endif
+#include "undoback.hxx"
 
 using namespace ::sd::toolpanel::controls;
 #define MasterPagesSelector
@@ -551,7 +552,14 @@
 
     if ( ! pPage->IsMasterPage())
     {
-        // 1. Assign master pages to regular slide.
+        // 1. Remove the background object (so that that, if it exists, does
+        // not override the new master page) and assign the master page to
+        // the regular slide.
+        mrDocument.GetDocSh()->GetUndoManager()->AddUndoAction(
+            new SdBackgroundObjUndoAction(mrDocument, *pPage, pPage->GetBackgroundObj()),
+                TRUE);
+        pPage->SetBackgroundObj(NULL);
+          
         mrDocument.SetMasterPage (
             (pPage->GetPageNum()-1)/2,
             rsBaseLayoutName,
Index: source/ui/tools/EventMultiplexer.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/tools/EventMultiplexer.cxx,v
retrieving revision 1.5
retrieving revision 1.4.22.2
diff -u -r1.5 -r1.4.22.2
--- openoffice.org.orig/sd/source/ui/tools/EventMultiplexer.cxx	7 Jul 2005 13:38:29 -0000	1.5
+++ openoffice.org/sd/source/ui/tools/EventMultiplexer.cxx	1 Jun 2005 09:02:22 -0000	1.4.22.2
@@ -419,7 +419,6 @@
     // time may be destroyed.)
     Reference<frame::XController> xController = mrBase.GetController();
     mxControllerWeak = mrBase.GetController();
-    OSL_TRACE("EventMultiplexer %x connecting to controller %x", this,mxControllerWeak.get());
 
     try
     {
@@ -476,7 +475,6 @@
     {
         mbListeningToController = false;
 
-        OSL_TRACE("EventMultiplexer %x disconnecting from controller %x", this,mxControllerWeak.get());
         Reference<frame::XController> xController = mxControllerWeak;
 
         Reference<beans::XPropertySet> xSet (xController, UNO_QUERY);
@@ -558,10 +556,6 @@
     static const ::rtl::OUString sEditModePropertyName (
 		RTL_CONSTASCII_USTRINGPARAM("IsMasterPageMode"));
 
-    OSL_TRACE ("property changed: %s",
-        ::rtl::OUStringToOString(rEvent.PropertyName,
-            RTL_TEXTENCODING_UTF8).getStr());
-
     if (rEvent.PropertyName.equals (sCurrentPagePropertyName))
     {
         CallListeners (
Index: source/ui/view/ViewShellBase.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/view/ViewShellBase.cxx,v
retrieving revision 1.20
retrieving revision 1.20.44.1
diff -u -r1.20 -r1.20.44.1
--- openoffice.org.orig/sd/source/ui/view/ViewShellBase.cxx	18 Apr 2005 11:16:58 -0000	1.20
+++ openoffice.org/sd/source/ui/view/ViewShellBase.cxx	27 May 2005 10:55:08 -0000	1.20.44.1
@@ -916,16 +916,18 @@
 
 
 
-void ViewShellBase::Activate (BOOL IsMDIActivate)
+void ViewShellBase::Activate (BOOL bIsMDIActivate)
 {
+    SfxViewShell::Activate(bIsMDIActivate);
     GetPaneManager().InitPanes ();
 }
 
 
 
 
-void ViewShellBase::Deactivate (BOOL IsMDIActivate)
+void ViewShellBase::Deactivate (BOOL bIsMDIActivate)
 {
+    SfxViewShell::Deactivate(bIsMDIActivate);
 }
 
 
Index: source/ui/view/ViewShellCache.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/view/ViewShellCache.cxx,v
retrieving revision 1.3
retrieving revision 1.3.132.1
diff -u -r1.3 -r1.3.132.1
--- openoffice.org.orig/sd/source/ui/view/ViewShellCache.cxx	28 Jan 2005 16:25:56 -0000	1.3
+++ openoffice.org/sd/source/ui/view/ViewShellCache.cxx	1 Jun 2005 09:03:05 -0000	1.3.132.1
@@ -224,12 +224,8 @@
     ViewShell* pViewShell)
 {
     ::osl::MutexGuard aGuard (maMutex);
-    OSL_TRACE ("ViewShellCache::Implementation::PutViewShell: %p %d %p",
-        pWindow, nId, pViewShell);
-    PrintContent ("PutViewShell()");
     CachePerWindow& rCache (maViewShellCacheList[pWindow]);
     rCache[nId] = Descriptor(pViewShell);
-    PrintContent ("PutViewShell()");
 }
 
 
@@ -240,9 +236,6 @@
     ViewShell* pViewShell)
 {
     ::osl::MutexGuard aGuard (maMutex);
-    OSL_TRACE ("ViewShellCache::Implementation::ReleaseViewShell: %p %p",
-        pWindow, pViewShell);
-    PrintContent ("ReleaseViewShell()");
     CachePerWindow& rCache (maViewShellCacheList[pWindow]);
     CachePerWindow::iterator iDescriptor;
     for (iDescriptor=rCache.begin(); iDescriptor!=rCache.end(); ++iDescriptor)
Index: source/ui/view/sdview.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/view/sdview.cxx,v
retrieving revision 1.41
retrieving revision 1.41.60.1
diff -u -r1.41 -r1.41.60.1
--- openoffice.org.orig/sd/source/ui/view/sdview.cxx	23 Mar 2005 13:24:10 -0000	1.41
+++ openoffice.org/sd/source/ui/view/sdview.cxx	27 Jul 2005 12:24:23 -0000	1.41.60.1
@@ -771,6 +771,24 @@
 		}
 	}
 
+    // Replace the currently used undo manager by the one of the doc shell.
+    // This is necessary because, in case of an active text editing, the
+    // current undo manager belongs to the edit engine and will be destroyed
+    // together with it when the text editing is stopped.
+	if (bIsTextEdit)
+	{
+		// Get the undo manager from the doc shell and set it at the top
+		// most shell on the shell stack (this makes it the active undo
+		// manager.)
+		SfxUndoManager* pUndoMgr = pDocSh->GetUndoManager();
+		ViewShell* pViewShell = pDocSh->GetViewShell();
+		DBG_ASSERT(pViewShell, "ViewShell not found");
+		if (pViewShell != NULL)
+		{
+			pViewShell->GetViewFrame()->GetDispatcher()->GetShell(0)->SetUndoManager(pUndoMgr);
+		}
+	}
+
 	if ( pFunc && pFunc->ISA(FuText) )
 	{
 		SdrTextObj* pTextObj = ( (FuText*) pFunc)->GetTextObj();
@@ -801,19 +819,6 @@
 	else
 		eKind = FmFormView::EndTextEdit(bDontDeleteReally);
 
-	if (bIsTextEdit)
-	{
-		// UndoManager an der obersten Shell setzen
-		SfxUndoManager* pUndoMgr = pDocSh->GetUndoManager();
-		ViewShell* pViewShell = pDocSh->GetViewShell();
-		DBG_ASSERT(pViewShell, "ViewShell nicht gefunden");
-		if (pViewShell)
-		{
-			pViewShell->GetViewFrame()->GetDispatcher()->
-				GetShell(0)->SetUndoManager(pUndoMgr);
-		}
-	}
-
 	if( eKind != SDRENDTEXTEDIT_CHANGED )
 		pObj = 0;
 	


Index: openoffice.org.spec
===================================================================
RCS file: /cvs/dist/rpms/openoffice.org/devel/openoffice.org.spec,v
retrieving revision 1.432
retrieving revision 1.433
diff -u -r1.432 -r1.433
--- openoffice.org.spec	31 Aug 2005 10:26:21 -0000	1.432
+++ openoffice.org.spec	31 Aug 2005 14:12:52 -0000	1.433
@@ -174,6 +174,7 @@
 Patch54: openoffice.org-1.9.125.ooo53723.bulletexport.vcl.patch
 Patch55: workspace.cmcfixes16.patch
 Patch56: openoffice.org-1.9.126.oooXXXXX.uselibxslt.xmlhelp.patch
+Patch57: workspace.impress57.patch
 
 %define instdir %{_libdir}/openoffice.org2.0
 
@@ -830,6 +831,7 @@
 %patch54 -p1 -b .ooo53723.bulletexport.vcl.patch
 %patch55 -p1 -b .workspace.cmcfixes16.patch
 %patch56 -p1 -b .oooXXXXX.uselibxslt.xmlhelp.patch
+%patch57 -p1 -b .workspace.impress57.patch
 
 %if %{includeexternals}
 #start ludicrous workaround
@@ -3125,6 +3127,7 @@
 - ooo#53956# thai dictionary
 - remove unslightly warning from gnomeprint
 - replace sablot with libxslt i.e. help application
+- add workspace.impress57.patch for rh#167130#
 
 * Sat Aug 27 2005 Caolan McNamara <caolanm redhat com> - 1:1.9.126-1
 - next version


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]