Fix several flaws with the page sizing logic and drawer events.

Review Request #10733 — Created Oct. 1, 2019 and submitted

Review Board

The original approach to the RB.PageView sizing logic was based in
part on how the datagrid pages behaved before. However, the logic was
not quite right. It made some bad assumptions on sidebar offsets
(resulting in the sidebar being just a bit too far down the page) and
its approach to calculating the bottom padding of the page both wasn't
necessary and got in the way of upcoming unit tests.

This redoes the logic entirely to be more clear in what it calculates
and how, to throw away all the bottom calculation stuff (in favor of
using jQuery's outerHeight()), and to then remove all the calculated
heights passed to onResize() (which are now less useful, and might as
well be calculated by the caller). It also properly restores heights
when going in/out of mobile mode.

While here, I also found that the drawer functionality had regressed
toward the end of my work, and that sidebar pointer events were being
blocked. This was due to the lack of a pointer-events: none when
hidden. That's been added, with pointer events restored when shown.

Carefully inspected the heights and padding on the sidebar and page
container in both desktop and mobile modes, when initially shown,
on resize, when toggling modes, and when the drawer's opened in
mobile mode. Made sure everything was exactly on screen and lined
up with edges.

  1. Ship It!
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to release-4.0.x (ec721fe)