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