Bug 579056 - [GTK4] FocusIn/Out events not working

FocusIn/FocusOut events are now correctly sent in all cases.

- Implemented a new callback for GTKWindow's is-active property
- windowActiveProc now allows SWT to replicate GTK3 behaviour for
FocusIn and FocusOut events
- Created firstFixedHandle to cache the first SWTFixed container to
prevent extra calls (mostly relevant when no other text input based
widgets are in a shell)

Tested by using Snippet 1 to test default behaviour when no other text
input based widgets present. Then, snippet 1 was modified to contain two
Text widgets to allow the testing of switching focus back and forth. In
both cases FocusIn and FocusOut listeners were added to the relevant
widgets (Shell + Text) to ensure events were being sent correctly.

Change-Id: Idd924a60bf3110bf6e2328f826768b911b2a7911
Signed-off-by: Joel Majano <jmajano@redhat.com>
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.swt/+/191748
Tested-by: Alexander Kurtakov <akurtako@redhat.com>
Reviewed-by: Alexander Kurtakov <akurtako@redhat.com>
5 files changed
tree: ea21d31af55b563f1b23e10bebd5d65c9c8835f6
  1. bundles/
  2. container/
  3. examples/
  4. features/
  5. local-build/
  6. tests/
  7. .gitattributes
  8. .gitignore
  9. CONTRIBUTING
  10. Jenkinsfile
  11. LICENSE
  12. NOTICE
  13. pom.xml
  14. 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!