Review Request 126078: [OS X] modernising the KIdleTime plugin (WIP!)

René J.V. Bertin rjvbertin at gmail.com
Mon Nov 16 15:42:59 UTC 2015


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126078/
-----------------------------------------------------------

(Updated Nov. 16, 2015, 4:42 p.m.)


Review request for KDE Software on Mac OS X and KDE Frameworks.


Changes
-------

This patch addresses most issues. I'm still getting the 10000 timeout twice in the KIdleTime example, but otherwise it appears to behave as intended.

`simulateUserActivity` does *not* reset HIDIdleTime on recent OS X versions (if it ever did). I'm simulating that now via a software reset (idle time offset); please check if I'm resetting it properly.
Since that method uses a deprecated function, I've included a code snippet to show how to simulate user activity by rocking the mouse cursor back and forth over a tiny amount. That doesn't reset HIDIdleTime either, but might suffice for other applications of `simulateUserActivity` (if there are any such) .

TODO : cleanup


Repository: kidletime


Description
-------

I noticed that the KIdleTime example doesn't work properly on OS X, and that the plugin for OS X still uses the deprecated Carbon-based algorithm that I already patched for KDE4.

This patch is a work-in-progress (hence the qDebugs) update to use IOKit, IORegistry and CoreServices to do idle-time calculation as it should be done, and allow simulated user activity through a "less deprecated" function.


Diffs (updated)
-----

  src/plugins/osx/macpoller.cpp ad9c10f 
  src/plugins/osx/macpoller.h ef51ea5 
  src/plugins/osx/CMakeLists.txt e1b50b8 

Diff: https://git.reviewboard.kde.org/r/126078/diff/


Testing
-------

On OS X 10.9 with Qt 5.5.1 and frameworks 5.16.0 .

The example now works: when I set a QTimer with interval==0, the expected wait for user input (`resumingFromIdle` signal) works. However, I am getting a `stopCatchingIdleEvents` signal which means the application waits forever, without ever getting to compare idle time to the list of timeouts.
I haven't been able to figure out where that signal comes from, nor why this doesn't happen on Linux.

Surely I'm missing something, but what?


Thanks,

René J.V. Bertin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20151116/49280a3f/attachment.html>


More information about the Kde-frameworks-devel mailing list