[Libreoffice-commits] .: 4 commits - vcl/inc vcl/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Jan 17 08:12:14 PST 2013


 vcl/inc/vcl/settings.hxx          |    4 ++--
 vcl/source/app/settings.cxx       |   17 +++++++++--------
 vcl/source/control/ctrl.cxx       |   13 +++++++------
 vcl/source/window/dockingarea.cxx |    1 +
 vcl/source/window/menu.cxx        |    2 ++
 vcl/source/window/toolbox.cxx     |    6 ++++--
 vcl/source/window/toolbox2.cxx    |    3 +++
 7 files changed, 28 insertions(+), 18 deletions(-)

New commits:
commit c8ea31264f25ef789b66fc9c988f695342eb2f7a
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Thu Jan 17 16:40:24 2013 +0100

    Personas: Fix fdo#59208 - get rid of artifacts when we run out of bitmap.
    
    So far I am using the same color that is used for the workspace; should it be
    a problem, we can use a different color.
    
    Change-Id: I06fde7f31a9d37d2e387a7e3fd0b6d3d33f8d6e6

diff --git a/vcl/source/window/dockingarea.cxx b/vcl/source/window/dockingarea.cxx
index e20265d..c79c226 100644
--- a/vcl/source/window/dockingarea.cxx
+++ b/vcl/source/window/dockingarea.cxx
@@ -55,6 +55,7 @@ static void ImplInitBackground( DockingAreaWindow* pThis )
     {
         Wallpaper aWallpaper( rPersonaBitmap );
         aWallpaper.SetStyle( WALLPAPER_TOPRIGHT );
+        aWallpaper.SetColor( Application::GetSettings().GetStyleSettings().GetWorkspaceColor() );
 
         // we need to shift the bitmap vertically so that it spans over the
         // menubar conveniently
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index ada63f7..a163041 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -3890,6 +3890,8 @@ static void ImplInitMenuWindow( Window* pWin, sal_Bool bFont, sal_Bool bMenuBar
         {
             Wallpaper aWallpaper( rPersonaBitmap );
             aWallpaper.SetStyle( WALLPAPER_TOPRIGHT );
+            aWallpaper.SetColor( Application::GetSettings().GetStyleSettings().GetWorkspaceColor() );
+
             pWin->SetBackground( aWallpaper );
             pWin->SetPaintTransparent( sal_False );
             pWin->SetParentClipMode( 0 );
commit dbf3077f72881ec44e0bb33c9ffbf6363c381862
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Thu Jan 17 14:25:31 2013 +0100

    Personas: Clear the BitmapEx first, so that we can switch off Personas.
    
    [Also rename mpPersona*Bitmap -> maPersona*Bitmap, it is not a pointer.]
    
    Change-Id: I93cc56b1f30c4fe966b8de87b766e820d9e2cefa

diff --git a/vcl/inc/vcl/settings.hxx b/vcl/inc/vcl/settings.hxx
index 8e49b2c..9d99ad0 100644
--- a/vcl/inc/vcl/settings.hxx
+++ b/vcl/inc/vcl/settings.hxx
@@ -351,8 +351,8 @@ private:
 
     OUString                        maPersonaHeaderFooter; ///< Cache the settings to detect changes.
 
-    BitmapEx                        mpPersonaHeaderBitmap; ///< Cache the header bitmap.
-    BitmapEx                        mpPersonaFooterBitmap; ///< Cache the footer bitmap.
+    BitmapEx                        maPersonaHeaderBitmap; ///< Cache the header bitmap.
+    BitmapEx                        maPersonaFooterBitmap; ///< Cache the footer bitmap.
 };
 
 #define DEFAULT_WORKSPACE_GRADIENT_START_COLOR Color( 0xa3, 0xae, 0xb8 )
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index 9991b90..caedc9d 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -203,8 +203,8 @@ sal_Bool MouseSettings::operator ==( const MouseSettings& rSet ) const
 
 ImplStyleData::ImplStyleData() :
     maPersonaHeaderFooter(),
-    mpPersonaHeaderBitmap(),
-    mpPersonaFooterBitmap()
+    maPersonaHeaderBitmap(),
+    maPersonaFooterBitmap()
 {
     mnRefCount                  = 1;
     mnScrollBarSize             = 16;
@@ -304,8 +304,8 @@ ImplStyleData::ImplStyleData( const ImplStyleData& rData ) :
     maDialogStyle( rData.maDialogStyle ),
     maFrameStyle( rData.maFrameStyle ),
     maPersonaHeaderFooter( rData.maPersonaHeaderFooter ),
-    mpPersonaHeaderBitmap( rData.mpPersonaHeaderBitmap ),
-    mpPersonaFooterBitmap( rData.mpPersonaFooterBitmap )
+    maPersonaHeaderBitmap( rData.maPersonaHeaderBitmap ),
+    maPersonaFooterBitmap( rData.maPersonaFooterBitmap )
 {
     mnRefCount                  = 1;
     mnBorderSize                = rData.mnBorderSize;
@@ -718,6 +718,7 @@ static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFoot
         return;
 
     rHeaderFooter = aOldValue;
+    rHeaderFooterBitmap = BitmapEx();
 
     // now read the new values and setup bitmaps
     OUString aHeader, aFooter;
@@ -761,14 +762,14 @@ static void setupPersonaHeaderFooter( WhichPersona eWhich, OUString& rHeaderFoot
 
 const BitmapEx StyleSettings::GetPersonaHeader() const
 {
-    setupPersonaHeaderFooter( PERSONA_HEADER, mpData->maPersonaHeaderFooter, mpData->mpPersonaHeaderBitmap );
-    return mpData->mpPersonaHeaderBitmap;
+    setupPersonaHeaderFooter( PERSONA_HEADER, mpData->maPersonaHeaderFooter, mpData->maPersonaHeaderBitmap );
+    return mpData->maPersonaHeaderBitmap;
 }
 
 const BitmapEx StyleSettings::GetPersonaFooter() const
 {
-    setupPersonaHeaderFooter( PERSONA_FOOTER, mpData->maPersonaHeaderFooter, mpData->mpPersonaFooterBitmap );
-    return mpData->mpPersonaFooterBitmap;
+    setupPersonaHeaderFooter( PERSONA_FOOTER, mpData->maPersonaHeaderFooter, mpData->maPersonaFooterBitmap );
+    return mpData->maPersonaFooterBitmap;
 }
 
 // -----------------------------------------------------------------------
commit aab4b03f605ff4273aa41bbbc6fdbf3ffae8daee
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Thu Jan 17 12:02:08 2013 +0100

    Personas: Fix fdo#59230 - make Personas fully work in non-NWF case too.
    
    Change-Id: I19a475f198fcb24c4d66134eb67da719fc99099e

diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index 307957f..69585dc 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -565,7 +565,8 @@ void ToolBox::ImplDrawBackground( ToolBox* pThis, const Rectangle &rRect )
 
         if( !bNativeOk )
         {
-            if( !pThis->IsBackground() )
+            if( !pThis->IsBackground() ||
+                ( pThis->GetAlign() == WINDOWALIGN_TOP && !Application::GetSettings().GetStyleSettings().GetPersonaHeader().IsEmpty() ) )
             {
                 if( !pThis->IsInPaint() )
                     ImplDrawTransparentBackground( pThis, aPaintRegion );
@@ -1546,7 +1547,8 @@ void ToolBox::ImplInitSettings( sal_Bool bFont,
         }
         else
         {
-            if( IsNativeControlSupported( CTRL_TOOLBAR, PART_ENTIRE_CONTROL ) )
+            if( IsNativeControlSupported( CTRL_TOOLBAR, PART_ENTIRE_CONTROL ) ||
+                ( GetAlign() == WINDOWALIGN_TOP && !Application::GetSettings().GetStyleSettings().GetPersonaHeader().IsEmpty() ) )
             {
                 SetBackground();
                 SetPaintTransparent( sal_True );
diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx
index b9a9853..19399da 100644
--- a/vcl/source/window/toolbox2.cxx
+++ b/vcl/source/window/toolbox2.cxx
@@ -936,6 +936,9 @@ void ToolBox::SetAlign( WindowAlign eNewAlign )
             else
                 mbHorz = sal_True;
 
+            // Update the background according to Persona if necessary
+            ImplInitSettings( sal_False, sal_False, sal_True );
+
             // Hier alles neu ausgeben, da sich Border auch aendert
             mbCalc = sal_True;
             mbFormat = sal_True;
commit 301efb8ec61966c93c4445920c5720c0d8d8cae5
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Thu Jan 17 10:40:06 2013 +0100

    Personas: Fix one more potential crash.
    
    Change-Id: Ib7aca26c34aa8484e8c71873805ca8e8812526a7

diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx
index debdc4f..4da8279 100644
--- a/vcl/source/control/ctrl.cxx
+++ b/vcl/source/control/ctrl.cxx
@@ -429,16 +429,17 @@ void Control::DataChanged( const DataChangedEvent& rDCEvt)
          (rDCEvt.GetType() == DATACHANGED_SETTINGS) &&
          (rDCEvt.GetFlags() & SETTINGS_STYLE) )
     {
-        AllSettings     aSettings = GetSettings();
-        StyleSettings   aStyleSettings = aSettings.GetStyleSettings();
-        sal_uLong           nOldOptions = rDCEvt.GetOldSettings()->GetStyleSettings().GetOptions();
-        sal_uLong           nNewOptions = aStyleSettings.GetOptions();
+        const AllSettings* pOldSettings = rDCEvt.GetOldSettings();
 
-        if ( !(nNewOptions & STYLE_OPTION_MONO) && ( nOldOptions & STYLE_OPTION_MONO ) )
+        AllSettings aSettings = GetSettings();
+        StyleSettings aStyleSettings = aSettings.GetStyleSettings();
+        sal_uLong nNewOptions = aStyleSettings.GetOptions();
+
+        if ( pOldSettings && !(nNewOptions & STYLE_OPTION_MONO) && ( pOldSettings->GetStyleSettings().GetOptions() & STYLE_OPTION_MONO ) )
         {
             nNewOptions |= STYLE_OPTION_MONO;
             aStyleSettings.SetOptions( nNewOptions );
-            aStyleSettings.SetMonoColor( rDCEvt.GetOldSettings()->GetStyleSettings().GetMonoColor() );
+            aStyleSettings.SetMonoColor( pOldSettings->GetStyleSettings().GetMonoColor() );
             aSettings.SetStyleSettings( aStyleSettings );
             SetSettings( aSettings );
         }


More information about the Libreoffice-commits mailing list