VCL merge most of NotebookbarTabControlBase

Desktop / LibreOffice - Jan-Marek Glogowski [] - 21 June 2019 14:47 EDT

NotebookbarTabControlBase (NBBTCB) tried to be clever and save a bool per TabControl page, by not adding a mbVisible to the ImplTabItem and misuse mbEnabled.

The result is not only a bug with tab highlighting in notebook bars, but also a lot of duplicate code and additional virtual functions. Normal TabControls highlight correct.

I'm not 100% sure about the dropped Resize()s, but the code in ImplPaint() and calculateRequisition() differs by three lines; which can be merged by adding the TabControl feature to hide tabs and not just disable them. I first tried to additionally merge ImplPlaceTabs() too, but the NBBTCB version differs much more and I didn't want to touch larger parts of TabControl.

Change-Id: Ie6e18fb03b76b46e3627923eb1ac0f674c3eb7e8 Reviewed-on:

6540912ae1a5 VCL merge most of NotebookbarTabControlBase
include/vcl/tabctrl.hxx | 21 +-
toolkit/source/awt/vclxtabpagecontainer.cxx | 2 +-
vcl/source/control/tabctrl.cxx | 569 +++++++---------------------
3 files changed, 154 insertions(+), 438 deletions(-)


  • Share