Skip to content
Snippets Groups Projects

Improve (especially remote) window dragging and resizing performance

Merged Ian Henderson requested to merge ianh/quartz-wm:master into master

Before this change, every window operation with the potential to affect the _NET_WM_STATE property would end up calling XChangeProperty(), even if the property didn't actually change. This would cause an avalanche of PropertyNotify events, to which GTK-based apps, at least, dutifully respond with a GetProperty request. The connection is then overwhelmed with these requests.

The fix made here is to remember the last value of _NET_WM_STATE that was set, returning early if the new value is equal to the last value.

Edited by Ian Henderson

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Author Contributor

    If you want to see the impact of this change for yourself, try ssh -Y-ing into a remote host, running the gtk3-demo app (available in the gtk-3-examples apt package), and dragging the window around for a bit. Without the change, the window will hang for seconds at a time and lag behind the cursor significantly. With the change, at least for me over wi-fi, the window keeps up with the cursor acceptably, without significant lag or hanging.

  • Ian Henderson changed title from Improve remote window dragging and resizing performance to Improve (especially remote) window dragging and resizing performance

    changed title from Improve remote window dragging and resizing performance to Improve (especially remote) window dragging and resizing performance

  • Alan Coopersmith requested review from @jeremyhu

    requested review from @jeremyhu

  • Jeremy Huddleston Sequoia approved this merge request

    approved this merge request

  • mentioned in commit babff9d7

Please register or sign in to reply
Loading