This seems to have a lot of overlap with bug 4660, which is also about making it easier to switch between grabbed and not-grabbed.