initial implementation of a platform plugin for OS X (WIP)

Review Request #126291 - Created Dec. 9, 2015 and updated

Information
René J.V. Bertin
kwindowsystem
Reviewers
kde-mac, kdeframeworks

KWindowSystem has been lacking a platform plugin for OS X. This RR presents a "backport" of the modified KDE4 KWindowSystem implementation that has been used in the MacPorts kdelibs4 port for the last 2 or 3 (or more) years.

I have made some initial steps to remove deprecated Carbon API calls, but this is clearly a work in progress.

Open questions include
- is there any justification to run an event handler (or Cocoa observer) to keep track of running applications, possibly even listing all their open windows?
- is there any use for the Qt event listener framework (cf. the NETEventFilter in the X11 plugin)? I haven't yet had time to try to figure out what this "could be good for", and am very open to suggestions in this departments.
- one application for such an event filter would be a listener that catches the opening and closing of all windows by the running process, and keeps track of their WIds. A new method could then be added (to KWindowInfo?) to distinguish WIds created by the running application from "foreign" ones (useful also on Wayland and MS Windows).

KWindowSystem::setMainWindow should become a front for payload provided by the plugins. I'll leave that to the regular/official maintainer(s) of this framework.

This code could probably do with lots of comments; I'll try to add them as questions about this or that bit of code arise.

On OS X 10.9.5 with Qt 5.5.1 and frameworks 5.16.0 .

Issues

  • 1
  • 28
  • 1
  • 30
Description From Last Updated
do we really need this? That's way too much ifedery for me. Either we have that feature or not. Have ... Martin Gräßlin Martin Gräßlin
René J.V. Bertin
Martin Gräßlin
René J.V. Bertin
Martin Gräßlin
René J.V. Bertin
René J.V. Bertin
René J.V. Bertin
Martin Gräßlin
René J.V. Bertin
Review request changed

Change Summary:

Updated version against git/master, taking most comments into account.

I don't understand how I can have missed or ignored those revision requests for almost a year, and regret that's the case because at the time the potential interest of that EXPERIMENTAL_WINDOW_TRACKING feature and the reason I decided to hold off on finalising it were almost certainly fresher in my mind.

Diff:

Revision 9 (+1532 -764)

Show changes

René J.V. Bertin

https://phabricator.kde.org/D5069

Loading...