From unknown Fri Jun 20 20:02:21 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#57224 <57224@debbugs.gnu.org> To: bug#57224 <57224@debbugs.gnu.org> Subject: Status: 29.0.50; PGTK: scroll-bar obscures child-frame Reply-To: bug#57224 <57224@debbugs.gnu.org> Date: Sat, 21 Jun 2025 03:02:21 +0000 retitle 57224 29.0.50; PGTK: scroll-bar obscures child-frame reassign 57224 emacs submitter 57224 Florian Rommel severity 57224 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 11:15:39 2022 Received: (at submit) by debbugs.gnu.org; 15 Aug 2022 15:15:39 +0000 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 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 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 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 Received: (qmail 16317 invoked by uid 990); 15 Aug 2022 15:15:19 -0000 Authentication-Results: read.uberspace.de; auth=pass (plain) Message-ID: Subject: 29.0.50; PGTK: scroll-bar obscures child-frame From: Florian Rommel To: bug-gnu-emacs@gnu.org Date: Mon, 15 Aug 2022 17:15:00 +0200 Content-Type: multipart/mixed; boundary="=-pL3m41YFE02p9iT3fgg8" User-Agent: Evolution 3.44.4 MIME-Version: 1.0 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 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-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) --=-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-- From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 21:00:54 2022 Received: (at 57224) by debbugs.gnu.org; 16 Aug 2022 01:00:54 +0000 Received: from localhost ([127.0.0.1]:44386 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNkwv-0004Yt-PX for submit@debbugs.gnu.org; Mon, 15 Aug 2022 21:00:54 -0400 Received: from sonic303-22.consmr.mail.ne1.yahoo.com ([66.163.188.148]:41288) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNkws-0004Ye-N6 for 57224@debbugs.gnu.org; Mon, 15 Aug 2022 21:00:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1660611644; bh=MvQGpmjtBcovWJ0RZE5Ho1UG6/ZJgi8VyOIvuDf7PBk=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From:Subject:Reply-To; b=kXdeaOt6mEPQfqgNTG4wQ3f2H7Mh4SDZHCwsJaA/dbmObq3AlPByqqXg+LnIsgwqonz1vq5xELAmVIFJDw5VZa4ImxrKOTqRb3GS5O2mSKSqR/tzlwHUsnDT8w/gbtMQAwoPByA/fD4D6O+E5VZhJlbb9nN7Hk7O5B3gSVwEgb1xp77q6HpNy6eqkXGqOU0IDmoVwJJ+guyDSAD5sPgMY1bJ+71cdc4WV2m2+rqvRmB2+rThz99kg12kGOz6QVWP/sULnMiMNPDKNYOaWAMB5YEVrsIrRdQsanANlYO2NAhjLc3uuHr55Q3KtVg1o3wvf0KnNJN0CiRb78GR31cHkg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1660611644; bh=LZU8nqoRkc5SPdIWObnFUEiJ3UtgwI9oAZfYgC8Go1/=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=BnCJoIZ2jRD5p+MDP7MfUKjEJc5ys7hR7BttSEXV/5TC8aJ+2tCKrGT4jU9NL4y2atnDrsbweAKWONFuq/im5bj0H24yJNCvNC2QXPrjlJicIOhd6fT11mwhhKNimHNeL0wwLBnNeeoDb64laMBzVY0pgnoya5W7XaelF6eHtaGAj2rJzUdFKGU+fygohGVXJ1Aufw5dlP7ztHSfxUWdOOBou6FDTpcHHtsBjTNcm6vvXxHdgWMZ0F+2jWM2y24yzs0fVFxNaX9RYVr39OeyO1rZDCKH5qh6EcjRUM0q+DSEtBjkIsQoG2hJdwVmGV6ASp6WFkUceN6HU3O3CBndTA== X-YMail-OSG: Vu8IIGQVM1nZ07xW0DaCjZwC8ci4BQCIV22Ti0qQSL4qHwsWvXtQheqVuhiJxK0 LlGMlKQ8kRqRTsttyQdYqCUkXi9uEOaub8vQMPJrfUIWMUH07iPRIswPIzkoKKkWA63aWm6wYGX. pFZAthEDNkIXQtvwVuxWak9Phw7l98cQ_qVsaT4Aa4Izrn.JbQN_rK5IKhqIg3t1AJ7ZTvzRWcBg qayqf2.W9WKEzrl.nbUqU5ay9WwOMU6cTM2pAPOmzhUXABQikgI7UDQoWpq07h0et5hp4WFsiOYi SlsiSsVkfY6ib3xrcPuiffbjLpfyli6bLoGG.X0.GrREWCNW8n4DlZvPyqlYU925NDqse3cNHA6o 5f0xCmY.CGp25CzACVIhyCjw98irMmq0GYxbgTHW2ZkqW_37wsbVGDySuS0uMIFecJl9CfbT7UcA 78rfAAJQaOPkGpGasvAPMNQhbEjcBM78jmD64gYManwjKwqvdUWaE_e8KXqXTJFCEWaQodTpmRga h6FB8ImRohFcXQ3XEcwJgbKTbtutBtzbRDC9AjHTrQ7TrlDtbnwostK7MdbNcfPpzBKCQqvSNFq2 8t6KBD5c6YmwbBPPpFzgaS3FXyFnf_m_jOJWJkiNwsZbGKNiBdoswbpJpeB0E566zeXA7.7Lulsl oD_1xB3UBk1uuMOGYAiDTgvKUVgVud.KADexCHtdMFpRw3Hp7PhvxF71v5sfAOFp6lGwRUWqkKOn EKrCGUB2JoOUSxBoJP3cW2QkUiWVxY9ay.Co0IE.nJmObfGV2Hjn0I4VXuEDb07h8I_LMlHjtec_ SPkOOVyAdrjXvzbr_oJ6g2jxib5CdQW5QVxCBesOr8QVdRWYpbfsERYHLgbDQ1setGvbLTBeGQab vYwYIc84IyxjGodyMhkfUOTFuo4LJuUp.YMPqEmuamenoiFGEYlFAz8G54BvhXL6h9hVJORIIeMC wFrJUpIiai5pidW68ERE94aTyE_sGkhJmiNaKS9LWv0U48AsqO2u6QhredA1q_4bpNSrxHYW.pPD rYWsFKCutNTq5gOjaHh9NUKt920P6zYsNz4IqmfYIQNpuMqvFNR6lomTV4Dm.Xfj_YNH.K.18o0N KH7WTgygLnnU9Jo5gUFcr_mlSTFTLbd7OkRkXVZaQn6GDJB7d0fC11CpvNnxyCEL3rcGCzFgoqkr QKE6G_2TZz5nPbVaxO_9K7Hc4ZHB0Sent9xv4qFqlsppoiMQaNddha_qdacG2vUa03BOsknwRSyd PdaQWwDRRgaIiPyWadSIy4AhMyykWdbUlBgjAW1ZkE8vkO2al0p.rYC9oa3WlodcHYK7luItMT5x I5ynG78PcgrHo0XxXVEvfkPkVcLZZkOCJhCQjcOffT5ZYPggifGIlcqu5V_Ur8fXr0h9282NiDBa lWyK9EE8J6wlwtQH1y8p9Yj9ZpHu_lRAWXzROsAbaV7lTfSXUoY._.GPXISO4gBNxpY8gwnZg8NO ur9x33o_4lFM_ro2X8oSVBarDVJTVYomkJjaTEhIIOqvmJjD55btrl6q.jbWyWYy.K5fz3C._FL9 GD.6x1IUfTwVKpBA4ZuniaPIuUB4K.eWRyxAw6t.rrhJbcDZoHDHdf14dasV3W5xJw2NaA8YqRQR dCbv1.4crCFcXEAufkd.8fBpKk1GyaVh0BbMxXhczwr3HsPY9Gbz_bts7miwlmAPs.YTFiZf8IgE I_7XIpJEm6krx_VIo7j6OHJLEmy9fwlMdMsl3gHCgZK4ItHzuRCPFyPEQqeNSDx8To03OyC3guim yAxQKfeZ.nosbxhl303yBqZ7ynNX24PXrdMukYtyKRhiXDTFviqCzOkImQcY8oemFkVpPCH2aaj1 60a7cHLZHuQzOwsH8.D1WJmHYVh3z5TD6N5yUfDHNa2DJ1W1q0wke58_u.gDAVop73q1zr7oW8PZ kn7RYsjVrNUqHtx1MTb0UWACQXC_uwaKP09xu.PRR128sjaHwyKq0W2oxA65UAI3YAYdBh.tMd4F myl2ys51FqCKcERReNQfoEWAl_BJE4sxxVPLcjcRNor0k76Ps6vyy3k1C5ERF9kk.hCTj1tFVzH1 DQowRg5rEh1iZ9Gh9ZCV.3PRR90BfduGPcON6i8Y05Lohevo0emxy8W7mgZHjjKWO.75avGQ5LY4 vWLNDXEsrRb9Xp5djGU8I3Iiqh7fYI3x7MLYiZ0GJzsfSiJ8IDaKQJgY.Ej5ovSk7hJ.hqVGsBWI P5MCDqOcRDwIzRFeG_gXsm_FTrQRaoxGzStYfRBO05NSrcpQwhaH8WerxSw-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ne1.yahoo.com with HTTP; Tue, 16 Aug 2022 01:00:44 +0000 Received: by hermes--canary-production-sg3-6f58cd9b5-hxmk8 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 9fd3eafc4b5eed049948f43917833ea3; Tue, 16 Aug 2022 01:00:39 +0000 (UTC) From: Po Lu To: Florian Rommel Subject: Re: bug#57224: 29.0.50; PGTK: scroll-bar obscures child-frame References: Date: Tue, 16 Aug 2022 09:00:34 +0800 In-Reply-To: (Florian Rommel's message of "Mon, 15 Aug 2022 17:15:00 +0200") Message-ID: <87lerpq9xp.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.20531 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 2106 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57224 Cc: 57224@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Florian Rommel writes: > 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)) Thanks. I don't think working around the problem by removing GTK widgets is a particularly good idea, since we could always go down to the GDK level and use gdk_window_lower (all children of a GtkFixed are children of its GDK window, like most other GTK container widgets.) I will look into that, because I think the same problem also exists on X.