Compute maximized geometry after applying titlebar (fixes #3778)
The issue in #3778 is essentially just that EWMH client hints are processed before the rule engine runs, which means the maximized client geometry is computed without accounting for titlebars (or borders). This can be partially solved by writing a rule that applies a maximizing geometry after the fact, like so:
{
rule = { maximized = true },
properties = { placement = awful.placement.maximize }
}
However, I have found that there are situations where this is insufficient, particularly when clients have the maximized property set by another rule.
This PR fixes this by deferring the request::geometry signal normally sent by client_set_maximized_common until after titlebars and borders are applied. This is done by emitting the signal during the first run of rule processing in ruled.client and disabling the geometry signal handler in awful.permissions until that happens.
I note that it's not possible to defer the entire EWMH hint check, since we want the maximized flag to be set before the rule engine runs. Otherwise, rules matching on maximized won't be processed correctly for new clients.
@mergifyio rebase
rebase
❌ Unable to rebase: Mergify can't impersonate actionless
User actionless used as bot_account is unknown. Please make sure {login} exists and has logged into the Mergify dashboard.