Hi Ruslan,

On 28.07.2012 15:08, Ruslan Kabatsayev wrote:
This mostly looks good, but breaks a bit border for oxygen-gtk

I have just installed it, yeah - it is broken... :(

(which somehow has worked before the patch, unlike other themes).

Strange.

I'd suggest using getFrameWidth() to adjust the shadow rect.

AFAICS vcl makes listbox a child of borderwindow, which receives the border sizes via DecorationView::DrawFrame:
http://opengrok.libreoffice.org/xref/core/vcl/source/window/brdwin.cxx#1212
(for oxygen-gtk it is 2 for each border);

shrinks the listbox size by that border in Resize():
http://opengrok.libreoffice.org/xref/core/vcl/source/window/brdwin.cxx#2066

draws CTRL_LISTBOX PART_WINDOW (i.e. calls gtk_paint_shadow with "scrolled_window") with its size (i.e. client+borders):
http://opengrok.libreoffice.org/xref/core/vcl/source/window/brdwin.cxx#1362

Try to build with my patch and the attached diff applied, IMHO LibO will do things right. But probably I missed something (as usual :).

OTOH, we've done quite some customizations in oxygen-gtk before to
make it look better with LibO, so maybe this is what should be changed
on oxygen-gtk side.

It would be great if you could check it. :)

Regards,
Ivan
diff --git a/vcl/source/window/brdwin.cxx b/vcl/source/window/brdwin.cxx
index 94a21e9..c432211 100644
--- a/vcl/source/window/brdwin.cxx
+++ b/vcl/source/window/brdwin.cxx
@@ -1359,8 +1359,17 @@ void ImplSmallBorderWindowView::DrawWindow( sal_uInt16 nDrawFlags, OutputDevice*
             aCtrlRegion=aContentRgn;
         }
 
+        if (pCtrl->GetType() == WINDOW_TREELISTBOX)
+        {
+            bNativeOK=1;
+            pWin->SetLineColor(Color(COL_BLACK));
+            pWin->SetFillColor(Color(COL_BLACK));
+            pWin->DrawRect(aCtrlRegion);
+        } else {
+
         bNativeOK = pWin->DrawNativeControl( aCtrlType, aCtrlPart, aCtrlRegion, nState,
                 aControlValue, rtl::OUString() );
+        }
 
         // if the native theme draws the spinbuttons in one call, make sure the proper settings
         // are passed, this might force a redraw though.... (TODO: improve)
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to