Skip to content
Snippets Groups Projects
  1. Oct 04, 2024
  2. Apr 08, 2024
  3. Aug 01, 2023
  4. Nov 16, 2022
  5. Nov 14, 2022
    • Olivier Fourdan's avatar
      client: Fix · ca9c1aa8
      Olivier Fourdan authored
      
      clientScreenResize() ensures that tiled, fullscreen and maximized wintod
      remain correctly sized when the overall screen size is changed, but also
      tries to save and restore window positions in case of relayouts.
      
      Since commit 182bd22c „Update maximized on struts change“ however, we
      all clientScreenResize() from workspaceUpdateArea() unconditionally
      while workspaceUpdateArea() can be called every time a window is moved.
      
      That causes a regression when moving undecorated windows, typically
      those meant to remain fully visible on screen when screen size changes,
      and every other move would save and restore the previous position,
      causing spurious and unexpected window movements.
      
      To solve the problem, add a new parameter to clientScreenResize() to
      specify if the all is originating from a relayout.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      Fixes: 182bd22c - Update maximized on struts change
      Closes: #677
      ca9c1aa8
  6. Nov 07, 2022
  7. Oct 22, 2022
  8. Dec 09, 2021
  9. Feb 05, 2021
  10. Feb 02, 2021
  11. Jan 05, 2021
    • Olivier Fourdan's avatar
      events: Allow resizing regardless of modifiers · c49e58e6
      Olivier Fourdan authored
      
      xfwm4 expects no keyboard modifiers (other than the usual locks) in
      button events to allow interactive resizing.
      
      There is no reason to be so picky, especially considering there is no
      such check when moving windows.
      
      Relax the requirements for resizing and allow interactive resize with
      the mouse regardless of the modifiers being pressed.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      Closes: #487
      c49e58e6
  12. Dec 26, 2020
  13. Dec 16, 2020
  14. Dec 01, 2020
  15. Nov 29, 2020
  16. Nov 28, 2020
  17. Nov 21, 2020
    • Olivier Fourdan's avatar
      client: Make above/below consistent · 8d027c1d
      Olivier Fourdan authored
      
      The window menu entries would check for valid transients or modal dialog
      window to enable or disable the above/below entries.
      
      Yet the actual above/below function would simply check for any transient
      or modal dialog, hence denying the request for fake dialogs without an
      actual parent window.
      
      Fix the logic to remain consistent, and allows fake dialogs to be placed
      above or below other windows.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      Closes:#458
      8d027c1d
  18. Nov 14, 2020
  19. 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
  20. May 23, 2020
    • Olivier Fourdan's avatar
      client: Rely in XRes reported PID is available · 49c1a33a
      Olivier Fourdan authored
      
      When xfwm4 needs to kill an unresponsive client, it will use the its PID
      is known.
      
      However, the _NET_WM_PID as defined in the extended window manager hint
      mechanism is unreliable when the client runs within a sandbox, as it is
      the client itself who sets that property using its own view of the PID.
      
      The Xserver can provide a more accurate value of the client PID using
      the XRes X11 extension, so use that protocol if available.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      49c1a33a
  21. Apr 20, 2020
  22. Apr 05, 2020
  23. Sep 21, 2019
    • Olivier Fourdan's avatar
      stacking : Fix raise delay · daffbf9a
      Olivier Fourdan authored
      
      Bug: 15974
      
      Raise delay would be ignored, because on focus change, the newly
      focused window would be raised as soon as it receives focus.
      
      Use the raise delay timeout instead of raising the window immediately
      so that the raise delay remains functional.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      daffbf9a
  24. Jun 24, 2019
  25. May 11, 2019
    • Olivier Fourdan's avatar
      Protect against XErrors · 0bf68c53
      Olivier Fourdan authored
      
      Places where the window manager uses the client window are all possible
      sources of XError because the window may have vanished and the window
      manager won't know until it gets the destroy notification from the
      Xserver.
      
      As GDK error handler is smart and uses the serial of the requests to
      check for errors, if the XError is not trapped in time it will end up in
      GDK and cause an abort.
      
      Protect against such a possibility by making sure cases where the XID
      of the client or one of its dependent resources is used remains withing
      an error trap/push.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      0bf68c53
  26. May 08, 2019
  27. May 02, 2019
    • Olivier Fourdan's avatar
      events: Catch more XErrors · e8e920cb
      Olivier Fourdan authored
      
      Many operations such as XI2's grab/ungrab can cause an XError for
      various reasons, and X11 being asynchronous, those may end up being
      caught in gdk's own code, causing the termination of xfwm4.
      
      Catch XErrors in the relevant portions in xfwm4 code with error trap
      push/pop before gdk get them.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      e8e920cb
  28. Apr 21, 2019
  29. Jan 10, 2019
    • Olivier Fourdan's avatar
      events: ignore client configure requests when maxized · 3751c2c7
      Olivier Fourdan authored
      
      Bug: 13954
      
      Some clients tend to send us a configure request when transitioning to
      maximized, which introduces a race condition because the window manager
      will remove the maximized flag when the client resizes itself, now that
      we allow for that since commit aee8b25a.
      
      Ignore the configure request from the client when maximized or
      fullscreen to work around such behavior from the client.
      
      Signed-off-by: default avatarOlivier Fourdan <fourdan@xfce.org>
      3751c2c7
  30. Jul 24, 2018
  31. Mar 31, 2018
  32. Nov 27, 2017
  33. Jul 03, 2017
  34. Jul 02, 2017
Loading