Native Theme implementation in Qt port is in very bad shape, and practically 
was never tested, because Qt XUL Fennec use css scrollbars, and native scroll 
indicators are disabled.
there are 2 ways to fix this problem:
1) Fix Qt native themeing.
2) disable widget native themeing (set preference 
mozilla.widget.disable-native-theme = true) and use native default CSS 
scrollbars theme, or ajust it to be just indicators and not scrollbars.



On Monday, 26 November 2012 20:30:30 UTC-8, Michael Goffioul  wrote:
> Hi,
> 
> 
> 
> I'm trying to use a Qt-build of mozilla as an embedded web browser. I've
> 
> built mozilla for Qt from git sources and used a patched version of
> 
> mozembed as explained in [1]. I've already detected and fixed 2 issues in
> 
> mozilla sources, but now I've a problem with scrollbar rendering.
> 
> 
> 
> Scrollbars are not rendered at top-level. They're rendered correctly in sub
> 
> frames. See the following screenshots for an illustration:
> 
> - mozembed1 [2]: page with frames, where scrollbars are rendered
> 
> - mozembed2 [3]: page without frames, scrollbars are not rendered
> 
> These screenshots are produced using my test embedding app, but I can
> 
> reproduce the exact same result by running firefox from my Qt-build of
> 
> mozilla. The weird colors in the first screenshot are due to modification
> 
> I've made to nsNativeTheme.cpp to easily identify what was rendered where.
> 
> Obviously the missing colors in the second screenshot is a hint that
> 
> scrollbars are not rendered properly.
> 
> 
> 
> Would anybody have some hint where I should look at to track down the
> 
> issue? I don't mind digging into the code, but given the size of the code
> 
> base, any hint will be greatly appreciated.
> 
> 
> 
> >From my first debugging attempts, I can tell that rendering code is
> 
> executed and scrollbars are painted into some gfxImageSurface (width = 64,
> 
> height = window height; not sure why the width is 64 as the scrollbar
> 
> should only be ~17 pixels wide). However when this is transfered later on
> 
> to Qt, through nsWindow::DoPaint, it's using another gfxImageSurface
> 
> object, namely gBufferSurface defined in widget/qt/nsWindow.cpp.
> 
> 
> 
> Thanks,
> 
> Michael.
> 
> 
> 
> [1]
> 
> https://groups.google.com/group/mozilla.dev.embedding/browse_thread/thread/0db32900d2ff53ca#
> 
> [2] http://picpaste.com/mozembed1-cwDoOT2O.png
> 
> [3] http://picpaste.com/mozembed2-KFTOssgU.png

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to