Skip to content
Snippets Groups Projects
  1. Dec 01, 2020
  2. Nov 29, 2020
  3. Nov 28, 2020
  4. Nov 22, 2020
  5. Nov 21, 2020
  6. Nov 15, 2020
  7. Nov 14, 2020
  8. Nov 11, 2020
    • Olivier Fourdan's avatar
      client: Keep tiled size of windows · 93154517
      Olivier Fourdan authored
      
      Tiling works by moving and resizing windows to a specific location  on
      screen.
      
      GTK clients using client-side decorations (aka CSD) draw the drop shadow
      themselves and use the property _GTK_FRAME_EXTENTS to let the window
      manager or compositor know about the actual relative frame size and
      location.
      
      GTK automatically removes the drop shadow on some specific window
      states, such as fullscreen or maximized, and restores the drop shadow
      when the window returns to a normal state.
      
      If that update occurs after the tiled size was computed, the drop shadow
      is not accounted for and the window will appear smaller than the actual
      expected tiled size.
      
      To avoid that issue, the window manager should recompute the tiled size
      whenever the _GTK_FRAME_EXTENTS is updated.
      
      Store the tiled mode and recompute the tiled size/location of windows
      when the frame extents or the screen size change.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      Closes: #450
      93154517
    • Olivier Fourdan's avatar
      compositor: No need to update compositor window on configure · d1d15f82
      Olivier Fourdan authored
      
      Right now, resizing a window would immediately update the compositor
      representation of that window.
      
      The compositor, however, is able to catch the changes on configure
      notify, so there is no need to force that update early.
      
      Remove the resize of the compositor window on each configure requests.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      d1d15f82
    • Olivier Fourdan's avatar
      compositor: Limit opaque region clipping to window extents · d474e073
      Olivier Fourdan authored
      
      The opaque region is set and updated by the client, which may lag when
      the window is resized.
      
      That may leave unpainted areas when resizing a window as the opaque
      region set by the client could be actually larger than the window itself
      and hence prevent areas to be updated while they should, causing
      artifacts on screen.
      
      Make sure to limit the clipping of the opaque region by the window
      extents to avoid the issue.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      d474e073
    • Olivier Fourdan's avatar
      compositor: Damage on opaque region update only if visible · 59e94fb3
      Olivier Fourdan authored
      
      If a client updates the opaque region of its window, regions previously
      opaque may become transparent, meaning that they would need to be
      repainted to let other windows underneath see through.
      
      The compositor already computes that and adds damage for the relevant
      regions.
      
      Make sure to do that only for visible and redirected windows, other
      windows shouldn't trigger that though.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      59e94fb3
  9. Nov 04, 2020
    • Olivier Fourdan's avatar
      client: Send synthetic configure on force redraw · 67595558
      Olivier Fourdan authored
      
      xfwm4 sends a synthetic configure event when required as per the ICCCM
      specification, but a force redraw as when maximizing a window while
      moving generates a fake move, which defats the logic.
      
      Make sure to send a synthetic configure event on force redraw, that
      fixes an issue with VTE terminals (like xfce4-terminal) which do not
      resize correctly if maximized while pushing toward the top of the
      screen.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      67595558
  10. Nov 01, 2020
  11. Oct 31, 2020
    • Olivier Fourdan's avatar
      compositor: Add support for opaque regions · e2c690a9
      Olivier Fourdan authored
      
      Opaque region is a hint set by the clients via the _NET_WM_OPAQUE_REGION
      property to indicate the compositor which regions of an ARGB window are
      considered opaque and therefore can be culled out during repaint.
      
      While this is of little use with regular RGB windows, with the planned
      move to client-side decorations in xfce, we'll have more and more ARGB
      windows, making such an optimization a beneficial improvement.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      e2c690a9
    • Olivier Fourdan's avatar
      compositor: Make cursor zoom optional · 39eb0435
      Olivier Fourdan authored
      
      Xfwm4 4.14 made the cursor zoom along with the desktop. While this
      sounds like a sensible thing to do, it's not necessarily an improvement
      for accessibility, because an enlarged cursor also hides what's being
      zoomed underneath.
      
      Add a new option to control whether the pointer is zoomed along with the
      rest of the desktop.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      Closes: xfce/xfwm4#439
      39eb0435
  12. Oct 30, 2020
  13. Oct 27, 2020
Loading