From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Florian Rommel Newsgroups: gmane.emacs.bugs Subject: bug#57224: 29.0.50; PGTK: scroll-bar obscures child-frame Date: Mon, 15 Aug 2022 17:15:00 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-pL3m41YFE02p9iT3fgg8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9165"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.44.4 To: 57224@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Aug 15 17:16:14 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1oNbp6-0002Ah-Uk for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 15 Aug 2022 17:16:13 +0200 Original-Received: from localhost ([::1]:36370 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oNbp5-0002Rz-UM for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 15 Aug 2022 11:16:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48158) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNbox-0002R8-CN for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2022 11:16:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54081) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oNbox-00046Q-06 for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2022 11:16:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oNbow-0006gb-OC for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2022 11:16:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Florian Rommel Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 15 Aug 2022 15:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 57224 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.166057653925651 (code B ref -1); Mon, 15 Aug 2022 15:16:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 15 Aug 2022 15:15:39 +0000 Original-Received: from localhost ([127.0.0.1]:43829 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNboZ-0006ff-Dc for submit@debbugs.gnu.org; Mon, 15 Aug 2022 11:15:39 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:44660) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNboV-0006fV-Iq for submit@debbugs.gnu.org; Mon, 15 Aug 2022 11:15:38 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48068) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNboR-0002Js-TI for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2022 11:15:34 -0400 Original-Received: from read.uberspace.de ([185.26.156.133]:51466) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNboP-00043o-Du for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2022 11:15:31 -0400 Original-Received: (qmail 16317 invoked by uid 990); 15 Aug 2022 15:15:19 -0000 Authentication-Results: read.uberspace.de; auth=pass (plain) X-Rspamd-Bar: - X-Rspamd-Report: BAYES_HAM(-2.966451) MIME_GOOD(-0.1) MIME_BASE64_TEXT_BOGUS(1) MIME_BASE64_TEXT(0.1) X-Rspamd-Score: -1.966451 Original-Received: from unknown (HELO unkown) (::1) by read.uberspace.de (Haraka/2.8.28) with ESMTPSA; Mon, 15 Aug 2022 17:15:18 +0200 Received-SPF: pass client-ip=185.26.156.133; envelope-from=mail@florommel.de; helo=read.uberspace.de X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:239808 Archived-At: --=-pL3m41YFE02p9iT3fgg8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable In PGTK, child frames may be obscured by scroll-bars. This happens when the scrollbar is added after the child frame is created (e.g. by creating new windows, etc.). The bug may in particular affect people using child-frame-based completion packages, such as corfu, company- box, or company-posframe. >From what I could see in the code, in contrast to X, PGTK adds child frames to the parent frame's edit_widget which is a GtkFixed (see "x- create-frame"). A GtkFixed doesn't have any defined z-order behavior. However, widgets seem to get drawn in the order of the internal child list. Unfortunately, there is no direct way to insert widgets at the front of this list or otherwise manipulate the list apart from pushing children to the end or removing them. So a (dirty) workaround would be to remove all children, add the scrollbar and then add all the removed widgets again, see the patch. A better solution may involve something like a GtKOverlay but I don't know if that's practical in the current implementation. To replicate the bug in 'emacs -Q': (progn (make-frame `((title . "childframe") (parent-frame . ,(selected-frame)) (border-width . 3) (internal-border-width . 3) (child-frame-border-width . 3) (vertical-scroll-bars . nil) (horizontal-scroll-bars . nil) (menu-bar-lines . 0) (tool-bar-lines . 0) (tab-bar-lines . 0) (minibuffer . nil) (undecorated . t) (left . 0.5) (top . 0.5) (width . 20) (height . 20) (left-fringe . 0) (right-fringe . 0) (background-color . "blue"))) (split-window-right) (split-window-right)) --=-pL3m41YFE02p9iT3fgg8 Content-Disposition: attachment; filename="0001-Fix-scroll-bars-obscuring-child-frames-in-PGTK.patch" Content-Type: text/x-patch; name="0001-Fix-scroll-bars-obscuring-child-frames-in-PGTK.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjYjgyMGFkMWYwYmQ4ZDY4MjdkMDVlYzA0YjdiMjI2ZmZmZGFiN2Q4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIFJvbW1lbCA8bWFpbEBmbG9yb21tZWwuZGU+CkRh dGU6IE1vbiwgMTUgQXVnIDIwMjIgMTY6NTM6MzUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBGaXgg c2Nyb2xsLWJhcnMgb2JzY3VyaW5nIGNoaWxkLWZyYW1lcyBpbiBQR1RLCgoqIHNyYy9ndGt1dGls LmMgKHhnX2ZpbmlzaF9zY3JvbGxfYmFyX2NyZWF0aW9uLCB4Z194cF9pbnNlcnRfd2lkZ2V0KToK SW5zZXJ0IHNjcm9sbC1iYXIgd2lkZ2V0IGFzIHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUgY29udGFp bmVyLgotLS0KIHNyYy9ndGt1dGlsLmMgfCA0OCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvc3JjL2d0a3V0aWwuYyBiL3NyYy9ndGt1dGlsLmMKaW5kZXggYTZiYmEwOTZh NC4uYWMyMzJmY2NkNCAxMDA2NDQKLS0tIGEvc3JjL2d0a3V0aWwuYworKysgYi9zcmMvZ3RrdXRp bC5jCkBAIC00NDk1LDYgKzQ0OTUsNTAgQEAgeGdfZ3RrX3Njcm9sbF9kZXN0cm95IChHdGtXaWRn ZXQgKndpZGdldCwgZ3BvaW50ZXIgZGF0YSkKIH0KICNlbmRpZgogCisvKiBXb3JrYXJvdW5kOiBJ bnNlcnQgYSB3aWRnZXQgYXQgdGhlIGZyb250IG9mIHRoZSBlZGl0X3dpZGdldCAoR3RrRml4ZWQp LgorICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIHNjcm9sbGJhcnMgdG8gbm90IG9ic2N1cmUgYW55 IGNoaWxkIGZyYW1lcy4gKi8KKworI2lmZGVmIEhBVkVfUEdUSworc3RhdGljIHZvaWQKK3hnX3hw X2luc2VydF93aWRnZXQgKHhwX291dHB1dCAqb3V0cHV0LCBHdGtXaWRnZXQgKndpZGdldCkKK3sK KyAgc3RydWN0IHdpZGdldF9wb3MgeworICAgIGdpbnQgeDsKKyAgICBnaW50IHk7CisgIH07CisK KyAgc3RydWN0IHdpZGdldF9wb3MgKnBvczsKKyAgR0xpc3QgKmxpc3QsICplbGVtOworICB1bnNp Z25lZCBpbnQgaWR4OworCisgIGxpc3QgPSBndGtfY29udGFpbmVyX2dldF9jaGlsZHJlbiAoR1RL X0NPTlRBSU5FUiAob3V0cHV0LT5lZGl0X3dpZGdldCkpOworICBwb3MgPSB4bWFsbG9jIChzaXpl b2YgKHN0cnVjdCB3aWRnZXRfcG9zKSAqIGdfbGlzdF9sZW5ndGggKGxpc3QpKTsKKworICBmb3Ig KGVsZW0gPSBsaXN0LCBpZHggPSAwOyBlbGVtOyBlbGVtID0gZWxlbS0+bmV4dCwgaWR4KyspCisg ICAgeworICAgICAgR3RrV2lkZ2V0ICp3ID0gZWxlbS0+ZGF0YTsKKyAgICAgIHN0cnVjdCB3aWRn ZXRfcG9zICpwID0gJnBvc1tpZHhdOworICAgICAgZ3RrX2NvbnRhaW5lcl9jaGlsZF9nZXQgKEdU S19DT05UQUlORVIgKG91dHB1dC0+ZWRpdF93aWRnZXQpLCB3LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJ4IiwgJnAtPngsICJ5IiwgJnAtPnksIE5VTEwpOworICAgICAgZ19vYmpl Y3RfcmVmICh3KTsKKyAgICAgIGd0a19jb250YWluZXJfcmVtb3ZlIChHVEtfQ09OVEFJTkVSIChv dXRwdXQtPmVkaXRfd2lkZ2V0KSwgdyk7CisgICAgfQorCisgIGd0a19maXhlZF9wdXQgKEdUS19G SVhFRCAob3V0cHV0LT5lZGl0X3dpZGdldCksIHdpZGdldCwgLTEsIC0xKTsKKworICBmb3IgKGVs ZW0gPSBsaXN0LCBpZHggPSAwOyBlbGVtOyBlbGVtID0gZWxlbS0+bmV4dCwgaWR4KyspCisgICAg eworICAgICAgR3RrV2lkZ2V0ICp3ID0gZWxlbS0+ZGF0YTsKKyAgICAgIHN0cnVjdCB3aWRnZXRf cG9zICpwID0gJnBvc1tpZHhdOworICAgICAgZ3RrX2ZpeGVkX3B1dCAoR1RLX0ZJWEVEIChvdXRw dXQtPmVkaXRfd2lkZ2V0KSwgdywgcC0+eCwgcC0+eSk7CisgICAgICBnX29iamVjdF91bnJlZiAo dyk7CisgICAgfQorCisgIHhmcmVlIChwb3MpOworICBnX2xpc3RfZnJlZSAobGlzdCk7Cit9Cisj ZW5kaWYKKwogI2lmIGRlZmluZWQgSEFWRV9HVEszICYmICFkZWZpbmVkIEhBVkVfUEdUSwogc3Rh dGljIHZvaWQKIHhnX3Njcm9sbF9iYXJfc2l6ZV9hbGxvY2F0ZV9jYiAoR3RrV2lkZ2V0ICp3aWRn ZXQsCkBAIC00NTcxLDcgKzQ2MTUsMTEgQEAgeGdfZmluaXNoX3Njcm9sbF9iYXJfY3JlYXRpb24g KHN0cnVjdCBmcmFtZSAqZiwKICAgICAgYWxzbywgd2hpY2ggY2F1c2VzIGZsaWNrZXIuICBQdXQg YW4gZXZlbnQgYm94IGJldHdlZW4gdGhlIGVkaXQgd2lkZ2V0CiAgICAgIGFuZCB0aGUgc2Nyb2xs IGJhciwgc28gdGhlIHNjcm9sbCBiYXIgaW5zdGVhZCBkcmF3cyBpdHNlbGYgb24gdGhlCiAgICAg IGV2ZW50IGJveCB3aW5kb3cuICAqLworI2lmZGVmIEhBVkVfUEdUSworICB4Z194cF9pbnNlcnRf d2lkZ2V0IChmLT5vdXRwdXRfZGF0YS54cCwgd2Vib3gpOworI2Vsc2UKICAgZ3RrX2ZpeGVkX3B1 dCAoR1RLX0ZJWEVEIChmLT5vdXRwdXRfZGF0YS54cC0+ZWRpdF93aWRnZXQpLCB3ZWJveCwgLTEs IC0xKTsKKyNlbmRpZgogICBndGtfY29udGFpbmVyX2FkZCAoR1RLX0NPTlRBSU5FUiAod2Vib3gp LCB3c2Nyb2xsKTsKIAogICB4Z19zZXRfd2lkZ2V0X2JnIChmLCB3ZWJveCwgRlJBTUVfQkFDS0dS T1VORF9QSVhFTCAoZikpOwotLSAKMi4zNy4xCgo= --=-pL3m41YFE02p9iT3fgg8--