----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/126291/ -----------------------------------------------------------
(Updated March 4, 2016, 8:19 p.m.) Review request for KDE Software on Mac OS X and KDE Frameworks. Changes ------- This revision has a more complete (as complete as possible?) internal WId registry feature. WIds on OS X are tricky in that they do not usually correspond to `NSWindow` instances but instead to an `NSView` instance. As such there is no guarantee to receive any kind of notification when the NSView is created, which (I think) means that one has to take stock of an application's windows and views at certain times like during appropriate calls to KWindowSystem. With these latest modifications, the `kwindowsystem_threadtest` autotest completes successfully, but only when doing an explicit action after `m_widget->show()` that causes the widget to be displayed (basically, the equivalent of a call to `XSync()`). Repository: kwindowsystem Description ------- 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 `WId`s. A new method could then be added (to `KWindowInfo`?) to distinguish `WId`s 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. Diffs (updated) ----- autotests/CMakeLists.txt 65ed8d4 autotests/kwindowsystem_threadtest.cpp a142bae src/debug_p.h 5ef8996 src/debug_p.cpp 72abfb7 src/kwindowsystem.cpp 407a67d src/platforms/osx/CMakeLists.txt 4fc3347 src/platforms/osx/cocoa.json PRE-CREATION src/platforms/osx/kkeyserver.cpp 3ddb921 src/platforms/osx/kwindowinfo.cpp e8555bb src/platforms/osx/kwindowinfo.mm PRE-CREATION src/platforms/osx/kwindowinfo_mac_p.h c8f307e src/platforms/osx/kwindowinfo_p_cocoa.h PRE-CREATION src/platforms/osx/kwindowsystem.cpp 1758829 src/platforms/osx/kwindowsystem_mac_p.h PRE-CREATION src/platforms/osx/kwindowsystem_macobjc.mm PRE-CREATION src/platforms/osx/kwindowsystem_p_cocoa.h PRE-CREATION src/platforms/osx/plugin.h PRE-CREATION src/platforms/osx/plugin.cpp PRE-CREATION Diff: https://git.reviewboard.kde.org/r/126291/diff/ Testing ------- On OS X 10.9.5 with Qt 5.5.1 and frameworks 5.16.0 . Thanks, René J.V. Bertin
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel