Bug 535978: [GTK3] Bad Scrolling behaviour of tables with Checkbox

The issue at hand in this bug is that Tree/Table editing widgets are
children of the fixedHandle, which sits above the GtkTreeView in the
widget hierarchy. This means that they are siblings of the tree/table,
and thus will continue to draw even on top of the tree/table headers.

The fix is to calculate the location and size of the header bars and
keep track of them in Composite. When editing widgets are drawn using
Composite.propagateDraw(), we check to see if the widgets would be about
to be drawn over a tree/table header. If they are, we raise/lower the
GdkWindow belonging to the editing widgets, depending on whether or not
it needs to be drawn or not.

Tested on GTK3.24 using the snippet attached to this ticket and also the
snippet from bug 531928. No AllNonBrowser JUnit tests fail, and the
update sites editor in a child Eclipse seems to be working as intended.

Change-Id: I66d90c438a3d44afdd6bf6112deef5af680cd201
Signed-off-by: Eric Williams <ericwill@redhat.com>
4 files changed
tree: 93383ee8a51298b4782a50ced5fe182223855bc7
  1. bundles/
  2. examples/
  3. features/
  4. local-build/
  5. tests/
  6. .gitignore
  7. CONTRIBUTING
  8. LICENSE
  9. NOTICE
  10. pom.xml
  11. README.md
README.md

Contributing to SWT

Thanks for your interest in this project.

Developer resources:

See the following description for how to contribute a feature or a bug fix to SWT.

Information regarding source code management, builds, coding standards, and more and be found under the following link.

Contributor License Agreement:

Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).

Contact:

Contact the project developers via the project's “dev” list.

Search for bugs:

This project uses Bugzilla to track ongoing development and issues.

Create a new bug:

Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome!