[Libreoffice-commits] core.git: 5 commits - officecfg/registry sfx2/source svx/source vcl/source

Andre Fischer af at apache.org
Mon May 20 07:16:42 PDT 2013


 officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu |    6 
 sfx2/source/dialog/templdlg.cxx                              |    2 
 sfx2/source/sidebar/Deck.cxx                                 |   86 ++++++-----
 sfx2/source/sidebar/Deck.hxx                                 |    5 
 sfx2/source/sidebar/FocusManager.cxx                         |    8 -
 sfx2/source/sidebar/PanelTitleBar.cxx                        |    8 -
 sfx2/source/sidebar/Sidebar.hrc                              |    5 
 sfx2/source/sidebar/Sidebar.src                              |    5 
 sfx2/source/sidebar/SidebarController.cxx                    |   28 ++-
 sfx2/source/sidebar/SidebarDockingWindow.cxx                 |   30 +++
 sfx2/source/sidebar/SidebarDockingWindow.hxx                 |    4 
 svx/source/sidebar/SelectionAnalyzer.cxx                     |    4 
 vcl/source/window/dockwin.cxx                                |   15 +
 13 files changed, 147 insertions(+), 59 deletions(-)

New commits:
commit c6e576da95074215d1dcfbcc4b7c4fad6cdeb27c
Author: Andre Fischer <af at apache.org>
Date:   Fri May 17 08:56:55 2013 +0000

    Resolves: #i122329# Disable undocking of stylist in the sidebar
    
    (cherry picked from commit 8dc875f17c0cdd41e7ba6ad2f4c1ea3bda1a8be2)
    
    Change-Id: I1a19135d3496463c8759e341449fa51d389fa264
    (cherry picked from commit 048eca411083bc8a2ef95e5701bf7eba5d232a2d)

diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index 7853b72..3d81345 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -398,6 +398,8 @@ SfxTemplatePanelControl::SfxTemplatePanelControl (
     OSL_ASSERT(mpBindings!=NULL);
 
     pImpl->updateNonFamilyImages();
+
+    SetStyle(GetStyle() & ~WB_DOCKABLE);
 }
 
 
diff --git a/vcl/source/window/dockwin.cxx b/vcl/source/window/dockwin.cxx
index 2ee2f48..42954e6 100644
--- a/vcl/source/window/dockwin.cxx
+++ b/vcl/source/window/dockwin.cxx
@@ -755,10 +755,19 @@ void DockingWindow::Resizing( Size& )
 
 void DockingWindow::StateChanged( StateChangedType nType )
 {
-    if ( nType == STATE_CHANGE_CONTROLBACKGROUND )
+    switch(nType)
     {
-        ImplInitSettings();
-        Invalidate();
+        case STATE_CHANGE_CONTROLBACKGROUND:
+            ImplInitSettings();
+            Invalidate();
+            break;
+
+        case STATE_CHANGE_STYLE:
+            mbDockable = (GetStyle() & WB_DOCKABLE) != 0;
+            break;
+
+        default:
+            break;
     }
 
     Window::StateChanged( nType );
commit 05b2cd081452571dde558b5376d0db41f9049ab4
Author: Andre Fischer <af at apache.org>
Date:   Thu May 16 11:08:30 2013 +0000

    Resolves: #i122321# Fix processing of scroll wheel...
    
    to not block other events
    
    (cherry picked from commit 0a5d252c19fdd4e1e705668a604fb319dc6ceccb)
    
    Change-Id: Ib1a3fa50e071688df41983ce8e2cb6b1c93e18c9
    (cherry picked from commit 58da1dc5061fcd9abc7dd296d0d7d04d651dc10f)

diff --git a/sfx2/source/sidebar/Deck.cxx b/sfx2/source/sidebar/Deck.cxx
index 0a319e1..6534ec7 100644
--- a/sfx2/source/sidebar/Deck.cxx
+++ b/sfx2/source/sidebar/Deck.cxx
@@ -217,49 +217,57 @@ void Deck::DataChanged (const DataChangedEvent& rEvent)
 
 long Deck::Notify (NotifyEvent& rEvent)
 {
-    if (rEvent.GetType() != EVENT_COMMAND)
-        return sal_False;
+    if (rEvent.GetType() == EVENT_COMMAND)
+    {
+        CommandEvent* pCommandEvent = reinterpret_cast<CommandEvent*>(rEvent.GetData());
+        if (pCommandEvent != NULL)
+            switch (pCommandEvent->GetCommand())
+            {
+                case COMMAND_WHEEL:
+                    return ProcessWheelEvent(pCommandEvent, rEvent)
+                        ? sal_True
+                        : sal_False;
+
+                default:
+                    break;
+            }
+    }
 
-    CommandEvent* pCommandEvent = reinterpret_cast<CommandEvent*>(rEvent.GetData());
-    if (pCommandEvent == NULL)
-        return sal_False;
+    return Window::Notify(rEvent);
+}
 
-    switch (pCommandEvent->GetCommand())
-    {
-        case COMMAND_WHEEL:
-        {
-            if ( ! mpVerticalScrollBar
-                || ! mpVerticalScrollBar->IsVisible())
-                return sal_False;
-
-            // Ignore all wheel commands from outside the vertical
-            // scroll bar.  Otherwise after a scroll we might land on
-            // a spin field and subsequent wheel events would change
-            // the value of that control.
-            if (rEvent.GetWindow() != mpVerticalScrollBar.get())
-                return sal_True;
-
-            // Get the wheel data and check that it describes a valid
-            // vertical scroll.
-            const CommandWheelData* pData = pCommandEvent->GetWheelData();
-            if (pData==NULL
-                || pData->GetModifier()
-                || pData->GetMode() != COMMAND_WHEEL_SCROLL
-                || pData->IsHorz())
-                return sal_False;
-
-            // Execute the actual scroll action.
-            long nDelta = pData->GetDelta();
-            mpVerticalScrollBar->DoScroll(
-                mpVerticalScrollBar->GetThumbPos() - nDelta);
-            return sal_True;
-        }
 
-        default:
-            break;
-    }
 
-    return sal_False;
+
+bool Deck::ProcessWheelEvent (
+    CommandEvent* pCommandEvent,
+    NotifyEvent& rEvent)
+{
+    if ( ! mpVerticalScrollBar)
+        return false;
+    if ( ! mpVerticalScrollBar->IsVisible())
+        return false;
+
+    // Ignore all wheel commands from outside the vertical scroll bar.
+    // Otherwise after a scroll we might land on a spin field and
+    // subsequent wheel events would change the value of that control.
+    if (rEvent.GetWindow() != mpVerticalScrollBar.get())
+        return true;
+
+    // Get the wheel data and check that it describes a valid vertical
+    // scroll.
+    const CommandWheelData* pData = pCommandEvent->GetWheelData();
+    if (pData==NULL
+        || pData->GetModifier()
+        || pData->GetMode() != COMMAND_WHEEL_SCROLL
+        || pData->IsHorz())
+        return false;
+
+    // Execute the actual scroll action.
+    long nDelta = pData->GetDelta();
+    mpVerticalScrollBar->DoScroll(
+        mpVerticalScrollBar->GetThumbPos() - nDelta);
+    return true;
 }
 
 
diff --git a/sfx2/source/sidebar/Deck.hxx b/sfx2/source/sidebar/Deck.hxx
index 171fff7..f49d38f 100644
--- a/sfx2/source/sidebar/Deck.hxx
+++ b/sfx2/source/sidebar/Deck.hxx
@@ -100,8 +100,9 @@ private:
     ::boost::scoped_ptr<ScrollBar> mpVerticalScrollBar;
 
     DECL_LINK(HandleVerticalScrollBarChange,void*);
-
-
+    bool ProcessWheelEvent (
+        CommandEvent* pCommandEvent,
+        NotifyEvent& rEvent);
 };
 
 
diff --git a/sfx2/source/sidebar/FocusManager.cxx b/sfx2/source/sidebar/FocusManager.cxx
index 081fa25..6ed64a5 100644
--- a/sfx2/source/sidebar/FocusManager.cxx
+++ b/sfx2/source/sidebar/FocusManager.cxx
@@ -554,6 +554,10 @@ IMPL_LINK(FocusManager, WindowEventListener, VclSimpleEvent*, pEvent)
         case VCLEVENT_WINDOW_GETFOCUS:
         case VCLEVENT_WINDOW_LOSEFOCUS:
             pSource->Invalidate();
+            return 1;
+
+        default:
+            break;
     }
 
     return 0;
@@ -608,14 +612,14 @@ IMPL_LINK(FocusManager, ChildEventListener, VclSimpleEvent*, pEvent)
                         break;
                 }
             }
-            break;
+            return 1;
         }
 
         default:
             break;
     }
 
-    return 1;
+    return 0;
 }
 
 
commit 2e52faf39b08b4b4575554a965c570015c46b04b
Author: Andre Fischer <af at apache.org>
Date:   Thu May 16 09:51:11 2013 +0000

    Resolves: #i122320# Show closer after docking sidebar.
    
    Prevent sidebar from being docked above or below edit view.
    
    (cherry picked from commit ca7264d7ab7e8b70693362d60227c7dd7626df8b)
    
    Change-Id: I634e0b68c27039613054160b7add5d2d07b666cd
    (cherry picked from commit 3c451f893663c118201ccdd4688fe97f1524d21e)

diff --git a/sfx2/source/sidebar/SidebarController.cxx b/sfx2/source/sidebar/SidebarController.cxx
index 188afc5..5f1b6ac 100644
--- a/sfx2/source/sidebar/SidebarController.cxx
+++ b/sfx2/source/sidebar/SidebarController.cxx
@@ -1014,11 +1014,13 @@ bool SidebarController::CanModifyChildWindowWidth (void)
 
     sal_uInt16 nRow (0xffff);
     sal_uInt16 nColumn (0xffff);
-    pSplitWindow->GetWindowPos(mpParentWindow, nColumn, nRow);
-
-    sal_uInt16 nRowCount (pSplitWindow->GetWindowCount(nColumn));
-
-    return nRowCount==1;
+    if (pSplitWindow->GetWindowPos(mpParentWindow, nColumn, nRow))
+    {
+        sal_uInt16 nRowCount (pSplitWindow->GetWindowCount(nColumn));
+        return nRowCount==1;
+    }
+    else
+        return false;
 }
 
 
@@ -1069,17 +1071,23 @@ void SidebarController::RestrictWidth (void)
 
 SfxSplitWindow* SidebarController::GetSplitWindow (void)
 {
-    if (mpSplitWindow == NULL)
+    if (mpParentWindow != NULL)
     {
-        if (mpParentWindow != NULL)
+        SfxSplitWindow* pSplitWindow = dynamic_cast<SfxSplitWindow*>(mpParentWindow->GetParent());
+        if (pSplitWindow != mpSplitWindow)
         {
-            mpSplitWindow = dynamic_cast<SfxSplitWindow*>(mpParentWindow->GetParent());
+            if (mpSplitWindow != NULL)
+                mpSplitWindow->RemoveEventListener(LINK(this, SidebarController, WindowEventHandler));
+
+            mpSplitWindow = pSplitWindow;
+
             if (mpSplitWindow != NULL)
                 mpSplitWindow->AddEventListener(LINK(this, SidebarController, WindowEventHandler));
         }
+        return mpSplitWindow;
     }
-
-    return mpSplitWindow;
+    else
+        return NULL;
 }
 
 
diff --git a/sfx2/source/sidebar/SidebarDockingWindow.cxx b/sfx2/source/sidebar/SidebarDockingWindow.cxx
index f991c7a5..3b6a61d 100644
--- a/sfx2/source/sidebar/SidebarDockingWindow.cxx
+++ b/sfx2/source/sidebar/SidebarDockingWindow.cxx
@@ -102,4 +102,34 @@ sal_Bool SidebarDockingWindow::Close (void)
 }
 
 
+
+
+SfxChildAlignment SidebarDockingWindow::CheckAlignment (
+    SfxChildAlignment eCurrentAlignment,
+    SfxChildAlignment eRequestedAlignment)
+{
+    switch (eRequestedAlignment)
+    {
+        case SFX_ALIGN_TOP:
+        case SFX_ALIGN_HIGHESTTOP:
+        case SFX_ALIGN_LOWESTTOP:
+        case SFX_ALIGN_BOTTOM:
+        case SFX_ALIGN_LOWESTBOTTOM:
+        case SFX_ALIGN_HIGHESTBOTTOM:
+            return eCurrentAlignment;
+
+        case SFX_ALIGN_LEFT:
+        case SFX_ALIGN_RIGHT:
+        case SFX_ALIGN_FIRSTLEFT:
+        case SFX_ALIGN_LASTLEFT:
+        case SFX_ALIGN_FIRSTRIGHT:
+        case SFX_ALIGN_LASTRIGHT:
+            return eRequestedAlignment;
+
+        default:
+            return eRequestedAlignment;
+    }
+}
+
+
 } } // end of namespace sfx2::sidebar
diff --git a/sfx2/source/sidebar/SidebarDockingWindow.hxx b/sfx2/source/sidebar/SidebarDockingWindow.hxx
index 2125212..5a54f11 100644
--- a/sfx2/source/sidebar/SidebarDockingWindow.hxx
+++ b/sfx2/source/sidebar/SidebarDockingWindow.hxx
@@ -49,6 +49,10 @@ protected:
     // Window overridables
     virtual void GetFocus (void);
 
+    virtual SfxChildAlignment CheckAlignment (
+        SfxChildAlignment eCurrentAlignment,
+        SfxChildAlignment eRequestedAlignment);
+
 private:
     ::rtl::Reference<sfx2::sidebar::SidebarController> mpSidebarController;
 
commit 7d56c8d0772965a20d8614482bd7c2324e4be8c1
Author: Andre Fischer <af at apache.org>
Date:   Thu May 16 08:49:36 2013 +0000

    Resolves: #i122271# Provide accessible for panels that...
    
    includes the panel title.
    
    (cherry picked from commit e785c5125994bbfdb4e69108b5a73a184b3ced49)
    
    Change-Id: I97cf9f5f78382dfbd69dcff33b7066380d47313d
    (cherry picked from commit 35c18dc890a8883b974ff73c585033fc3ee3b73e)

diff --git a/sfx2/source/sidebar/PanelTitleBar.cxx b/sfx2/source/sidebar/PanelTitleBar.cxx
index 9b67e3c..3446aca 100644
--- a/sfx2/source/sidebar/PanelTitleBar.cxx
+++ b/sfx2/source/sidebar/PanelTitleBar.cxx
@@ -43,7 +43,7 @@ static const sal_Int32 gaRightIconPadding (5);
 PanelTitleBar::PanelTitleBar (
     const ::rtl::OUString& rsTitle,
     Window* pParentWindow,
-    Panel* pPanel )
+    Panel* pPanel)
     : TitleBar(rsTitle, pParentWindow, GetBackgroundPaint()),
       mbIsLeftButtonDown(false),
       mpPanel(pPanel),
@@ -52,6 +52,12 @@ PanelTitleBar::PanelTitleBar (
 {
     OSL_ASSERT(mpPanel != NULL);
 
+    const ::rtl::OUString sAccessibleName(
+        String(SfxResId(SFX_STR_SIDEBAR_ACCESSIBILITY_PANEL_PREFIX))
+            + rsTitle);
+    SetAccessibleName(sAccessibleName);
+    SetAccessibleDescription(sAccessibleName);
+
 #ifdef DEBUG
     SetText(A2S("PanelTitleBar"));
 #endif
diff --git a/sfx2/source/sidebar/Sidebar.hrc b/sfx2/source/sidebar/Sidebar.hrc
index c9c4d79..ac3500b 100644
--- a/sfx2/source/sidebar/Sidebar.hrc
+++ b/sfx2/source/sidebar/Sidebar.hrc
@@ -52,5 +52,6 @@
 #define STRING_CUSTOMIZATION                    200
 #define STRING_RESTORE                          201
 
-#define SFX_STR_SIDEBAR_MORE_OPTIONS (RID_SFX_SIDEBAR_START +  1)
-#define SFX_STR_SIDEBAR_CLOSE_DECK   (RID_SFX_SIDEBAR_START +  2)
+#define SFX_STR_SIDEBAR_MORE_OPTIONS                (RID_SFX_SIDEBAR_START +  1)
+#define SFX_STR_SIDEBAR_CLOSE_DECK                  (RID_SFX_SIDEBAR_START +  2)
+#define SFX_STR_SIDEBAR_ACCESSIBILITY_PANEL_PREFIX  (RID_SFX_SIDEBAR_START +  3)
diff --git a/sfx2/source/sidebar/Sidebar.src b/sfx2/source/sidebar/Sidebar.src
index 6ec57c1..a5d8a03 100644
--- a/sfx2/source/sidebar/Sidebar.src
+++ b/sfx2/source/sidebar/Sidebar.src
@@ -165,3 +165,8 @@ String SFX_STR_SIDEBAR_CLOSE_DECK
     Text [en-US] = "Close Sidebar Deck";
 };
 
+String SFX_STR_SIDEBAR_ACCESSIBILITY_PANEL_PREFIX
+{
+    Text [en-US] = "Panel: ";
+};
+
commit 82f418d2d90b65ddb474f9d7637d76a6779d60cf
Author: Armin Le Grand <alg at apache.org>
Date:   Wed May 15 16:20:13 2013 +0000

    Resolves: i122145 Multiselection with mix of DrawObjects and OLE...
    
    will allow LineStyle and FillStyle panel, single selection of OLE offers these,
    too, but in default closed state
    
    (cherry picked from commit 8a2531d3d98ad3afb2b233be2d5dd7b67febeba6)
    
    Change-Id: Iba8f99afb4324d33be0469e3b0835f08fe142b0a
    (cherry picked from commit 3c33a28233dfbb0db44553f13511107976f18363)

diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
index b0c669e..a92643a 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
@@ -317,10 +317,13 @@
         <prop oor:name="ContextList">
           <value oor:separator=";">
             Calc,           Draw,       visible ;
+            Calc,           OLE,        hidden  ;
             DrawImpress,    3DObject,   visible ;
             DrawImpress,    Draw,       visible ;
             DrawImpress,    TextObject, hidden  ;
+            DrawImpress,    OLE,        hidden  ;
             WriterVariants, Draw,       visible ;
+            WriterVariants, OLE,        hidden, .uno:FrameDialog ;
           </value>
         </prop>
         <prop oor:name="ImplementationURL" oor:type="xs:string">
@@ -348,11 +351,14 @@
           <value oor:separator=";">
             Calc,           Draw,       visible ;
             Calc,           Graphic,    visible ;
+            Calc,           OLE,        hidden  ;
             DrawImpress,    3DObject,   visible ;
             DrawImpress,    Draw,       visible ;
             DrawImpress,    Graphic,    visible ;
             DrawImpress,    TextObject, hidden  ;
+            DrawImpress,    OLE,        hidden  ;
             WriterVariants, Draw,       visible ;
+            WriterVariants, OLE,        hidden, .uno:FrameDialog ;
           </value>
         </prop>
         <prop oor:name="ImplementationURL" oor:type="xs:string">
diff --git a/svx/source/sidebar/SelectionAnalyzer.cxx b/svx/source/sidebar/SelectionAnalyzer.cxx
index 384f5f6..5924c6f 100644
--- a/svx/source/sidebar/SelectionAnalyzer.cxx
+++ b/svx/source/sidebar/SelectionAnalyzer.cxx
@@ -449,6 +449,10 @@ bool SelectionAnalyzer::IsShapeType (const sal_uInt16 nType)
         case OBJ_POLY:
         case OBJ_FREELINE:
         case OBJ_FREEFILL:
+
+        // #122145# adding OBJ_OLE2 since these also allow line/fill style and may
+        // be multiselected/grouped with normal draw objects, e.g. math OLE objects
+        case OBJ_OLE2:
             return true;
 
         default:


More information about the Libreoffice-commits mailing list