On Wed, 2012-08-01 at 19:56 +0400, Ivan Timofeev wrote:
> With gtk3 I see similar effect for normal (not toolbar) buttons, edits 
> etc. Why do you think this is related to toolbars?

        Oh - quite probably it is a generic problem :-) but we noticed it in
toolbars first.

> I solved the problem by the following change in renderAreaToPix: 
> cairo_data[x*4+0] * alpha

        That appears to me to break the compositing :-) it might happen to
improve things for this case of course.

        Ultimately, we need to draw those widgets just once. With the attached
debug patch I get this:

paint 0x8cfe720: N9framework7ToolBarE
stack paint
paint 0x8d41e30: 16ImplBorderWindow
paint 20 1 combobox 425,37 75x25
stack paint
paint 0x8d41a90: N3svx19SvxFontSizeBox_ImplE
stack paint
paint 0x8d489c0: 4Edit
paint 20 1 combobox 425,37 75x25

        Which seems like it renders the borders twice on that edit (AFAICS) -
although that is not what we want. It'd be great to work out why and
unwind that I think.

        Thanks ! :-)

                Michael.

-- 
michael.me...@suse.com  <><, Pseudo Engineer, itinerant idiot
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index a39d855..550d16c 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -2421,8 +2421,10 @@ void Window::ImplCallPaint( const Region* pRegion, sal_uInt16 nPaintFlags )
     {
         // Paint from the bottom child window and frontward.
         Window* pTempWindow = mpWindowImpl->mpLastChild;
+        fprintf (stderr, "stack paint\n");
         while ( pTempWindow )
         {
+            fprintf (stderr, "paint %p: %s\n", pTempWindow, typeid(*pTempWindow).name());
             if ( pTempWindow->mpWindowImpl->mbVisible )
                 pTempWindow->ImplCallPaint( pChildRegion, nPaintFlags );
             pTempWindow = pTempWindow->mpWindowImpl->mpPrev;
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 5e0972f..23115df 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -697,6 +697,11 @@ void GtkSalGraphics::PaintCombobox( GtkStyleContext *context,
     // plus its actual draw rect excluding adornment
     areaRect = rControlRectangle;
 
+    fprintf (stderr, "paint %d %d combobox %d,%d %dx%d\n",
+             (int)nType, (int)nPart,
+             (int)areaRect.Left(), (int)areaRect.Top(),
+             (int)areaRect.GetWidth(), (int)areaRect.GetHeight());
+
     buttonRect = NWGetComboBoxButtonRect( nType, PART_BUTTON_DOWN, areaRect );
     if( nPart == PART_BUTTON_DOWN )
         buttonRect.Left() += 1;
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to