From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tom Gillespie Newsgroups: gmane.emacs.devel Subject: [PATCH] Fix rendering issues on window managers without _NET_WM_STATE Date: Fri, 14 May 2021 18:55:42 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000125b3905c254a97d" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33676"; mail-complaints-to="usenet@ciao.gmane.io" To: Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat May 15 03:57:02 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lhjY6-0008Xm-6W for ged-emacs-devel@m.gmane-mx.org; Sat, 15 May 2021 03:57:02 +0200 Original-Received: from localhost ([::1]:48670 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lhjY4-0007uE-V2 for ged-emacs-devel@m.gmane-mx.org; Fri, 14 May 2021 21:57:00 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:33232) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lhjX4-00073i-H8 for emacs-devel@gnu.org; Fri, 14 May 2021 21:55:58 -0400 Original-Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:54212) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lhjX2-0007eC-2x for emacs-devel@gnu.org; Fri, 14 May 2021 21:55:58 -0400 Original-Received: by mail-wm1-x330.google.com with SMTP id s82so585366wmf.3 for ; Fri, 14 May 2021 18:55:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=4IIX2/VVd4iorQnjjxWcyeoL4NUWkH6GFPdb65lDKM0=; b=Li95I2lP3ouIZuAe9lHPz31+htQmKm9szZvLEQxzeQVt3nJrbcg8iub85YXY3a3ykH 0zUcgCwlrhIyIRJduggXjQSmvgM9NjTZRtZWf8EFiRPJBlH7ZA8ozMUleLhX52Vn6oRy aM1Tu4rHY0hFTl9r+wvWPMscjwFf6DRnBFNObR52sFNtUMSXNay/d5In6X1t7iz4MW+U kbCe6W6zmAFSSPYs9BGYIBBusHq5uCR451u6GxYcSuqs1W2iJFZ5E8XFHuQPXkaydE4B c2ZvHNmkeqAx6yii8oLTnOQcr7O7THvwXMl+9BrFd6j+tYVOILoWCfZH+bzGtEnP8m+6 UhAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=4IIX2/VVd4iorQnjjxWcyeoL4NUWkH6GFPdb65lDKM0=; b=Jwmlr2xu2mPKsxJguo6rDzGCybLgrN3CvzmqPTw0uEJov0sKU+SH4fee0PZJlHMlPA G00rHQRS/4pDvpzvAhqsdP/lt+QBPftLP7ADwjO1qyh/TorFk9axm3iIsYa/wnbs6Urs 4/pwVoRTqvUFusUw7gcs8SJmtJqyA6yqnqEAUegTBOLA3lf6roM4JEy35Y6Abi2TdyeM jrC1lWBG+9LkTsa2m0dOzuD/VUgsUVMRxQU6iEEZ6c0h/Z1CuEKrcY+OZ7jDwylJylCs sbCH+xyHgn+9inDssD4G0AKoWqaH1MtfYPNbWR5xsLAxWoi8bren4eRl9uXI1Z0LIOUh jFyg== X-Gm-Message-State: AOAM532b6wYu6ZW4KFlKgfLcN/0wMscIMZqbZKJR8ivxF58y0n5wvmPc U0SdiF28QIR6ZuHvrdbyI3c1g9kr1AA+S+LoYrpipfLiBBKCGA== X-Google-Smtp-Source: ABdhPJw8HfWLWPGTEqOaRF057+6MsxYKuqjfe8r20rg2lxE2BiA34dWhoatq0zCPNgxxAl+XZ/6IR/SO8PhVO/Buhpk= X-Received: by 2002:a7b:c4c9:: with SMTP id g9mr11809098wmk.90.1621043753140; Fri, 14 May 2021 18:55:53 -0700 (PDT) Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=tgbugs@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:269297 Archived-At: --000000000000125b3905c254a97d Content-Type: text/plain; charset="UTF-8" Hi, This patch fixes a bug that occurs when running Emacs in a window manager that does not set _NET_WM_STATE. The patch is simplest fix that restores expected behavior for window managers that do not set _NET_WM_STATE, but I have no idea whether there are other issues that may be occurring. I'm guessing that there are also likely issues with other logic in the MapNotify case that uses not_hidden for window managers that does not set _NET_WM_STATE. Thus, the more complex solution, which I am not knowledgeable enough to implement correctly, is to fix x_get_current_wm_state so that it works on window managers that do not set _NET_WM_STATE. I am unfamiliar with this section of the code, so my explanation may be off and a sanity check would be appreciated. Best, Tom A description of the bug for the record. The bug manifests as frames rendering as solid background after changing desktops on window managers that do not set _NET_WM_STATE. When changing desktops and returning to a desktop with Emacs frames, any frame that is not focused will render the whole frame as only the background color for the current theme. I have run a git bisect and found that the first bad commit is 483c5e953c12a95382bef4a3b6769a680c32fe86 Fix two GTK3 event handling issues. I think that the bug is occurring because 483c5e953c1 changed calls to SET_FRAME_VISIBLE and friends from being unconditional to being conditional on not_hidden, which returns incorrect information when _NET_WM_STATE is not set (I think). I encountered the bug on fluxbox but the behavior should happen for any window manager that does not set _NET_WM_STATE. It should be possible to reproduce the bug using the following steps. Run a window manager that does not set _NET_WM_STATE, e.g. fluxbox. In a terminal run the following and when the newly built Emacs launches alt-tab to the terminal window, and then leave and return to the desktop with the Emacs frame. #+begin_src bash pushd ~/git/emacs git checkout 483c5e953c12a95382bef4a3b6769a680c32fe86 git clean -dfx && ./autogen.sh && ./configure && make && \ src/emacs -q #+end_src --000000000000125b3905c254a97d Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fix-rendering-issues-on-window-managers-without-_NET.patch" Content-Disposition: attachment; filename="0001-Fix-rendering-issues-on-window-managers-without-_NET.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kop3kbns0 RnJvbSBhMTJmNGExMzNhYTQ2OTc0OTRjZGIwNGZiYWFlZjI0NzFmZTcyMjY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gR2lsbGVzcGllIDx0Z2J1Z3NAZ21haWwuY29tPgpEYXRl OiBGcmksIDE0IE1heSAyMDIxIDE4OjQ3OjQ4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gRml4IHJl bmRlcmluZyBpc3N1ZXMgb24gd2luZG93IG1hbmFnZXJzIHdpdGhvdXQgX05FVF9XTV9TVEFURQoK KiBzcmMveHRlcm0uYyAoaGFuZGxlX29uZV94ZXZlbnQpOiBNYXBOb3RpZnkgaGFuZGxlIGNhc2Vz IHdoZXJlIHdpbmRvdwptYW5hZ2VyIGlzIG1pc3NpbmcgX05FVF9XTV9TVEFURS4gUGFydGlhbGx5 IHJldmVydHMgYSBjaGFuZ2UKaW50cm9kdWNlZCBpbiA0ODNjNWU5NTNjMTJhOTUzODJiZWY0YTNi Njc2OWE2ODBjMzJmZTg2IHdoaWNoIG1hZGUKcHJldmlvdXNseSB1bmNvbmRpdGlvbmFsIGNhbGxz IHRvIFNFVF9GUkFNRV9WSVNJQkxFLCBhbmQKU0VUX0ZSQU1FX0lDT05JRklFRCBjb25kaXRpb25h bCBvbiB0aGUgbm90X2hpZGRlbiB2YXJpYWJsZS4gT24gd2luZG93Cm1hbmFnZXJzIG1pc3Npbmcg X05FVF9XTV9TVEFURSBpdCBzZWVtcyB0aGF0IG5vdF9oaWRkZW4gPSBmYWxzZSBkb2VzCm5vdCBp bXBseSB2aXNpYmxlID0gZmFsc2UgYmVjYXVzZSB4X2dldF9jdXJyZW50X3dtX3N0YXRlIHdpbGwg cmV0dXJuCmZhbHNlIHdoZW4gX05FVF9XTV9TVEFURSBhbmQgYSBmcmFtZSBpcyB2aXNpYmxlLgot LS0KIHNyYy94dGVybS5jIHwgMjUgKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDExIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy94dGVybS5jIGIvc3JjL3h0ZXJtLmMKaW5kZXggYmRmMDgwNGY4OS4uNjdjNmVhYTcxOSAxMDA2 NDQKLS0tIGEvc3JjL3h0ZXJtLmMKKysrIGIvc3JjL3h0ZXJtLmMKQEAgLTg0NDAsMjIgKzg0NDAs MTkgQEAgaGFuZGxlX29uZV94ZXZlbnQgKHN0cnVjdCB4X2Rpc3BsYXlfaW5mbyAqZHB5aW5mbywK IAkJeF9zZXRfel9ncm91cCAoZiwgUWJlbG93LCBRbmlsKTsKIAkgICAgfQogCi0JICBpZiAobm90 X2hpZGRlbikKLQkgICAgewotCSAgICAgIFNFVF9GUkFNRV9WSVNJQkxFIChmLCAxKTsKLQkgICAg ICBTRVRfRlJBTUVfSUNPTklGSUVEIChmLCBmYWxzZSk7CisJICAgIFNFVF9GUkFNRV9WSVNJQkxF IChmLCAxKTsKKwkgICAgU0VUX0ZSQU1FX0lDT05JRklFRCAoZiwgZmFsc2UpOwogI2lmIGRlZmlu ZWQgVVNFX0dUSyAmJiBkZWZpbmVkIEhBVkVfR1RLMwotCSAgICAgIC8qIElmIEdUSzMgd2FudHMg dG8gaW1wb3NlIHNvbWUgb2xkIHNpemUgaGVyZSAoQnVnIzI0NTI2KSwKLQkJIHRlbGwgaXQgdGhh dCB0aGUgY3VycmVudCBzaXplIGlzIHdoYXQgd2Ugd2FudC4gICovCi0JICAgICAgaWYgKGYtPndh c19pbnZpc2libGUpCi0JCXsKLQkJICB4Z19mcmFtZV9zZXRfY2hhcl9zaXplCi0JCSAgICAoZiwg RlJBTUVfUElYRUxfV0lEVEggKGYpLCBGUkFNRV9QSVhFTF9IRUlHSFQgKGYpKTsKLQkJICBmLT53 YXNfaW52aXNpYmxlID0gZmFsc2U7Ci0JCX0KLSNlbmRpZgotCSAgICAgIGYtPm91dHB1dF9kYXRh LngtPmhhc19iZWVuX3Zpc2libGUgPSB0cnVlOworCSAgICAvKiBJZiBHVEszIHdhbnRzIHRvIGlt cG9zZSBzb21lIG9sZCBzaXplIGhlcmUgKEJ1ZyMyNDUyNiksCisJCXRlbGwgaXQgdGhhdCB0aGUg Y3VycmVudCBzaXplIGlzIHdoYXQgd2Ugd2FudC4gICovCisJICAgIGlmIChmLT53YXNfaW52aXNp YmxlKQorCSAgICB7CisJCXhnX2ZyYW1lX3NldF9jaGFyX3NpemUKKwkJKGYsIEZSQU1FX1BJWEVM X1dJRFRIIChmKSwgRlJBTUVfUElYRUxfSEVJR0hUIChmKSk7CisJCWYtPndhc19pbnZpc2libGUg PSBmYWxzZTsKIAkgICAgfQorI2VuZGlmCisJICAgIGYtPm91dHB1dF9kYXRhLngtPmhhc19iZWVu X3Zpc2libGUgPSB0cnVlOwogCiAgICAgICAgICAgaWYgKG5vdF9oaWRkZW4gJiYgaWNvbmlmaWVk KQogICAgICAgICAgICAgewotLSAKMi4yNi4zCgo= --000000000000125b3905c254a97d--