Sorry for pushing after approval ,_,
Just some cosmetic changes while I was prepping the part 2: - rebase on current master - rename `NAVBAR_ButtonProc`/`BUTTON_SUBCLASS_ID` into `NAVBAR_PushButtonProc`/`PUSHBUTTON_SUBCLASS_ID`, describes it more accurately - remove brackets in `WM_LBUTTONDOWN`/`WM_LBUTTONDBLCLK` in `NAVBAR_PushButtonProc`, for some consistency, usually not placing them if I don't have to - swap `SWP_NOSIZE | SWP_NOMOVE` to `SWP_NOMOVE | SWP_NOSIZE` in tab navigation commit, so that it matches the argument order - add `LAYOUT_ITEMS_N` define for use in `BeginDeferWindowPos`, to update the number of items in a single place instead of 2 or 3