1. 17 Nov, 2020 1 commit
    • David Edmundson's avatar
      Allow small timeout intervals in IdleInterface · 9cf51bb1
      David Edmundson authored
      A threshold exists to stop users flooding the server for no reason.
      
      However, there is a usecase for small timeouts.
      
      rsibreak has a "please relax for 20 seconds" interface. Here it makes
      perfect sense to know if a user is active in small increments. The plan
      is to start a 1s timer and wait for that. Then we wait locally for 20s
      without a resume event.
      9cf51bb1
  2. 02 Oct, 2020 1 commit
  3. 28 Jul, 2020 1 commit
  4. 29 Apr, 2020 1 commit
  5. 16 Mar, 2020 1 commit
  6. 23 Jan, 2020 1 commit
  7. 19 Nov, 2018 1 commit
  8. 02 Jan, 2018 1 commit
  9. 29 Dec, 2017 1 commit
    • Martin Flöser's avatar
      [server] Add a method IdleInterface::simulateUserActivity · 4595a2c2
      Martin Flöser authored
      Summary:
      So far only the client was able to simulate user activity. This new
      method allows the server to also simulate user activity on all created
      idle timeouts. This is required by KWin to prevent idle timeouts when
      the user interacts through KDE Connect's virtual touchpad. In that
      situation the mouse pointer is used without updating the input time
      stamp as it doesn't come from "real" input devices and thus the idle
      timeout prevention is not activated.
      
      Reviewers: #frameworks, #plasma, #kwin
      
      Subscribers: plasma-devel
      
      Tags: #plasma_on_wayland, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D9510
      4595a2c2
  10. 14 Nov, 2017 1 commit
    • Martin Flöser's avatar
      [server] Support inhibiting the IdleInterface · 42b2daae
      Martin Flöser authored
      Summary:
      This is a preparation step to support idle_inhibit_unstable_v1 protocol.
      As in Plasma powermanagement, screen locking, dpms, etc. is not
      controlled by the wayland compositor but by external components through
      the IdleTimeout interface the compositor needs a way to inhibit the idle
      timeouts. So once idle_inhibit_unstable_v1 is implemented the compositor
      can hook this up to the inhibit API in IdleInterface and thus inhibit
      powermanagement, etc. as requested by the idle_inhibit_unstable_v1
      protocol.
      
      The added API is straight forward:
       * inhibit: inhibits idle timeouts
       * uninhibit: uninhibits again
       * inhibit and uninhibit must be called in pairs, so twice inhibit,
      means uninhibit must be called twice
       * isInhibited: whether it's inhibited
       * and a signal that it changed
      
      The signal is mostly used internally to stop the timers.
      
      Test Plan: Test case extended
      
      Reviewers: #frameworks, #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel
      
      Tags: #plasma_on_wayland, #frameworks
      
      Differential Revision: https://phabricator.kde.org/D8383
      42b2daae
  11. 30 May, 2016 1 commit
    • Martin Flöser's avatar
      [server] Standardize the destructor request handling for Resources · 03594de1
      Martin Flöser authored
      Summary:
      This change standardizes the behavior regarding the destructor request.
      
      The destructor should destroy the resource and nothing else. The
      Wayland library invokes the static unbind method once the resource is
      destroyed. The implementation provided by Resource::Private::unbind
      triggers a delete later on the Resource. So there is no need to trigger
      a deleteLater from the destructor request callback.
      
      This change adds a generic implementation to Resource::Private which is
      now used by all inheriting classes replacing the custom implementations.
      
      Test Plan:
      For a few Resources the test is extended to ensure that the Resource
      gets deleted on server side.
      
      Reviewers: #plasma
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D1679
      03594de1
  12. 08 Dec, 2015 1 commit
    • Martin Flöser's avatar
      [server] Minimum supported idle timeout is 5 sec · 7a34e3be
      Martin Flöser authored
      A system isn't idle by definition below 5 sec. Before it's not possible
      to properly determine whether the user is still interacting with the
      system or not. Thus such a short timeout is not sufficient to determine
      whether the system is idle.
      
      Furthermore allowing short timeouts like 1 msec can be used to gather
      information from the system. It would allow to reconstruct the timestamp
      changes on the seat very reliable, which we do not want a Client to know.
      
      And also this can be used to get events on each key press and key release
      and the time between each of the events. This can be used to gather
      statistics which would in worst case allow to reconstruct what the user
      is typing. Determining where a word starts and ends should be relatively
      straight forward if you know the timing. With the length of the word and
      the statistics of alphabetic distribution it becomes possible to
      reconstruct some words. And also individual letters. With enough
      statistic and some known words one can determine how long it takes to
      press a certain letter. At that point the idle interface would be a
      keylogger.
      
      To prevent such attacks the timestamp is now modified to be at least
      5 sec. Why 5 sec? Because it's the smallest timestamp used in the
      KIdleTime example application which I do not want to break.
      5 sec are long enough to destroy this possible attack.
      
      REVIEW: 126220
      7a34e3be
  13. 10 Sep, 2015 1 commit
  14. 09 Sep, 2015 1 commit
    • Martin Flöser's avatar
      Fix doxygen generation · 502e1c5d
      Martin Flöser authored
      Doxygen doesn't like our callback listener at all. We need to hide
      it from doxygen, otherwise docu doesn't get generated.
      502e1c5d
  15. 09 Jul, 2015 1 commit
    • Martin Flöser's avatar
      Add support for an idle time interface · 47018790
      Martin Flöser authored
      The idle time interface is modelled for the use cases of the KIdleTime
      framework to allow providing a Wayland specific implementation.
      
      It supports registering idle timeouts which are triggered on server
      side if there has not been any user activity on the seat for the
      requested amount of time. Once user activity resumes a resume from idle
      signal is emitted.
      
      In additon there is the possibility to simulate user activity which
      simulates the resume from idle.
      47018790