1. 28 Feb, 2021 1 commit
    • Olivier Fourdan's avatar
      placement: Ignore struts from windows on other monitors · 7e8d60bb
      Olivier Fourdan authored
      The EWMH[1] “specification” defines truts are relative to the entire X11
      screen, which include all monitors.
      
      Under some configuration, when montors are placed one on top of the
      other, that struts set on the monitor above would invalidate the entire
      lower monitor, preventing from placing windows on that monitors.
      
      To avoid that issue, xfwm4 was computing the actual struts area and
      would simply ignore any struts greater than a quarter of the screen.
      
      This is largely inefficient and only very partially solve the problem.
      
      Instead, simply apply struts for windows on that monitor and ignore
      those from the other monitors, so that a panel placed on the monitors
      above would simply be ignored on the monitor below.
      Signed-off-by: Olivier Fourdan's avatarOlivier Fourdan <fourdan@xfce.org>
      Closes: #517
      7e8d60bb
  2. 25 Feb, 2021 1 commit
  3. 21 Feb, 2021 4 commits
  4. 07 Feb, 2021 1 commit
  5. 06 Feb, 2021 3 commits
  6. 05 Feb, 2021 1 commit
  7. 04 Feb, 2021 1 commit
    • Matias De lellis's avatar
      display: check for XResQueryClientIds to enable XRes extension. · a070149a
      Matias De lellis authored
      The use of XRes extention depends libXRes-devel, but in xfwm4 looks for the
      XResQueryClients symbol to enable its use, however this one exists in libxres
      1.0.7, but xfwm4 uses other symbols that were only introduced in 1.2, failing
      to compile xfwm4 with this version.
      
      I change the search for the symbol XResQueryClients to XResQueryClientIds also
      introduced in 1.2, being able to compile xfwm4 with two versions of libXRes.
      
      Fix issue #505Signed-off-by: Matias De lellis's avatarMatias De lellis <mati86dl@gmail.com>
      a070149a
  8. 02 Feb, 2021 2 commits
  9. 28 Jan, 2021 1 commit
  10. 26 Jan, 2021 1 commit
  11. 23 Jan, 2021 4 commits
    • Olivier Fourdan's avatar
      settings: Enable either windows wrap or tiling · 1ab8a3b2
      Olivier Fourdan authored
      Both options are incompatible, make sure to allow either one or the
      other, but not both.
      Signed-off-by: Olivier Fourdan's avatarOlivier Fourdan <fourdan@xfce.org>
      Closes: #504
      1ab8a3b2
    • Olivier Fourdan's avatar
      compositor: Add throttled repaint · 80498847
      Olivier Fourdan authored
      When using vblank while the screen is turned off, only 1 notification
      per second is triggered.
      
      In such a case, there is no need for the compositor to retry repainting
      the screen at such a high pace as when when the screen is on.
      
      To avoid wasting power resources, simply throttle repaints after 100
      unsuccessful retries.
      Signed-off-by: Olivier Fourdan's avatarOlivier Fourdan <fourdan@xfce.org>
      Closes:#502
      80498847
    • Olivier Fourdan's avatar
      compositor: Do not clear timeout on retry · cb06a039
      Olivier Fourdan authored
      When using vblank (either GLX or Xpresent), a previous paint request may
      still be pending while new damage notifications are triggered by clients
      updates.
      
      If that occurs, xfwm4 does not cancel the existing timeout previously
      created timeout (so it will retry automatically) but clears the timeout
      id.
      
      As a result, if new damage occurs, a new timeout would be created while
      an existing one is still running.
      
      When using Xpresent while the screen is turned off, no Xpresent event
      notification occur, which increases the risk of the above occuring.
      
      Clear the timeout id only when the repaint succeeded, so we don't pile
      up multiple retries.
      Signed-off-by: Olivier Fourdan's avatarOlivier Fourdan <fourdan@xfce.org>
      See-also: #502
      cb06a039
    • Olivier Fourdan's avatar
      compositor: Fix repaint timeout · 88c735c9
      Olivier Fourdan authored
      Commit 2fa246ca ("Add define for compositor_timeout_cb interval")
      replaced g_timeout_add() with g_timeout_add_full() to separate the
      timeout and priority.
      
      Unfortunately, in doing so, it confused the timeout and priority and
      decreased the priority slightly, causing the repaint timeout to occur
      less often, causing delays in repaint.
      
      Fix the priority and timeout as intended.
      Signed-off-by: Olivier Fourdan's avatarOlivier Fourdan <fourdan@xfce.org>
      Fixes: 2fa246ca - Add define for compositor_timeout_cb interval
      Closes: #503
      88c735c9
  12. 20 Jan, 2021 2 commits
  13. 19 Jan, 2021 18 commits