HandleWith() doesn't have a User_Action_Time argument so MC can't pass it on to HandleChannels() properly. Currently MC uses the time it got the HandleWith() call, but that's broken for noninteractive approvers. We could add a HandleWithTime() variant.
This also breaks interactive approvers: on X, UserActionTime needs to be a timestamp obtained from the X server, which doesn't necessarily match wallclock time.
Simple branch adding this method: http://git.collabora.co.uk/?p=user/cassidy/telepathy-spec;a=shortlog;h=refs/heads/handle-time
Looks good to me, but this insta-adds stable API, so I think we should have a MC patch that implements it ready to go, and have review from another of the spec developers. wjt, you reported this - does this method look good to you?
Looks fine to me. HandleWithMisc(s: handler, a{sv}: misc) would be another option but I think it would be overkill. :)
Implemented in http://git.collabora.co.uk/?p=user/cassidy/telepathy-mission-control;a=shortlog;h=refs/heads/handle-time This is blocked by a spec and tp-glib release.
Please merge this to the spec, and clone to MC for the implementation. Quick review on the implementation: - tp_svc_channel_dispatch_operation_return_from_handle_with ( - approval->context); + + if (!approval->handle_with_time) + tp_svc_channel_dispatch_operation_return_from_handle_with ( + approval->context); + else + tp_svc_channel_dispatch_operation_return_from_handle_with_time ( + approval->context); You don't actually need this complexity (or the boolean), because HandleWith and HandleWithTime both return the same thing: you can just put a comment "HandleWith and HandleWithTime both return void, so it's OK to not distinguish" above the call to tp_svc_channel_dispatch_operation_return_from_handle_with. Similarly, with a similar comment it would be OK (and, IMO, clearer) to implement dispatch_operation_handle_with as a simple call to dispatch_operation_handle_with_time.
spec merged. I opened bug #28239 for the implementation.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.