[Libreoffice-commits] .: 2 commits - svtools/source vcl/unx

Ivan Timofeev ivantimofeev at kemper.freedesktop.org
Wed Aug 1 06:06:22 PDT 2012


 svtools/source/contnr/svtreebx.cxx       |    2 -
 vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx |   40 ++++++++-----------------------
 2 files changed, 12 insertions(+), 30 deletions(-)

New commits:
commit 6657052e463b4ff9c8a005faadcf2289d32343a3
Author: Ivan Timofeev <timofeev.i.s at gmail.com>
Date:   Wed Aug 1 10:16:49 2012 +0400

    consider only fully visible items
    
    Change-Id: I32d88e5206a96b316f29cf4ede04a6ac951d86d5

diff --git a/svtools/source/contnr/svtreebx.cxx b/svtools/source/contnr/svtreebx.cxx
index ec7d135..8e37676 100644
--- a/svtools/source/contnr/svtreebx.cxx
+++ b/svtools/source/contnr/svtreebx.cxx
@@ -2308,7 +2308,7 @@ SvLBoxEntry* SvTreeListBox::GetLastEntryInView() const
         {
           Point aPos( GetEntryPosition(pNext) );
           const Size& rSize = pImp->GetOutputSize();
-          if( aPos.Y() < 0 || aPos.Y() >= rSize.Height() )
+          if( aPos.Y() < 0 || aPos.Y() + GetEntryHeight() >= rSize.Height() )
               break;
           else
               pEntry = pNext;
commit 09eb412b2c8c55c9b0a280a61d6fef18ab5c7c18
Author: Ivan Timofeev <timofeev.i.s at gmail.com>
Date:   Fri Jul 27 20:53:32 2012 +0400

    gtk: listbox border was not rendered
    
    remove extending of pixmapRect in the nPart == PART_WINDOW branch
    and simplify code, since rControlRectangle, pixmapRect and widgetRect
    are the same.
    
    Change-Id: I253851fad558e525cd533bb3576a9bba82187e53

diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
index 2f2158a..4d8ba82 100644
--- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
@@ -2733,15 +2733,13 @@ sal_Bool GtkSalGraphics::NWPaintGTKListBox( GdkDrawable* gdkDrawable,
                                         const ImplControlValue& aValue,
                                         const OUString& rCaption )
 {
-    Rectangle        pixmapRect;
-    Rectangle        widgetRect;
     Rectangle        aIndicatorRect;
     GtkStateType    stateType;
     GtkShadowType    shadowType;
     gint            bInteriorFocus;
     gint            nFocusLineWidth;
     gint            nFocusPadding;
-    gint            x,y;
+    gint            x,y,w,h;
     GdkRectangle    clipRect;
 
     NWEnsureGTKButton( m_nXScreen );
@@ -2749,27 +2747,16 @@ sal_Bool GtkSalGraphics::NWPaintGTKListBox( GdkDrawable* gdkDrawable,
     NWEnsureGTKScrolledWindow( m_nXScreen );
     NWConvertVCLStateToGTKState( nState, &stateType, &shadowType );
 
-    // Find the overall bounding rect of the buttons's drawing area,
-    // plus its actual draw rect excluding adornment
-    pixmapRect = rControlRectangle;
-    if ( nPart == PART_WINDOW )
-    {
-        // Make the widget a _bit_ bigger
-        pixmapRect.SetPos( Point( pixmapRect.Left() - 1,
-                                  pixmapRect.Top() - 1 ) );
-        pixmapRect.SetSize( Size( pixmapRect.GetWidth() + 2,
-                                  pixmapRect.GetHeight() + 2 ) );
-    }
-
-    widgetRect = pixmapRect;
-    x = pixmapRect.Left();
-    y = pixmapRect.Top();
-
     // set up references to correct drawable and cliprect
     NWSetWidgetState( gWidgetData[m_nXScreen].gBtnWidget, nState, stateType );
     NWSetWidgetState( gWidgetData[m_nXScreen].gOptionMenuWidget, nState, stateType );
     NWSetWidgetState( gWidgetData[m_nXScreen].gScrolledWindowWidget, nState, stateType );
 
+    x = rControlRectangle.Left();
+    y = rControlRectangle.Top();
+    w = rControlRectangle.GetWidth();
+    h = rControlRectangle.GetHeight();
+
     if ( nPart != PART_WINDOW )
     {
         gtk_widget_style_get( gWidgetData[m_nXScreen].gOptionMenuWidget,
@@ -2790,19 +2777,15 @@ sal_Bool GtkSalGraphics::NWPaintGTKListBox( GdkDrawable* gdkDrawable,
         {
             // Listboxes must paint opaque since some themes have alpha-channel enabled bodies
             gtk_paint_flat_box( m_pWindow->style, gdkDrawable, GTK_STATE_NORMAL, GTK_SHADOW_NONE,
-                                &clipRect, m_pWindow, "base", x, y,
-                                pixmapRect.GetWidth(), pixmapRect.GetHeight() );
+                                &clipRect, m_pWindow, "base", x, y, w, h);
             gtk_paint_box( gWidgetData[m_nXScreen].gOptionMenuWidget->style, gdkDrawable, stateType, shadowType, &clipRect,
                            gWidgetData[m_nXScreen].gOptionMenuWidget, "optionmenu",
-                           x+(widgetRect.Left() - pixmapRect.Left()),
-                           y+(widgetRect.Top() - pixmapRect.Top()),
-                           widgetRect.GetWidth(), widgetRect.GetHeight() );
-            aIndicatorRect = NWGetListBoxIndicatorRect( m_nXScreen, nType, nPart, widgetRect, nState,
+                           x, y, w, h);
+            aIndicatorRect = NWGetListBoxIndicatorRect( m_nXScreen, nType, nPart, rControlRectangle, nState,
                                                         aValue, rCaption );
             gtk_paint_tab( gWidgetData[m_nXScreen].gOptionMenuWidget->style, gdkDrawable, stateType, shadowType, &clipRect,
                            gWidgetData[m_nXScreen].gOptionMenuWidget, "optionmenutab",
-                           x+(aIndicatorRect.Left() - pixmapRect.Left()),
-                           y+(aIndicatorRect.Top() - pixmapRect.Top()),
+                           aIndicatorRect.Left(), aIndicatorRect.Top(),
                            aIndicatorRect.GetWidth(), aIndicatorRect.GetHeight() );
         }
         else
@@ -2811,8 +2794,7 @@ sal_Bool GtkSalGraphics::NWPaintGTKListBox( GdkDrawable* gdkDrawable,
 
             gtk_paint_shadow( gWidgetData[m_nXScreen].gScrolledWindowWidget->style, gdkDrawable, GTK_STATE_NORMAL, shadowType,
                 &clipRect, gWidgetData[m_nXScreen].gScrolledWindowWidget, "scrolled_window",
-                x+(widgetRect.Left() - pixmapRect.Left()), y+(widgetRect.Top() - pixmapRect.Top()),
-                widgetRect.GetWidth(), widgetRect.GetHeight() );
+                x, y, w, h );
         }
     }
 


More information about the Libreoffice-commits mailing list