1. 07 Mar, 2018 3 commits
    • Mike Gabriel's avatar
      hw/nxagent/Screen.c: Cover Xinerama bounding box corner cases. · 9117a5bf
      Mike Gabriel authored
        If the agent window is moved around on screen, it can happen
        that it is moved into an invisible area of the real Xserver,
        we calls this "beyond the bounding box".
        .
        If the agent window is partially beyond the bounding box, we
        don't want Xinerama to re-adjust the RandR parameters inside the
        agent. Near the bounding box, the session shall stay intact.
        .
        This means, desktop env wise, the desktop session control
        elements can be moved (with the agent window) into the invisible
        areas of the real Xserver and moved out again without RandR
        events arriving inside the agent session.
      
      Fixes ArcticaProject/nx-libs#662.
      9117a5bf
    • Mihai Moldovan's avatar
      nxcomp{,shad}/configure.ac: replace versionating non-portable sed construct with… · 3352cfab
      Mihai Moldovan authored
      nxcomp{,shad}/configure.ac: replace versionating non-portable sed construct with hopefully more portable awk construct.
      3352cfab
    • Mihai Moldovan's avatar
      nx-X11/programs/Xserver/hw/nxagent/Init.c: disable DPMS support within nxagent. · 76e7d26b
      Mihai Moldovan authored
      Keeping it enabled leads to nxagent consuming 100% of CPU resources
      after some time.
      
      Older code used three different timers for each DPMS mode (standby,
      suspend, off), with each timer checking that the elapsed idle time is
      strictly less than the DPMS mode timeout value.
      
      Newer code started merging DPMS and ScreenSaver timers into a single
      one, with checking DPMS modes and timeouts in a fall-through fashion.
      The code expects that, if a timeout is reached, the mode is set
      accordingly, so that the old timeout is disregarded next time.
      
      Since we stub out DPMSSetMode() in nxagent, this doesn't happen.
      
      In this case, the old DPMS timeout will be checked the next time around
      and we will be calculating DPMS_MODE_TIMEOUT - IDLE_TIME. If IDLE_TIME
      is bigger than DPMS_MODE_TIMEOUT, we run into problems with unsigned
      integers. What happens next will be *another* overflow once DoTimers()
      is executed and from that function SetTimers(), which will add the
      current timestamp to the timeout value. Later functions subtract the
      current timestamp again (which will be even higher since some time
      elapsed) and underflow the value again.
      
      It looks like this leads to consistent firing of the timer - something
      we do not want to have.
      
      For new, disable DPMS support in nxagent. We do not execute it on actual
      hardware that could change DPMS modes.
      
      At a later time, implementing a DPMS timeout/mode passthrough to the
      connected X server/display might be beneficial.
      
      Fixes: ArcticaProject/nx-libs#671
      76e7d26b
  2. 06 Mar, 2018 1 commit
  3. 02 Mar, 2018 1 commit
  4. 01 Mar, 2018 6 commits
  5. 28 Feb, 2018 4 commits
  6. 27 Feb, 2018 25 commits