From unknown Thu Jun 19 12:38:29 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#54623 <54623@debbugs.gnu.org> To: bug#54623 <54623@debbugs.gnu.org> Subject: Status: No scroll bars on macOS builds Reply-To: bug#54623 <54623@debbugs.gnu.org> Date: Thu, 19 Jun 2025 19:38:29 +0000 retitle 54623 No scroll bars on macOS builds reassign 54623 emacs submitter 54623 Angelo Graziosi severity 54623 normal tag 54623 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 29 07:50:11 2022 Received: (at submit) by debbugs.gnu.org; 29 Mar 2022 11:50:11 +0000 Received: from localhost ([127.0.0.1]:60053 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZAMU-00055y-Ud for submit@debbugs.gnu.org; Tue, 29 Mar 2022 07:50:11 -0400 Received: from lists.gnu.org ([209.51.188.17]:39812) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZAMT-00055l-3q for submit@debbugs.gnu.org; Tue, 29 Mar 2022 07:50:09 -0400 Received: from eggs.gnu.org ([209.51.188.92]:60846) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nZAMS-0006W9-Kg for bug-gnu-emacs@gnu.org; Tue, 29 Mar 2022 07:50:08 -0400 Received: from smtp-36-i2.italiaonline.it ([213.209.12.36]:43764 helo=libero.it) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nZAMQ-0004iZ-1B for bug-gnu-emacs@gnu.org; Tue, 29 Mar 2022 07:50:07 -0400 Received: from oxapps-34-153.iol.local ([10.101.8.199]) by smtp-36.iol.local with ESMTPA id ZAMNnNBOwc2f5ZAMNn4eDV; Tue, 29 Mar 2022 13:50:03 +0200 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1648554603; bh=bzqi0Yvk6aM6bywbl0OgyE/QJVu/sXymvI3NErEwK9M=; h=From; b=ghimfT1jhbk/YO97iSa1mQThHmN14k8F5zRJ5YOcBE1x/+/B/hw6S7TeX4hnDNIzA DJw7wkJK3AmZgM01kVQZhJ8vT4lZ0Wsl/kiNOcqO816gwaEuDIhUTiBxdR5aVdykwi 7qvn2DFZFxFFC33MSuFUcWkNs21ExmcWqSUQC5PkJdrEdk+8zDyo1uMMqo2USG6Bmw 5eLYtscZdc3G6iSHPwf+XXlcbqvCOa4/jFYoKSGwmqGpfP59EpHxOnoUiHlavdtrk0 1uXofEl89xJy3Cb+cldixMfhdAdTAE+Yhrq0YN96/AR9aEUrvpNoo8EesjIBZGAD6J sfScavj6OCOJA== X-CNFS-Analysis: v=2.4 cv=Z6kpoFdA c=1 sm=1 tr=0 ts=6242f26b cx=a_exe a=2vSVR/e88aLibrPudrQcAg==:117 a=zlL5DDtatYgA:10 a=1pep0PMDP0kA:10 a=mDV3o1hIAAAA:8 a=4U-YAvlj_Vw6r6e42HcA:9 a=QEXdDO2ut3YA:10 a=nMYYy8zOz6EA:10 a=iibE5yCnxQA2sphaj2AA:9 a=d_wKQJOdQF36vHI8:18 a=HXjIzolwW10A:10 a=_FVE-zBwftR9WsbkzFJk:22 Date: Tue, 29 Mar 2022 13:50:03 +0200 (CEST) From: Angelo Graziosi To: "bug-gnu-emacs@gnu.org" Message-ID: <542747779.525811.1648554603075@mail1.libero.it> Subject: No scroll bars on macOS builds MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_525810_2019794301.1648554603074" X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.5-Rev39 X-Originating-IP: 79.13.231.87 X-Originating-Client: open-xchange-appsuite x-libjamsun: EiQS+gS2ZUH7oxBm+NEKetvkViLfTs9r x-libjamv: vdDxO7UZJnU= X-CMAE-Envelope: MS4xfNXmHPrccTOW6I2oXFWVji4+KZ/wtMbS0IE0aiPukTQ7COMhQKcOMwbuUMYdlTl8xGIsPTWBdXOmf/xvGVmWKSMFm8UYtdvjKvKa3X3dxbaB3S9fSj+G Fh5Tzvh2OiV7aM+LJKyenn7APe9abcg2d4RbV6MJEbuGaHK//3UpYDTPo9T0/vte6mFgoJJ3qx6T/zsPjLSRUOVY9uVTfTZO5P4= Received-SPF: pass client-ip=213.209.12.36; envelope-from=angelo.g0@libero.it; helo=libero.it X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DC_PNG_UNO_LARGO=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-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: 0.4 (/) 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.1 (--) ------=_Part_525810_2019794301.1648554603074 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Emacs builds on macOS 10.13.6 do not show scroll bars even if both vertical and horizontal ones are enabled. The attached screenshot refers to 'Emacs -Q'. It seems that the "places" where scroll bars should appear are drawn but not the scroll bars. Clicking there looks as if the scroll bars are hidden. Rebuilding an old master, 1) commit: d2d3fc39295953b4db5bdd7a21d513a87d3d00f0 Alan Third 2021-07-26 23:12:31 +0100 Convert fringe bitmaps to vectors on NS port produce an Emacs which DOES HAVE scroll bars! The first build in which scroll bars are gone or hidden looks 2) commit: a4d2c88cdee90a3e4863a62c4ff69896d0c1a347 Alan Third 2021-07-31 11:13:05 +0100 Simplify macOS drawing code So, something changed between 2021-07-26 and 2021-07-31 seems to have broken this features. I already flagged this on emacs-devel (https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg03194.html) and re-flagged here to have memory of this issue. Ciao, Angelo. ------=_Part_525810_2019794301.1648554603074 Content-Type: image/png; name=no-scrollbars-macOS.png Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=no-scrollbars-macOS.png X-Part-Id: e6f38cd17db74eb188fbcefb26975885 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 +7R+xucz+dlmOT9yS/OtCxaLKks0S++X+1asniuo1quZrMtqMD6/2NR0MahZ5PJwq2fbxJWojo3O 09eFblzp3tnz6VbybaG+rn7vu+v3sx4sDXo/vPNI6XHZMPPT5GerL2Jefh0NfjX5xn/s/Tjp3fsJ 0oeUycqPfVOfPjHMKHy2/OL91X+W9M3tu84cx9zkj7r5wJ9MP68uuC58XNy7uLG0Z+nrcsDyoxWl layV+VWX1crVr2uaa0lrg+tc6y7raetd6/MbkhveG9kbd7f8zwGMAAVUgCcQFtKEIqEKaAiGYSU4 AC6EH6NoUcaoRNRVZM+ro/eiO9DrGCNMOmYEK4s9ih3FaeIKqdBU0VRT1AHUMzT7aPG0F+m88Sz4 e/THGCwZGRlHkNvFQRYnVhk2GrbP7E92dHNc5mzgquNu4GnlvcM3wv9VACXIISQrbCriLZogViTe J/FTSlKaJFMp+xHZywcUB5R5VfxUG9SWNWw0K7WBDlG3T1/BoNSIy/is6Q6zXAtuyxJrEZtGOw37 PofdjovOua46bh88sj3NvYB3J3G/nz4Z6z8YWBQcHmoczhexGvU6uje2eU/NvrKEggNnElMOxx71 +ssghXBsMbUtfe9J7dPojIEzhdlhZw3yOPPnCh8Wl5XuLueueHEur9q9lrvuTUNFY/AFxYurzXda 0tpM2tc6LnYSr9PfaOvefRPcKr9t2Dfef/SeyP2bA86Db4eCHn164j888szyefNLjpF9o8Ov5d6k jL0eV353/P2bD1yTWh+9pvZP53wqmSn/fOpL9FejWfrZrm9R35m/18zpzt3+Yfjjxrz2fOVP2p/R P18uqC2kL4wtqiymLo4uCSz5L9UvzS6rLMcvty/ProiveK+cXRlEsgm91ejV0tUHq0tromuOa4fW zq+9XMetKyF+j18vQjz/fgO3IbVhuxGFeL99Y3TT/9H+Sopb4QOiMwQA83pjY04UAFwmAGsZGxsr 5RsbaxVIsjEKQFfo9nefrVjDiMSX/k3UdyfiX99f/gfzTv/v65T+tgAAAZ1pVFh0WE1MOmNvbS5h ZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9 IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9y Zy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6 YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlm LzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjEyPC9leGlmOlBpeGVsWERp bWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjU3MjwvZXhpZjpQaXhlbFlE aW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBt ZXRhPgrUVKoVAABAAElEQVR4AeydCWAU5fn/v9lsDkJOSMINAkK4VMCjoqhohdYLD0TRVmurrbZ4 W7Vai4L+sNZ61KtasH/U1qoVrIr1rKJGUW4xAgHCTQgJkIOQc7P5P+/szmZ3MzM7e4Ug34HNzLzH 87zv533nnWfe9513Empqalplg//mfx58fGDNPPQbf6t/cIx/8BO8+TMnruh9F27e9ibGprVizQtX 4rr9v8Vn1x8NNK7GlX1m4KYtb+CY+q9w/fDz8LqSMOJkYM0XmP2/Lfjl0V2x5u3/w2m/eNwje8S1 eO/1+zA2txZv/99VuPovX3jcz7oXX/xtOoakeE75t/MR2LVrF7KzsztfwpgiSwJ1Je/jmQ/2IWff WmxtVEEH4NLbrsLILOC7d/6GV7/epcXPzARqcDJ+99sfwb35Mzz7/z6Sc8929Lm/xsUn9ELJm39B 0bCrcX5BunjU4f0//xENF96B8werc26HCoGqqipey4dKYfmlk9eyHwzvYUJCQnvHIBezMEbudt2U iuCwwed6mITq6mqfNRZsfKlz9XO73drP3z8oH1o4O24qTGtrMxoagNRUZ3AUwNWAWheQnpoaINMl ERrhRFejOO2l0OUgElAGWVaW3MW5HbIE3M3NQFISHH45cLvFDeLm76j5u9FcLxZcly7iy+37REDu D7yWD/ECPZyvZSPDx6g4zcIZuVu5KT+HNJDqp46Dw4Y8VwZZsKGlG2HN0ig3NTVpP3Xc0tKiGUn+ 4f2P9YzadbMKr/tZ7Y30WIWnX8cQKC8vR6bqRuFGAiRwSBOQERRey4d0CX6/Ex9s4NjNrVU8I79Q bspf/ZQhliQPssnJydpPHSu34C1Ynn6eIF3S7XrIVI+YMsRqa2uRkZGBjPQMJCYmBvRYBSvgOQmQ AAmQAAmQAAkcrgSUYeVyuVBVXYV9+/aha9euSElJsW2UaWOG/j1NyhhTvWH79+9HXm4enE6ndt7Y 0EiD7HCtZcw3CZAACZAACZCAJQGtlyzRgazMLKSmpGJn6U5fr1lwT5lud+m9Y+rcqTvqe2WQNTY2 at3UiY5ENDU2WSaAniRAAiRAAiRAAiRwuBNQdlSLq0X7JSclo3v37tpIoxph1A0vfa+z0m0vzZhT jrqD2usGWVqXNK1nTI/EPQmQAAmQAAmQAAmQQGgCaqRRTfdSHVzKrvK3s4xiK3+HfyB1rH5KkBwZ xaEbCZAACZAACZAACZBAKAKy0oaaU6YbZMH2VnB0Z0lJic9NRVLGWGVlJXrm9/RZdL4ARgfyRl3r V18gYfkKtJRs0EIkDh6C1mPHIuFEWWcsP98olqmbu243Wnd9itbyJXBXrdPCObKHISH/BCT0Og2O tB6mcY08dtbvxtt7PsMne5ZiVW2xFmR0egFOzz0e5+Weij5dwpNnpINuJEACJEACJEACJOBPwNXk QmlpKerr67W3L4Pnkamw/kOYaqU0w66wPRV7THz81K1dA/f8f6P7pg1wdE1TC4t5PGXNMPeBOuwd NASOKVOB4SP8IpkfuiuL4C7+J7KbVyKlaxeRl+yV14TGA/WoShoDR8FP4MgZZS7Ez2dpTRGe2Pwv vNtaBKSp9HlXk5UXFFBXh7MSRuHGgZfh+Ex78vxE85AESMCEQPWOdShP7IUhvTr3WnTr3n8abzed htvPM7/+D5W8mBQFnUmABA4mAbGwcvNybaeg/QIZelRDM033lL30jCljLK90OxyqF0xe74S8BKD9 5Fi5KT8VRoUNtameMWWM9Uj8Din53WSRSTHuEiR56ifHyk35qTAqbKhN9Yxpxliy9NopIMog09On jsXtXfFTYVRYbiRAAtERaKrehkWL12D9yrfx0qJv8O3iQuysVYvJdszWXF+K26ZOReHmfbYUuprq cKDJbRj2YOfFMFF0JAESOLQIhLKjgnJjsFR+UAiTUzVMqXrGPEOSolVT7NXeKmZhghzL4qAqzD41 pDn5QhNJHmc1TKl6xpAjxpjbK88rDqofT7llpiO7fCWqJSwGX2IpTw1Taj1jmWKMKTm6TBVLyXPI n8wMvFtRhJMl7HX9pCePGwmQQMQEmuqr8cKjs1CrSViCWUjHjCdHo096x6zfnyBvMqlN32snIf94 4sgkD2kT2p5PD3ZeQiabAUiABL53BEwNMn3ymWmOly/3DFMqa0cZPPIyQNumjsXgEaNMG8qUsK3n XdDmbXDkLv/aM0ypG076XoXVDShxU0OZKqxjkLUB9fGeJdJrJz1hKilKlv+DsJZU+aOMMuktU2Gv 7XuxQaroRAIkYJdAWv4w3HTFeDzw4udalEm/vAXD8tPkCx8HsPjNl/H4y+9r7gPGT8Vvr74QPcVQ c7vrsOzdV/HwvP9qfr2G/wi/veUn6J/TBTWly/G7Rz7DhKNd+PfCJfjNg89hgnwLc+WHr+PBOW9o 4bv0H4cZd/4KAzJrMfuKG7BVXB+79WrMHT4Vz86cKuv61JvKd7Qmo66iGK8+/nf8u1DFzMftf5yJ EwbnwiwvIdtFLVX8QwIkQALhE4jYIGst2Qj0kqFK3bhRunWjTFar1TxUT5nMK3NL2ATdzySNrVUy 4X6ADHuqTcnU5GpnbedKrMwra91dHPKFg29q1wPdczwCdFl6GlT6dDeZV/bN7vUh5XlTwh0JkIAJ gdqyb/HsJy6c2i8VK7qOw/73/h/WHDUTGRtfx2P/XIP7Hn0KvVMO4Lnpd+CB5B548rpTsfyVB/Gn Bdsx/Q8PYkT3BLz26H249ZcVmPPK7UhobkL51i/wQfeLcP/sh5DXMx1bvnoZs/+2EDfPfBjD8px4 78kZmPnHtzDn4Ytx1b2/wW33PY2pN/0epw05Aqrvy1J+cipKPvwnjv7lXXj6snwULngSf7rzUTz5 0n1Ir/rOMC9HSRq4kQAJkEA8CJgaZPFQRpkkQALfXwLpPUfjmUdGo2z1IoxKHIYJI3tqmV33zQHZ pyJRnoMyco/A7/79b22EUM35+teCtZj2u8ekF6yvFva6mX/G+I17ZD0e9czUIm6j8Mc7LkF373Bk txN/hlde/qkMSyZo39Y9/ZJL8Z+ZH6Cy6WL0HjIc/SVGn/4D0aNHlnzwPIT81v3IGP5zTJs0VvuI +jmXXo2XP/oLmqU33SwvWiL5hwRIgATiQCBig8wx+EhgX7lnMr/qCVNdTlrPmJ5KcVPO8salCqt3 SOm+wfuE7AIJu8k7mV98vSK1cOpY/dTW0AQtrOfM9O8x6UPxccMOz2R+XZZ/+nzyGqHCciMBEogN gZ5HT4DHFPPIO/LUSzB13RP4wy3TNQc1zPj7316NQdlyOYtLn7wMn2Jnej5Gj5aed9mq5ZeUcwQy /OZ2VW1fjftvvR/btBD6n/6aEdXaqgw4aYlaPHt1bCV/W1MLBh7fTzPGVNiElHQZtAzcgvMS6Msz EiABEogdAVODLORcibFj4X5zgcwRky58NYE/2ILSDJ4EbfmL1jPHhhwSTMg7AY275A1LtdyFmvOl 5nfpVpySpX7ippa/SOh1Qkh5p3c/Hh/vk2FLNY9MyVLC/OUpN+Usy1+osCHzK0G5kQAJhE8gMTUX U2+chYuvd6GmsgwL/zID9814A397/AztuqvYV4fWfpmaYHfTAezaXYNuvXpofk37ZJFqmWqgLt3W 1iZ8+NjDOHDyVZj760nITHaivOh9TJceMlnhWgtXL/tEh9MTx+tmJd8lb1nq176mxxtHdws/t4xB AiRAApERaHutKNz4PzgJewZJL1lNjcT0GjeaheN3LH5aGAkbcut5KiqTRos8eUdLN5ZU6tRPGU7K Tfy0MBI21HZu91Pw44SREmd/W3w1ZqJ+unzxU2FUWG4kQALxIfDl/7sZU6f+Edsr65Ga1hUZ3VPg zEhGcpfemHZ2H7zwwMNYVbIL+6vLsfCvv8XNtz4FZVi13xxIyU1B495KNMhCi+Wy3tlfZs71BXNI D9cwOfv4y1WoqmtCUpeeYcr3ieIBCZAACXQ4AdMeslApac3LQ8IFF6P8P68jd9NGw4VhlTGmwqiw obaELjJYcOTlKNv4MnLKVxkuDKuMsQQJo4UNIbB3aj5u6D8N2PYK3qv4znBhWGWMqTAqLDcSIIH4 EDj2oltxWtE9uO26X2gKknJGY9bs85GckIiTrpgla4E9iv/73Y1e5UNl8v/t6JaU6B2ybGuiEhKc mPCzW7Dopnsx/Zr/SPh0nHfeKVj/9lYtbmJiOib88lzMmvMEfjn/x3jh1Z9byufqg17k3JEACXQK AtJd5BvIC0hQWWlZwLnZSUJFBfD1l3CsWAm3GGZqc4gh5h47BpCeMTvGmL/s1nqZl1b2GVCxFK3V nk8dJWTJ/LK84wHpGbNjjPnLK22Qp+69n2PR3mX45oAMYcp2TNehmND9OK1njMaYPy0ek0D8CDSr j+xKl3dKSvt1yVrkk20ylx6JSUm+OV3mKVGfeGuxGdYjJTz55prpQwIkQALhEOjZu6ft4KYG2a7S XbaFMCAJkAAJkAAJkAAJkEAggV69ewU6WJy1jQcEBzKawhEchuckQAIkQAIkQAIkQAJRE1BT5rmR AAmQAAmQAAmQAAkcRAI0yA4ifKomARIgARIgARIgAUXAdMiS6/CwgpAACZAACZAACZBAxxBgD1nH cKYWEiABEiABEiABEjAlwB4yUzT0IAESIAESIAESIIGOIUCDrGM4UwsJkAAJkAAJkAAJmBIwNchM Y9AjgMCjjz2KRx9/NMAt0pNbb74Vt95ya6TRGY8EOgWBvv37BqRjx7YdAec8IQESIAESaE/A1CAL Z1J/vwH92ksO4bJ96/YQITq/97iTx+FHZ52Ir75+FaldUqNK8JLlRXhj/ge4+NKL8e9X/h2VLEYm gY4gYHbdv//++5g4caKspt+Me+65B8EGmp62WLUBZunQ9RjtY6XbSDbdSIAESCASAqYGmV1hqjH8 9ttvMXjwYHTp0sUyWlNTE7Zu3YoZM2ZAxTuUG8V+R/TDkiXvIqdbGg7UVVnm247nCceOQo/8bvjf /76Ckr19y6FhsEZyMzTjcSjXBz1Pduq1nTC6vM66V3k4cKD91yB//vPrMGnSJLzwwgvYv3+/fCYp BZdcciFuumk6Ro8+ypedDd+8H5M2QKXjcGx/fCB5QAIk8L0hYGqQhdNDZscYU8SSk5Oxd+9e3HXX XT6jbNuWbVHB7H9Ef9P40co2Fez12LFzI1zuwA+nK6PT7VZf5Qu9ud0taGhs8gVsaW5EdobHqA2H v09ABx8o9p+urcGOuhqseuUZzLjgDDgSE9Eq+XfX1clHTRPl44Sec1dDPZAgL/W2Chu1l19zchc8 /PZHOOUn07Gver92g451mak0xlpmKMx2ys5OGCs9VvXeLF48OGwv/tynbs26zThQs0c7X758OVQe TznlFHz68Tv4dtnHaNm/Cfny0KG2j96ep+2j5aCEHMz2R8sE/5AACZBADAiYGmThyLbqGVMNbkJC gtY4q+NG+cBw7969kZWVhTlz5iCaG+aAgf3xznsv45hj2p689XS/9NI/cOHFZ+ON1/+rO8V8X1Vd g+RU+wjd7lYcqK01TceBhiZU7RfD5RDa6lsPYGvJZlSU78P+rwqRcKAa6ivRLjFMkZIKd30DGruk IcHVjKYD9ZCagFYx0upqasU2a0GlKwtFa4qwYsWqmOc6EqMlmkQofV8v/syyTqswpTu2oHff6A3F hQsX4swzzwyZZPWAoAykaK41MyV79np6h/fsqcIzc1/Hf9/7HFVVVbj88suRk5MD9YBy6uln49nn /43LL/kRhg4egLy8bDRJOxCr7WC1P7FKP+WQAAmQgCJgak1E++Sq4nt+bjHIHHLslh9QWbkPw4cP 1wwydTN57LHHtBvF1s1bwy6RtLSuOOqoEajYu8kXV0/3yFED8fJLTVoafJ4xPlDGVWtuNtIz0rWh GV28y+WC+hlt6V3TAp0FSl1DAxZ9sgRp6V19fno+fA6d9KC1NQHuFjdSxfgqq3UhsTlJDDIp6AQn EpqlDiSloba8GhlZ6TjQ0IKu3XJQv7sMCVIf6lJzkJyQhCYJ51aVQ7ZY5XvAwAGo2vk/ZPf5Ycxk 2imCoQUjcdZZk0x13nbrjT4x0eZVXT/V1WIA29iGDh2qhYpWZ7Cq3O7ZmtODj7yAmfc/ivnz52vn qjdcDSWqh7GuXbuiW25ffFq4CkcO6o/u3SSOtxc51unR06fken7xa390XdyTAAmQQCwImBpkkQr3 bwjVPVYZYtIma3vld+DAAZ/xkpeXhwkTJuDFF1+EuoGGY5SdMXE8nnhqtpbM+rp67YbucDi0G4DD kYAePbtj2MhBGDf+eCwuXBppdkLGczqdMiqXKHPjwh96bXa1+HrENm/dhT59e4TUZyeAFUsrPzuy g8O41PCksxVdMxIxZsb9wd4hz9/+7W+hyq3V1TZ0GzJSiACaMbZLhtIqC7WQ6lzfwqljepxw9lLV ccJxxxjWZ5WOmupKbNlUHI5Iy7BvvPEGysvLtTCpqan42c9+hqVLl0qP4wpce+21eO655zB27Fgc f/zxlnIi9ayRns6mZhdOGz8aM2fchsqq/WhoaN/7lZjo0HrIHNIYqDDKZo/H1lHtTzzSTpkkQAKH NwFTg0w1bOFsRg2h7paQ4HlaFatMhjCakZ3teaoOlq9uWFs2bQl2NjxvEWPmBz8Yi40lq2VSfR1a WlqRKDf2RKcDSUlJmmE26qgh2L2rAkcMOkJ7WjYUJI52dZrFN3JvlpvU+o3bULVvvwzNeVg65KaU lZOO7nm5YsTJPCqLLVz+/qJUfoxYKg5qM/LTPCL4kyhxWhvtzZmzEt/S4ulRjCbfSr7KY9WO933G WNWaBzW1ZVs3oWTTrpjm3Sg/9Y31GH/iD2Qi+5R2dU71jjU3N2H1N6u0qNHmVQm58MIL2yVDGV+6 AfarX/0qQFcsdPorzMxM104nn30aMjMy/L3aHY8oOMI3h0z3jFV6lBzPz42PPvqf9Lz/EZ9//rWm 5vTTT8Kvf30zfnjGGTFrf/T0c08CJEACsSIQM4NMTVBXNpxnaLLNANMaXH0OmcwfumTqxZhw2qnS U1aLHTt3omxXGb75Royq/Xsw5+//bHcTM8toojMRySnJqJYndPV6faPMv1JGjjPJqRlAar7WYJmv csSv+uH6G69Bl9QsJCUnQT2hqze/klOSJLxT5rvs1W7im2UeVCw3NYxXuacGJ447Ck5Ja/Cm5oqp HjKzLRY3KmWc6PkaOHhggKpYyPcI9Ja1nKxcudJ2+am4NTU1mogk4aO/3BBNulQe1TAlqpdocv3/ 9BwwCOpX9J/MuJS30qVY/+3Zv+HGm25C4VdfB+hRadN7x157/T9a2Gjyquft7rvvRn19vTb0P2vW LPTo0UPrETvuuOPQs2dPPZhvrxvlPge/A72u+DmFPNR7yFTAUSMGaeE/+vhrLFu1DkuXfydD94F1 fMSwQdrDUsWuLVpY//REol8TIn/09mfBgvl4+OHZYoBdhT/+8W5pZ+rw9derMHPmH6Tnrh5TLrow Ju2Prpd7EiABEogVAVODLFwFauKwusFoNxn9aVVN4BbDKEGGENVe+bllCFMZUi5XCgYOHIh8GbbM zs5C8RpPr4FdvbvL9kiPWCJ27SoXAysVDdJLliBz1ZTxI5rQ4nLLnPJkWR8sBU2uA2jcL/O9pBfN kxY3WiQ9ruYW7KussqsyrHCqNywnN1PTF1bEGAVWNzdlBKhf8I0u+DwalW5tDpkMvcpE7jFjxoQt Sk1MV1u0Q5Yqn5+9caehMeafqL5Dj8Ln8y405OIfLtLje2fOwu133KH1kv1o4uk+MZPP/bH04rZg d+kOvLXwPfzlLz6vqA5mz/YM2yshajkZfVOG2dtvv41zzz1Xd7Lcr127NiImeg+Zv/DFS4tw/U13 422bulXcSPXrevX25/nnn8V11/1M1kH7ocxdy5d5bF9iyJAjcN55EzFv3t9w4oknSi96ovZQFk37 o+vlngRIgARiRcDUIAv36V1b6iHIENMMNDGOElq0d+s0g0zdlNJkvbIuMt9FTXxXQ495efnYIr1X arOrt7ZW9TC5sa+iCo0yDPTs069ob/pFCmbQkZ6n+5INJZGKCIineuvye+bLcg6y/IPFJsg0Y1If 1tSD2uWgh7faK2NF3zZt3GSbsR7Hat/aIMatw206DG0VV/fT6on0sKot0nyrfKkynDu9L04abjx0 ljn4aKQPGI2eg4eLpjc0A0TFi+Wm5D3zzDMyf+tXGP3Jp5oONYfr/fffk3X3NuKfr7yOWJaB/xwy fc6YztCuMabyr160UZseVzux8WfLllJ54Al8gaVKljAJR7dSE6l+PYmaQSYPhZ9//pX0Ft6HXr2G 46uv3tF6yGpr6+TN7j4ylPkEKioqkNu9O7p166YZyJG2P7pe7kmABEggVgRMDbJwFbjF0FI9U7ph oR17DTR92Qtp7cVfJoF7f8ogy8rKkIaxWXMPV6cyZg7IsgqFny3H0iWLZWJ5kvR8Bd4crGSqm49K g5rv5ZIfkITzLjgbb//H/lIZ9TIM0ihDphWV5stZNMpblGoI02qrlR68A/JTLwnEatONFF1erI0P JbdBpsKp4SK1hTtk2SBc9C3HGTi0pbuHs9fz++Q1vfDD0e3nKdbIfMO60g3IHzcVC5/8Mc694b1w xNsO+9vb75Ahs1/j0mmX45PPFmPciePw7epv0NJQjXkvvYIZ97b1atkWahIweA6ZMspUvb733nu1 GK+88grKysq0Y7U8hPJfvHixDON9jZtvvhmPP/64zMX8AcaNG2eiwdr5iCN6twuwafMOzc1It/KI pX5duWp/WrR6mKAZYdu2rYUyxNSQpfp1795Te3lkT8UedE1L0+aZqofDaNofXTf3JEACJBALAqZ3 /3CflPUhA2WI6cdqvpYmR59DJjcK5af1jMkkbuWnzrMyM5EmjaTawtPbgjp5w3LVinXIze2ODVu+ CMnEX76a36L9xBhrlPWSqtQbYo11YaWhsqoWe2Ti/qeybEU0W3ZGV2Skp4lBloTjxo4KKw1megcP GRzgpXqQYtUDqAtOSGqVpStk3TG56UcyZLlgwQK4xFhtkXXK1OZfPrqOcPYqfyrfT14DzSgbcf1a X3RP7xmwf+tK9D5ypLi/F7U+n3C/A5WGrukZKN+1A7Pu/QMee+IZnCvG2MRzLtb4R5tHP1XQ55Ap N7WEjJpHpt5e1rdp06bph769Mr50A0wZZf5buGnbtmN3u7cq9XljRrqVrljq19Ou2hHV23XqqT+Q nrEVGDasRmsblDGWk5Mv0yMKcMYZ4yWtsi6erIHW1NSoGWjRtT+6du5JgARIIHoCpgZZ9KLDk5Dh twZXODHXy+rgK1culrW8ajTjTvXGqU3dWHw9c0EClZ/HMBTjUIyxBmmgm5tcWPPteuzY7ulNCIpi epqTnS4Tqbtj5PAjTMNYeai0qN6xvTK02STLBZTKDS4WW7AxpstU7rE0yppkXl6DsEs89lT8/ve/ 1252ui593+BqlQXvWtr1/tXJvL+kzDyZC5iAXQfaesv0eJHudaNs7nTPyxT6+TVP78D/Zg1GSvfd GHRM+PPdwkmP0pnfqy/WryvCxRedrxlj4cS3G9Z/DpmKo+aRqbp93333aSJuvPFGMUzqMHfuXNx5 550ylNfL1yPm31OlBY7gT3+DpVrGjvYMfxrpVir0HrlY6A9O8nnnTZG5YnMxZco5ktce0gOWKwZq H3nR4QQt6C+v+Y2hER5p+xOsn+ckQAIkECkBU4Ms3Cdll7fHS0uIGBkqvkt+/pvmJj0haq9uGmr4 UhvalL+e4YbwekiUjOVL18mr9PlYV/K5qFL6lEGm9MuRHKq9CqcbaurtS3WunqbVUGWTDDc2yeeL 9u6tluUIiqHe+As376FW4PdnEHysdO2pOoDli1ciRxbZVD1kags3Df5yjxx6pO904/qN2rG/mzLK dHdfwAgPWmVR18bGFmRm94WjW390EeOqWfV4eV/icMpcOkdjMzLTUnx5UuuONQn/fHnpol78VBhX o2eoOZp8+2dB5U/Ps5Kpn/9wRgnWPJXsCxorfT6BQQfjTz0dl06dipNkKYwv5c3LWOuzmkOmkvLE E0/4UvTQQw/5jtWBf0+V7hFu+r5ds1XmcjbLlxkadRG+F2WsdMdKv65UtT+qDTnrrB/LEOUBfPbZ h/jkky817x/84ETcesvNePSxx3HBhRfhpRfn4eSTT9Iah2jaH1039yRAAiQQCwKmBlm4wtV8DLnb BNxwVOOu5hc55G1IfZ6RCuftw9IaUBVGuwkE2m621G+VD3BfeeXl2vBDoxhVvpuJMsLkbU6HvHWp GmllMKlJ9i1iKGhzxcRSU0ZYixhmarkMtTba9m278MaCD6VHY4Mt3bEI5L8wbFlFJZzy9mmOvHEa zaYbIUqGv9GlGyS6bBXO3193D3efqFbZl397a+qknBPw7XsvSvkmIjunG7Jy82TunAwLyxzBHcLe rYx2UdAsPYG7GsQAq6zA+KnXYpD02iS4Y7cwrJ6H4Dzr50ndclG8MTY9kboutfdnr7uXl1fgyaef 0U/bhYmmDNS1FM4cMn3OmEqM3kulFo5Vy2YED136Ehzi4KgRA9qF6Jbjmb/nP4fMX7eKECv9unLF Qj3gOWWR5jNOPx3Dhw3DtEuv1NoG9fa1erta36648iq89urLMsQ+Whu2jLT90eVxTwIkQAKxIGBq kPmMG5ta1I1X9TypzRPXY2GpY/0nB/Jfbsyy1xpQfz+vnnD0VslnY6677hpZ8+gDLbYyuPQ0KGNL bfpLBupY6VTzW1QYZYi5tEa8VeaO1ciw5xqZ6CtrmEmaYrEp+UuXrgkQZbQwrFKnluzwT6eKFEk6 hhQM8enbULyhnQzlpocx8vdFDuPAnaQ+naSM8RZs/PRtXHrWqfjx2ZO14clU+Yal2lReDtTuR5Ws Ut8kL0F8u2ol3l9ajP3djsHGjetx7DEjpUxi20OmZ8Eon66u/bBxS4UvbXrYWOz9GSt56lxtOnd1 7B9GGXF6GOUXzqZW49c/iWQWL3geV7DhpSb5+2/h1rt167fJdAG5lvx6yD4rXK6JDKVbBYpWv552 vf1Ri0JnZWVqLwo5kxLlOm/UesfV1zRuu/Vm/PmRx7TzSy69HHPnPCsfPx+vGWW6nHDzr8fjngRI gASiJWBqkIUr2OUditTjqYbNO3go+7ZlL5Qx5P9re+sy/LfsGuoa0UWGwg7IR6uVoeUx8jxDlCod Hj1i8UhalPGlztXaYyqc+uixOlfbrtIKvP9uIYpWBxpQmqfFHzXvKzu3CVlJbUNgwcH1hWFVb1jN gUZ0z/IYKUYLw6oXC9RLCpFudm7sdsKEp1+xFWNKWNbJtz1/OPFHsvZbKu679x5ZhqRcE/XgH/+M ffsq0FhfJ796HHviSXj5v18gpV++DHc1oIt8esktN/WO2jJ6D8VPzr8vYkPIKJ1mBpce1t8IU27B 53o4u3u78fV5XEpuPOaRDRvav12SM+QFFbXpuv31Kne9dyyWc8j8258uUv+6y9IW6enp0i40a+2P aoymTp2CepnU/8wzz6pk4JpfXofly76S77CmSPUNv/3RhPAPCZAACcSIQEwMMmXc6D1eYv34GkDV S6VPrFd73QBSe2WIKUNJO5a9/A97mzjpx9hQ8p22OKy2dIUYPVoPnAxRqk2lSRmDmjGm5jXJuTLc PMObKoSa/9SEYnkxQB3HclML1PYf2Nv39K3mpunGmDLkdBax1HkwZCnUquxSPPPnxRhLQxdvz5ie ntr9NfLShMfgyumeK2+TZmpGm+6fav0VKT1Y1HtlNC1deAv+/faKqGUZCfA3ds0MJjthjGQbufnL CvbXDUT/eVwqjJ15ZMGyrM5Xr9ksDzcuuP2+RTqgf08tir/uYL0qgNEcNitdZn5G7U9qaorW463i 6L1eakmZqRdPQXZWFmY/6JlPt2/vXm1NMjWtgRsJkAAJHEwCpgaZ3ojZSVyt9IwoY0e7M8uTqIqr Jm4royPYINN6zZRBJmE8Rpw6VnG8Q4zqxMa2ft169Osz1EbI0EHUUOV3367R0hQ6tL0Qas5Kl65p 8vbkAXsRgkKFwz8oaoeeeoaAxRAWg7dBesDU0JEyjst3l/mMzqYmtQ6bS1sKIr9nb6Smpolh7EJS q/RSyqLBu+pbkZIQm2UvzDI/dNhQ/Gfuz7F89TbcMustmSu4PqblrfQqI0jJVZvSp7bgcrQTRosY oz9m87j0XqrgOWTB6bVKRn1NGY4eMbBdkGjmkIWjX1ds1v4of/1lHrVPTpY5mjK/TX26beSI4doS GGraQ9eu6VJXPT1kkejX08E9CZAACURDwNQgC0fojh07kJ2Zpt18PMaVx6hSBplai0zNGdPWJFOG mAjWGz21V+eqMYzkCVW/+YWT1liHVeuQ7Srbq70lGY1sNVx5KG7fffEhkmVB3Vr5akKzzCOql/lw apkF9RarXs6NMm8sRybS5/XopX3mqrFRDDQpc/ViRZL0TKiyb1UGfRw3VVd0Iyke9UaXr+tQWQnW 4x9G99P38cp6qHlcwXO4wknHrm1r8M3iN7FnTwWapPwa9h+QJWRc2L55oyYmlG4VKBr9elrttj+J 8pCovhDSvXs3qPmclfLZtOTkJKmnahqFvQdBXSf3JEACJBBrAqYGmcdUsqfuq8WL0DVZ3mSSf56b sGrclCEmPWRy5DnTDTE1dOm5+eqNoAq3dMVKTVk4eu2lLr6h1IfNm8WwyM3LjUqRip8q8+Hq6zzr cR0KHIrXFePY40/AhAsvR0Z2N/QdPETm5HyNvn37YrqsVN89v4fGpKsMUWZkZGlLelRV7sWG9cUy 2boBafI2Zov0njXKp5c8Mw5VXYnfjVGlV23x1KEp8P6x0qMbblZh/GVFcqy+D6l/kihUfBVWbXbT o1gWDCswFRuObiUkXP3+isNtf9S8MnXdNspQq3pQLN2aiBWrVmsi7ebfXz+PSYAESCAWBHR7qZ0s /ebVzsPAwaphNghu6hSOTlMhHeRRMLwA5517KtK6psZMY2OzG9XS47Z9y068885HMZMbb0HRln/B 2FNQvOJzmcvnMZjind7DQX6kZRKrMohEf6S6I9FlVAci1W8ki24kQAIkoAiE0z6ZG2RreXMMVZ1O P/N0lJaWhgoWlv8J0uP00gsvhRWHgUmABEiABEiABDofAdV5Y3czHbK0K+BwDvfJR58cztln3kmA BEiABEiABGJEwNQg0ydkx0gPxZAACZAACZAACZAACZgQ6KAVoEy005kESIAESIAESIAESAA0yFgJ SIAESIAESIAESOAgE+CQ5UEuAKonARIgARIgARIgAfaQsQ6QAAmQAAmQAAmQwEEmYN5DFscFOg9y nqmeBEiABEiABEiABDoVAVODbMOGDZ0qoUwMCZAACZAACZAACXxfCZguDKu+P8mNBEiABEiABEiA BEggMgLq82x2N84hs0uK4UiABEiABEiABEggTgRMhyx1fftravRDw31GZqahOx1JgARIgARIgARI oLMS6Gz2zSHYQ9aAqpUrUVPrsizjptJi7CmpsAxjz9OePktZrkrskzSXLTFIt5WfpdDIPGPHxU9/ B+fBT3MnPIxBfYkwV3Ep2wjTcmhFq8UeuTbrGjpDqiNISye6/g7lOthQshKlhUtQJr+aSuv7Syxr yqHMLJYcKAudcWHYWqw9qwAfDTL6nYOystVYOWUaNq3Zb1l+++ZNxqqJcxF1G1trT59pYlzbsGro iVghaS6aNg07N/ilyMrPVGB0HjHjoiejg/NQ88lcFH1QomuPyT5SmYbxoqwvhjJt5jLmZWtTb3Cw aPIQLKtDzmvX4Fu5NjeuruwQdZZKwk1Lh11/tSiWdvnTOSstk99Z6qBlIk0865b+B8VXXoEi+W3Z YH1/MRFh6BzqejiUmRlmmI4REwg5ZBmx5IgjpqLf4/OR15wER90qfDNtBtJn/x1DxmTB1dwFmdk1 mhWZktbFUkP+L/+LsT/thlTLUDY8nZIOCZaSZa3PVNL+7diDPIxaXYie6UGhrPyCgsbqNGZc9AR1 cB6avpuHssZjMWqSnoDo95HKNIyn15cQ9dMs1YYyzQIHuce8bIPk2z2NJg92dcQ0XGoWkkSgQ/05 2Fu4aenA68+t2DRaA+osddA6lca+3abNxOkXT0Xh0CkxrQuhrodDmZkxSbpGSiBmQ5b7FjyIT8dN w4bi2nZpsfJrFxhOpBeMQu6oAnQbO1JrKLuMOgbZmttgJEuERPntfe1BFHp70Za+uAR6B7Or5A1J x3h8dedslLy11Oeu9LhKv8DyS9p63r58ZFGAvwpjtCl9ZQ/djk+9+lYtLPYEc5Vg1Vl+eW4oxnI5 LykRBi51PB4fHfsLCVuBtRPPwSeDxqO4KISfklxbjKLrz/H2Eo7Hal2f8lM6L5HetldexdJxnrx8 OmNhyHzEnItV/iSZ7tIlkn+d9TQUL9mlUu/ZIshDU/GrGr9vH5Vh6KdvwKeK7aAbUK5XNxNmWr4H TcPmbd6eyQZVZuOxdEEJQsrU0xu0DxXPvH66UDrnDslHG5e1n2zTpIeSGZSEgNPYl62qY+dg6SPG 15hZ2UaVB9Nr05xZXeHT+OSSp1HnR6P0kavx5VNLPC4mdUJ5NhUvxJfecvjy5j9F35MuV6BZ2Xqu WXOeEaWlg68/P8SGhxHVQXUtSj378vYbvNeEtHUfeNtWQy1+jiZla10nLMpIF93QjBb9WN9btfMW 5R7qerBiZnaNhapLepK5PzQJxMwgc5UWonn3StRXN7cjYeXXLrC/g8t7cTQHylSJbvhHMfq/+1+M uO98VN83E3u8N2ZnnxMxcs6TyOteiOp/bvAzVBqw+eZfoDL99xhbuAhj5z+JdNRCe+rz12lwrPS1 LKrAwHc/xKjZ52PPjZNRXCw3+IYaVBevRGOdN32uOrGlhEGNnDsHYMjjz2OEhIf0kPV9+CEcNf9Z 9DlC+uys/LALq46ejLK6szG6sBBjn78M5aKvaKV3OEV01i6T+Wh3z0DS7X/HaMlHTpYYQAbp9neK OZcQeVg5/gpUZtyI0Ys+xNBbu2L7tAnYpk/piyAPzj6n4qh3n0XfKXnAlBswUtgePf96ZGtdoObM nIPPw8CfrkTJhAeltF3Y9oezsaf4HBRMHgxrmf70Ao9DxTOvnw2o394FfV+cjxO/XoRRfy7Azqsv xw7hEkpmYAoCz2Jetlr5bET1098YXGO7YFa2kefB6to0Z5ZWMBIty57AdnUtqq2hCJueLkTKyH5y Yl4n1MPSsrNuQ+OUWTiu8C1klhdq0ZUhHflmnk7VTtQuM+EZaVo6+PoLxSWiOujycKmbX4HBWtt6 Esqvm4wNJX7TOgwVm5etdZ2wKCNdj9GYkZSfaTsvpnyk17Q5M/NrzLIu6Xng/pAloO4dMdnSRl+D /Ok3Irdn+6E9K79IlCvjI/f5J9G/YDB6X36lDEtKY7fTa5Gl9pLetTHoPnSMhErxmyTngktNC0iT m1+XHHQbMwlH33au1uMWKg1KX9YTfxJ9/dFz2iz0KQBKP1wrgjy9db74ARdzKjILCpA/ZqiKjazj pNdvzCikp6tA5n5NRe/IECeQM2k03DvWo6nrEIktfWwfb5G/snl1pM1+C6MvOllk2sxHzLmY58FV /CGU+Tj08enI7d8f/a+/V8tD6efeuV8R5MGRLuUqvaQ5A7KQ2HOoHCu2BUgWWdbMnOg/axHyC17B V4NGYv38IzHs67uQKfGsZGqsTf6EimdeP9MxeNZM9OnVjJri7UC6MhwqULWjMuK0aEmMddl6y8fo GrMq21BcTHCKs9W1ac4Meceh33FyLc5fromuW/a23B7HY8C4XpZ1omndR9KrdiRG3n8psnsXYNTj j2jx2/WMmCfYwMcinRY8I09Lx15/BhkOdIqkDnq55Dz7mLdtnaG1rTvelbbVYrO83i3qhFxwptef hboQ7by5zJDXgwkzq2tMb/+Nrk3LPNDzkCDgvSSiT2v6+Atx9HhjOVZ+xjGsXVXD6cz2Gn7eXrRm vZfKG9WN4EmZ6RgwexbKp8zAkv/+nxYq676XcOyVJ/gZbcZ6lb70I7p5PfejUXrVHefIqYyTBjfi wU/Zbr1zTx9T9VNh5Vez4O/Y6J1z5jh7EroXiCXp3ZTO7FF99NOw9rHkohQb5cHdrNiPQaqODPli nMqNc/NecR+somncIsmDVU+gObNeGDbzWpRPew5J0x9AX+lk89+sZPqHCz42i2deP3dh9VkTUC71 J3XCJGlbN2kiE7WBeY90M5nBuo3OY1m2ZnlwJ4Uu2/DzYHVtWjFLR59rpmH7dW+i9u6TUfH3ecBP n0Ou9Jo2eQEZ14kU8d2IBpUV1cPa7Qht540S4c4qnZ76bthmJUWXlo6+/kLBCbcOqnqW0jvDK7a+ rW0NpUj8jcvWvE6oXtNQ15/fkEpbCizb+dAyQ10Pwcys288kre00rEttKebRIUogZgZZ07aVKF9X jeTBxyB/cE4ADiu/gIBhneiWjv1IaWMuxWmbLkVT5S6Uvz4b62Sos/yid9pPtg8SqYysxqp6+ass pAx0EeOislH0Sw+HZjMl6bOBPRdLUPTwTpsbJfyROOrl55FrVTpBw7jhKQkMHSmXQCn+Z+omswMu hUwbUqxEvRghKZepvj6/LYI8aMPHZfrYp1dWKGYyt+8bMcZQkIfmp2WO3wXfYPBgLWGaAEOZfsk0 O7SO175+NhUtEGMsDyOWF6K3dokUybzEKdLAtoW1lmmWEnP36Mq2LV1tGkKXbSR5MEtnty3WzNJP ukDM2WnY8sGpqFkE9HlLuszUZlEnmlZ+JAHGIE23A/bv8SsBLTbCbbPslK0kyiPc/6+WTuu0+Ae3 dxy6jDQ5EVx/8Ht4sJcWGZQwa3elfVNtq6tK5+LXtloJtyhbFc2sTtgqI2eaJ4dJfiM96T1N23k7 MsO/HqzKT58xqTMLBtWAHXMew671QI/rbkF/v3YuOCTPOx8BVVdislW9dQ/WXXctvvvPhnbyrPza BY7SwV1biaYG+an1bHdXoK62Fg2Vak5CA0pfeQPlMpHJkZGH9AG9NU12Aey5fS72ydpndUtekzkr MivslCESPwNpPWTC/2uL0OAS+XMfMGpyNT12/yQPP01GVTfiuz+9gdraBs14LFswF9sMXpawK1OF ixcXozQkDztFGrAKFP91oXBxYd/CedowbI8Jnt4xozi23VLkLjr/bZRJOdZVVGoPtNbMarHhN5NR jWtx0ruFGHFNHjZPvB37/KepGMi0lZ4w4zm65IrYChzYKQalqwKbZ1zXvr6EKVOls9OVbdh5ML82 QzJLPwoDZV5h2XW3yTDkNPQZ5elWtqoTyUOOl5vuSmx8TV4GctVi25yH2/V0h9tmhUynSYWykxaT qKbO8bz+mrd+h30lJdhXXCy/Ijn2PBxFWgdV+7vn9me1trV2yT88besZqm0136zKVotlUidslVFq H+RIm17x2ruoKt2FWu3eYd7O25Jpcj2YMYuu/FzYv2AequfPQ02NeiLmdigRsOqDCTMfnsfNLgO7 G8Sz8jMI7ueknqACn8qSvM9obb1SKkyi1ktVi5JfnIity7RI8mcjlh09Tx4VbsT4xT/DgcLfYevd up/M7Jr9CvI97XebY7ujJM+w/e55WKFkyZY6/TkMO8HTC9hHhsJ2ys2g8B/i0cMzFuZJixZUXp9W 74Xqj+IeN/2voV/qKBz34ZNYNvEGfDX3d96gefJCwTTvcXD+dWlW+3hw8egzzIOzQCbcz8LXU4TL 3Nu0gIr14P56dYskDx59uZfdg5wFU1A04QNxOFKWE1E9nObMahbOwtZFMm+s8EY1fRBpd7+M8rcn YsUfFuLMh8/VhBrL9Oiz+msYT5a98NTM9vXTOfgMDJjyJLZOHo+tSrBBfTGUaVlH41G25nlAyLKV +Z2GZWRF0mV+baaHYuZE/uWXydzAJ5B61wXwfTfE6jpKPwFjnr8WS66+Aovua0tXkq+nW7mF12ZZ l60FT1tpaUtj8FFHXn8OhWT+DKyY75cKaVtPlbZ1ayTtrv5QFNy2jgkcYfHT5jm0KlsthHGdsC4j XUs6Bs75I/ZO/h2WSZueOP0lnH7bCTBr5+3INL4erK7b6ebtZ4NFXfJmQSsnOfbcO/V8cX8oEAj5 cXF7nxaowGpZaqJ89/k4bv2fkK3fdzUCVn4dj8jdUIum+mY4ZGJ/ctuola2EuKT3Ta2FlpoTGFF7 0pF101JzLO+ctnS0BXJJz55McpGu89T0QH1tYWJ3FA0X01RIr6GWh4wcpKYGVArTKNF5dCyzSNPq qpR61EHlqtJ4qJStVTojZ2ZeJ9zSk95Qn4S0dtdtJYrOOhFlxUbtmXWpR5pO87RY67P07fDrzzw1 hmXbsBKfjpiG/LeWY/iRzVIW7dtWc4nKx7xsreJFXEZq9MWknY9UplU60YnKzzKdh7CnPfsmugyG 83Hx2Nwl5bXgpInno9+kW4KMMcmIlV90+YwotiM1XYyDiKLCmZ6jv+QSIMAh7hGKDJATeOIUAy/E k2JghKjOouFiqtiZitS82JMx1Sel05HMzNNh7eOUco3NhWetR/c9VMrWKp2RMzOvE47UHKQZVc+G nfIWrLzp/IQsqxJmQUWaTtO06IUYyb7Drz/zRBqWrbyQpSa8ay9kSVmE3y6bl615SuSFsAivP6t2 PlKZVulEJyo/y3TSM2YEYtRDFrP0UBAJkAAJkMBhQaASpQu+QPIpP0ZuXpiW72HBh5mMN4HO1kNG gyzeJU75JEACJEACJEACnY5AZzPI7L5k2OlAMkEREnBVYt9KWel/yUrUyFuj/ltTaTH2eN+a0t0b SlaitHAJyuRXUxkYXg/T0XujdNpJQ6TxrGTHQ2bs9DWgSso6uJyt5Af7ubW3lO190SI4biTnEeuz qNeRpMNenFrskeuoTp+cbi8SQ4VJIB7XWDxkts9W9NcfrOq1lV/7xNDlECDQCQ2yWqz1fQNR/+af vj8HZbWHAFW/JNZ8MhdFH5T4uRzEQ9c2rBp6IlZMkW9hTpuGnRsC7yT75k3GqolzZYGQtq1u6X9Q fOUVKJLflg3ykkEn2IzSaSdZZvGiKaN4yLTKS1j6aldjpZT1pjWRlFslNst3IT8++lgUHnssPpbv Pm7QP1FklcCI/aLQF6JeR5ykUBFr1+BbuY42rlbfpYjfFk39jCRV8dAXjUyzOh9J3vQ4ZjKjSacu 27eP6voTKVb12srPlwAeHGoEOuHAfSr6PT4fefI2i6NulSzoOQPps/+OIWOytDccM2P5ImMHlFbT d/NQ1ngsRk3qAGWhVOzfLuuB5clSEYWGi+Hm//K/GPvTbgEvKHSbNhOnXzwVhUOnyBIeoRR0jL9R Ou1oNosXTRnFQ6ZVXsLSJ0twqCeulDS/RS6thPv5lT7yU5Q8XY1+r3yIAUOSsO/9f+FAs2+lX7+Q sTmMSl+Ieh2bFBpISc3SljiJ93URTf00SHVIp3joi0amWZ0PmRGLAGYyo0lnO3X69ZcV/vWnybKq 11Z+7RJCh0OFQMx6yPYteBCfjpsmT9Htu7Cs/NqDciJdvlmYO6oA3caO1Bq8LqOOQbbmNlj79qS7 dAmW+3rRpqF4ya72YgxdXChf8Cg+kaf9j9TvrDtQWuodhnOVYNUl0nP0yqtYOs7j/+mMhZ4vadQW o+j6czxxBo3H6oXyCpa2uVA65442eYOmYe0n2zSfpuJXxX08vn1UFk58+gZ8etZ4iX8DynU8pjK9 og135voMg+uO8gHj5Ur/sb8QlwqsnXiOlrbiIk9iXCVvSNmNx1d3zkbJW0vbfz2kwfuRd12evo8o D3rk9vu6wqfxySVPywKfbVup9NJ8+dQSzcEqna7SL7D8Er0ntQBfPrLIlw+zeCHLqC0Z7Y5iKlM+ ir1Urp3NwR9Vljq5fNw52jUVqT61FtHe1x5EobfOL31RFkNtl5sgB1cRtjy9Eel/fgEFJ/SXN1d7 ofe0WzFklPVbv1oa5RrYvM3bx9og15TUu6ULQvQQR6hPfSTcql4H5crv1OI60tqBc7D0EWNmTcUL 8aWX5Zc3/ymgN9lPQftDs2vFQl/I+mkmU2m3as/ap05ziVSfVbmHlGmSFuVsVuc9eTMvIwuRpjJD pdOqfbHSp66/soduly9yeNqmVQu99w5VPmf53S/layLL5bykRNpkq3pt5acSEuM6YZU3+sWeQMwM MldpIZp3r0R9dftPOlj5WWbJ+51KBHziYxdWjr8ClRk3YvSiDzH01q7YPm0CZOH2kFvVgluw+rfP IefPL+GERW9h4Jn1qN7tHc6R5Tlql8ncqrtnIOn2v2P0/CeRI1/6ccv3z1YdPRlldWdjdGEhxj5/ GcpvnIyilWqYogH127ug74vzceLXizDqzwXYefXl2CFpcfY5FUe9+yz6yirimHIDRj7+vCz2J6/R a6/ZW8m0yoa5PqtYcA7AENE/Yvb5EiwPfR9+CEfNfxZ9jvC88+/scyJGznkSed0LUf3PDe1v2Ib9 qJHmwTylaQUj0bLsCVmtW7+hF2HT04VIGdlPi2SezgZsvvkXqEz/PcYWLsJYKbt0tM17MotnXUbm 6VQ+MZUpq4OnyLWze215gFJ36WpU7q5GRp/0iPWpC7zhH8Xo/+5/MeK+81Etnwvboz8UBGhrO3GV rNCM4u7H9GlztHHkHHweBv50JUomPCj0Xdj2h7Oxp/gcFEwebBk7Un2h6rW5UovrSGsHNqL66W/a M5Ob4bKzbkPjlFk4rvAtZJYXaipCL8Bpca1Y6LOunxYyVapM2zNzKpHqsyp3a5nmaVE+ZteYJ28m ZWQt0lSmdTqt2xcrler6a1lUIQt7f4hR0v7ukXtHsWrfpHyqi1eiUf8Gs6tObCm5f9bI/dOqvbby s7xXSUIiqBNWeaNf7AkY3mojUZM2+hrkTy9Fbs/23bNWfuHqchV/CGUKDX18OnLV14+uvxe7H52I 0s9L0P8iq4a/FrvmfKCtvDz6ohM0tZm3Pdmm3ksibfZbGH1RgeaeO0Y+Ulw0V/vsT86k0XDvWA9X 1yHIEt+Kj7fI5/DGYPCsmaiTie9VxdvhkG9bqh6oqh2V6DumF3ILegEDsrCjcagce2QqwU1F71jI tOqFSDfXl2cVL1U+7l0gK9UPxRp8h6zjpAfSf/2lVEnrqF5wDB2DrYUpIT+2Hl0eVGyTLe849DtO PkI+fzkK5GPRdcveFpN3PIaNE45qM02nCy5lV+dLWyYL/maOmYRuUna+zSSeI928jHxxzQ5iKjMH +fJJp6JPtwM/rseXQycj78Pv0G/bYtF+EbK1YXrjMrLMg3SFqXWecp9/Ev3lO54YfCU23TcF1Ttr 0bPAfOxf/7hxTh//SuIBUVe0CDuLdrenkj4UA88dg/6zFqFq6QR8NegVCSNfSPj6LmSGaGWi0WdZ r9un0uticR0N9wQxYtat+SMxVI/E0fdfqj1YZT/+CMrG39bus0vBai2vdwt9PaX9iLgNMWnPgtPm f25VlyzzIO2gabnH4RrTF/EzKiOreq3lNaLrNkT74g8x6Fhdf1lP/Emuv/7yLd1ZqHzhTZR+uBYF 1wStpB9wjVi1107Ttty6jOT+EEGdCMoOT+NMIKAaRKMrffyFOHq8sQQrP+MY5q56453aTQ+TLxVU buKb94qDlUG2D3XSW5zz+4F6xHb7FnHJHmXcK1Cz4O/Y6L2HOc6ehO4F6kM8u7D6rAnywWixFSZM kvq+SZOZ6P14jjpRF6TZZizTLLRyD63PKrZb77w0GbNyw2Tyt0l4pSv8PFilMB19rpmG7de9iVox yCr+Pg/46XOBxqNEb5/OdAyYPQvlU2ZgyX//T1OQdd9LOPbKEwKMy/bx44BD+wAAQABJREFUPGmx KiNPCPO/sZKZfeo5wJWrsO/yFK13quKLb9G14kvgmocC5vSFq0/VaWd2F08GvD3O2kKc5lmSuYLq GzkrxXBrQG7Qx4mbtixG6QvfICmjq1/dLpMHjysxQAwyoBeGyefEyuVj7knTH0Bfz9fELLQhSn1S H0LU6/bKra8jU2ZJKSJqIxrUZaJs1W5HBJRNez2BLsbXSp1m0FmVkVX9NJbp0WvVngWmLPAsMn3W 5W4lM1B7+zOjOm9aRu2jG7oYyVQBjdNpr30xUqTSmX6EfrPaj0a5VzjkUlfDEMrPfwvuabWq11Z+ 8agT/unkcfwIxMwga9q2EuXrqpE8+BjkDw7srbHyCz9rqlHcAZdvfnEl6qWSp1ym+q2stm7ah8DL 1+4GxlvcJQKGR0Vec6P8ORJHvfw8coNoNRU9LcZYHkYsL0RvLctFMldgilxo+h1CLj6J3VImY5j+ m4VM/2DBx01FC0LqC44Tk3NnmsfElM/9+DYbeYik3NNPukB0TcOWD05FzSKgz1vSZWZjSxtzKU7b dKn2Mfby12djnQzNlV+kvnMZOrJhGYWOZhkiXJmpBePk23PXYt2DRyLn1mtR/6+HsKm4ArkvDrXU o3ta62urj3p4q71zwFjN0Kj4ZicGDw58yMk+9y6cdq5FbJkL840YY5AeueanZU7MBd+IjPY9bf4S otLnL8jmsb3ryICZVufHIE3Zq2rbv8fvSvc4Gf61ulbk80GezUCf18ewbK1k+iciuD3z9zM5jkhf iHI3lGmi376zOTP7MgJDmqUz0vZFGVmNVepmpRqiDHSRzoPKRkm3jKZoTZPv+6lJ7Qy0wJTZOIuq TjRgx5zHsGu9fGL3ulvQP8Q1ayM1DBIBAVX/YrJVvXUP1l13Lb77z4Z28qz82gUO4ZA87BSpyBUo /utCNLhc2Ldwnjb812NC4I2jvZh05PzkSDQ/+ABKinbJZ8JkDaEPXsRmg5cQ/OMmDz9Nhvo24rs/ vYHa2gbthl+2YC62STxHl1wJWoEDO8XgclVg84zr2jfQKdJ6z38bZTLJra5CvmEoMaxk+usOPral LziSjXPtW5wN8p22Ggm8W9KprT3lt/iFzHHK6SE5fe1dVJXuQm1lg608RFTu6UdhoMy7K5MPtteJ YdZnVJtFZZ7OBpS+8gbKhbEjIw/pA9RYtscYVnvzeMpXNoMy8niY/425zLwCdBfGdcvkzcarfo5s mU/SIPP98tVQo2wx12eeNen9GYUjZAi19rc/w4aV29BUW4GyBU/LdVNrFUv8arHhN5NRLYblSe8W YoTI2Dzxduzzq0qGAiLWZygtpGOk11HykOPlYWElNr4mL0a4arFtzsO2bqKRXu++jBjUz6hl+oQb HIStz0a5G8g00BzgFLLOB4S2dxJSpmE6rduXUJr33D4X+2TNx7olr8n8WJnFe8oQiZKhdRCUvbZI 7mMif+4D7e8doQQH+UdXJ1zYv2AequfPQ02NMiC5HQwCQX0+0STB89jYZWB3AyFWfgbB/Zw83bh+ 6y04C2Ry/Cx8PeU2FM69TQuZNfsVDO4fOis9r5+HA+U3YPPkCdjs1THg3Uu8R0negUY/XcpHbhbH ffgklk28AV/N/Z03bJ5M0pwG5+AzMGDKk9g6eTy2Kp8enptnou+pR+bvXHYPchZMQdGEDyTAkbLk hOq1MZfpVWC4s6PPMKLX0ZGULEf6470eshYlvzgRW5fp5xux7Oh5kpcbMX7xdO+QTDoGzvkj9k7+ HZb9Q+Y+TH8Jp992gikXXZKuy7hOtIUKPHIi//LLsH7+E0i96wJk+jyt0vkzHCj8Hbbe7QsMVSfy NVvOKp4nf8Zl1Car/VE8ZPZCt/PyUL7qV+gm30Z13DUGZX8/AdlalYpQn7x276nNep1Okl44KT+/ +tk+bx6Xvne/jcaGX2PzlImeui3OA979mVlwzb1m4SxsXSTzxgpvlIcYIO3ul1H+9kSs+MNCnPnw uZZxI9GnCzSu17pv+731dWTBLP0EjHn+Wiy5+gosuq9NblIonhZtCKSEQpWRcf0M1YYEy21Lb6ij cPXZKXdjmVYpsajzn5wWkpmxZAuZ3rbOOJ0ui/bFWJPHNckzbWv3PKxQbapsqdOfw7ATPCNIfWRo f6c8eBZKm2p077Cq14Z+lvVMabeuEw7vrcFzz1XhuXU0gRh9OqkCq2XZhPLd5+O49X8K+iCvlV8U 2ZWnioZKmcyRoT5KG9oY89ekPSXJOmfOHHl7zd/D8tjl0SfDdqnpgUMwrkrp+TJwtxSneZrLtIob uT4rqZH6meWhEkVnnYiyYqM6Eaku63hu6fVsqm+WnsscJAcWkXVE+poScNVK3VbXSoZcK/YvFlN5 oTw6Ul+k15FbepMb6pOQJu1HeJvZtRKelMDQ8ZAZqCHwrKP1BWo/mGfRtC+eei33jpzAhkm/F6WG XZesSBy+ZWRFxcivs306yXnN3Q/h+CPzkOh2o7aiGP9+6mF8sdMo6RZu8jpt0sTz0W/SLUHGmMSx 8rMQGdLLmYrUvMDKHTKON4BDeiDCj+mUiylwbpyuzynukd2rzGXqso32keszkhatm0keGnaiRrrn c56QpT4igxN2whyp6WKchx2NESwIOOVa6aDi01LRkfoivY4cqTlIi6iemVwrFvxDe8VDppXWjtZn lZaO9YumfTGr15Hdi0Ll+/Ato1BkOrt/wrx581prS7/Dur1ZGFmQD9eur3HDvc/D3dqqpb0jLMjO DonpIwESIAESIAES+H4R6Aj7xpGgBiLtbc6mXYW4/u65Wugpdz2BCb2H4izzlSHsSWUoEiABEiAB EiABEiAB2wScyb1OwlPPjJXXuGQFluRktDa6kKJWluBGAiRAAiRAAiRAAiTQIQSc7qrt2LStFgkJ brTKMGVTUzV2q6XwuZEACZAACZAACZAACXQIAWfl5i/x6F/e7xBlVEICJEACJEACJEACJNCegLP7 mMtw7/TuWFQkq4IPPArHHp2LxX/zW9CpfRy6kAAJkAAJkAAJkAAJxJCAc0edGwOOPRNXjHHLNDJZ +mLPRlRxyDKGiCmKBEiABEiABEiABKwJaAvDDh83Dlkyf6yh8iuskrWj1MZlLzwc+JcESIAESIAE SOD7R6DTLXuhEK9dvPj7R5o5IgESIAESIAESIIFDhEDMPi5+iOSXySQBEiABEiABEiCBTkeABlmn KxImiARIgARIgARI4HAjQIPscCtx5pcESIAESIAESKDTEaBB1umKhAkiARIgARIgARI43AjQIDvc Spz5JQESIAESIAES6HQEHA/NvANTJ/TrdAljgkiABEiABEiABEjgcCHgyBswAmddORMP3XZZRHl2 JCTA7BeRQEYiARIgARIgARIggcOMgOMXVz2ELzZVofvwH+LBG886zLLP7JIACZAACZAACZDAwScg c8jW4vkHbsWqvW50HzUZvzq9z8FPFVNAAiRAAiRAAiRAAocRAd+k/qfeWIoWJKL/sJGHUfaZVRIg ARIgARIgARI4+AR8Bhm+Wo+KFiAtu9vBTxVTQAIkQAIkQAIkQAKHEYE2gww1qG8GkrJ7YuBhBIBZ JQESIAESIAESIIGDTcDPIEtBchLgrirD5oOdKuonARIgARIgARIggcOIQJtBNmwIuicCDfX1h1H2 mVUSIAESIAESIAESOPgEfAbZxeePRaqkZ9f6tQc/VUwBCZAACZAACZAACRxGBDSDrN+5t2LSkAyg 6hv8+7/rD6PsM6skQAIkQAIkQAIkcPAJOK+67QGcOrI33O59ePf5p7Hz4KeJKSABEiABEiABEiCB w4qAc8JRfVFXsRHvP/8A3iw+rPLOzJIACZAACZAACZBApyCQMGFsv9ZFK7a3S4y7tVVz219T087P 3yErK8v/NOBYlxHgyBMSIAESIAESIAESOMgEQtk3GZmZUadQfevb7uYwMsbsRmY4EiABEiABEiAB EiCB6Ak4oxXBXrBoCTI+CZAACZAACZDA4U7At+zF4Q6C+ScBEiABEiABEiCBg0WABtnBIk+9JEAC JEACJEACJOAlQIOMVYEESIAESIAESIAEDjIBGmQHuQCongRIgARIgARIgARokLEOkAAJkAAJkAAJ kMBBJuC86cJz4Tr6DIzplwl3cy1Wv/cPPPXmsoOcLKonARIgARIgARIggcOHgGPM+Rfj2AGZKN+6 Ew2JaSg47QwMO3zyz5ySAAmQAAmQAAmQwEEnIEOWDfj6xZm4+/578fqKvUBSNvoNPOjpYgJIgARI gARIgARI4LAh4Ni77A08t8jz6aSaygOS8VR0TTls8s+MkgAJkAAJkAAJkMBBJ+Cor61ol4iWdi50 IAESIAESIAESIAESiBcBGbJkd1i84FIuCZAACZAACZAACdghYLjsRaKdmAxDAiRAAiRAAiRAAiQQ EwKOlubGIEEtaAl2CgrBUxIgARIgARIgARIggdgRSBBRrUbi3K0e5/01NUbePreMzEzfMQ9IgARI gARIgARI4FAg0BH2jSNBmVn2NsMhS3tRGYoESIAESIAESIAESCAWBGiQxYIiZZAACZAACZAACZBA FARokEUBj1FJgARIgARIgARIIBYEaJDFgiJlkAAJkAAJkAAJkEAUBGiQRQGPUUmABEiABEiABEgg FgRokMWCImWQAAmQAAmQAAmQQBQEnCpuvwmX46pJxyMvMxH1B2qxddWHUYhkVBIgARIgARIgARIg gXAIODH2Ktx55alIddehtGQn6lMzkJKs2WnhyGFYEiABEiABEiABEiCBCAk4hw8/EmlwY+nc6/HX r9qkPDKv7ZhHJEACJEACJEACJEAC8SPgPG14vkivQVXKGIz+QTKc9TuwbPXO+GmkZBIgARIgARIg ARIggQACzhP7JsPtzsYPr5iO091uNDZuQ9MNDwQE4gkJkAAJkAAJkAAJkED8CDi/3evGyKxyvPfq u6hypqGlZidWx08fJZMACZAACZAACZAACQQRcJbVNolBVo+SDz/FyiBPnpIACZAACZAACZAACcSf gKxDxqXI4o+ZGkiABEiABEiABEjAnACtMXM29CEBEiABEiABEiCBDiFAg6xDMFMJCZAACZAACZAA CZgTcDS7XOa+9CEBEiABEiABEiABEog7gQTR0Gqkxd3qcd5fU2Pk7XPLyMz0HfOABEiABEiABEiA BA4FAh1h3zgSlJllb+OQpT1ODEUCJEACJEACJEACcSNAgyxuaCmYBEiABEiABEiABOwRoEFmjxND kQAJkAAJkAAJkEDcCNAgixtaCiYBEiABEiABEiABewRokNnjxFAkQAIkQAIkQAIkEDcCNMjihpaC SYAESIAESIAESMAeARpk9jgxFAmQAAmQAAmQAAnEjQANsrihpWASIAESIAESIAESsEeABpk9TgxF AiRAAiRAAiRAAnEjQIMsbmgpmARIgARIgARIgATsEaBBZo8TQ5EACZAACZAACZBA3AjQIIsbWgom ARIgARIgARIgAXsEaJDZ48RQJEACJEACJEACJBA3AjTI4oaWgkmABEiABEiABEjAHgEaZPY4MRQJ kAAJkAAJkAAJxI0ADbK4oaVgEiABEiABEiABErBHgAaZPU4MRQIkQAIkQAIkQAJxI0CDLG5oKZgE SIAESIAESIAE7BGgQWaPE0ORAAmQAAmQAAmQQNwI0CCLG1oKJgESIAESIAESIAF7BGiQ2ePEUCRA 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 ------=_Part_525810_2019794301.1648554603074-- From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 29 08:44:40 2022 Received: (at 54623) by debbugs.gnu.org; 29 Mar 2022 12:44:41 +0000 Received: from localhost ([127.0.0.1]:60145 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZBDE-0002OJ-NL for submit@debbugs.gnu.org; Tue, 29 Mar 2022 08:44:40 -0400 Received: from quimby.gnus.org ([95.216.78.240]:60094) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZBDC-0002O6-T4 for 54623@debbugs.gnu.org; Tue, 29 Mar 2022 08:44:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=unDj5WCBbUoCN7bZwnFB0TAsB3y2R+HMftFZUQ6RpKw=; b=YezE8q3erZQkIEVU97eWQMsg4b 90ooMkF903s953PKOy3+B2eecyZRjxIChL7Ex4ToZWEwZZurXiIq6Wf3WD1Hfztg/+g5mJlkrpKRt 6YPVInv9qLQShKDKQ3O6rMioNSJ9SQ9vFTI+l49Vo5F4Ss6xcqM1uP7HNouSWhA5rZKU=; Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nZBD3-0002wd-8B; Tue, 29 Mar 2022 14:44:31 +0200 From: Lars Ingebrigtsen To: Angelo Graziosi Subject: Re: bug#54623: No scroll bars on macOS builds References: <542747779.525811.1648554603075@mail1.libero.it> Date: Tue, 29 Mar 2022 14:44:28 +0200 In-Reply-To: <542747779.525811.1648554603075@mail1.libero.it> (Angelo Graziosi's message of "Tue, 29 Mar 2022 13:50:03 +0200 (CEST)") Message-ID: <875ynxapxv.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Angelo Graziosi writes: > Emacs builds on macOS 10.13.6 do not show scroll bars even if both > vertical and horizontal ones are enabled. The attached screenshot > refers to 'Emacs -Q'. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Alan Third 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: -3.3 (---) Angelo Graziosi writes: > Emacs builds on macOS 10.13.6 do not show scroll bars even if both > vertical and horizontal ones are enabled. The attached screenshot > refers to 'Emacs -Q'. I can't reproduce this on Macos 12.1. > The first build in which scroll bars are gone or hidden looks > > 2) > commit: a4d2c88cdee90a3e4863a62c4ff69896d0c1a347 > Alan Third 2021-07-31 11:13:05 +0100 > Simplify macOS drawing code Perhaps Alan has some comments; added to the CCs. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 29 15:53:56 2022 Received: (at 54623) by debbugs.gnu.org; 29 Mar 2022 19:53:56 +0000 Received: from localhost ([127.0.0.1]:33677 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZHud-0005He-QN for submit@debbugs.gnu.org; Tue, 29 Mar 2022 15:53:55 -0400 Received: from smtp-35-i2.italiaonline.it ([213.209.12.35]:54668 helo=libero.it) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZHuc-0005HQ-34 for 54623@debbugs.gnu.org; Tue, 29 Mar 2022 15:53:54 -0400 Received: from oxapps-38-175.iol.local ([10.101.8.221]) by smtp-35.iol.local with ESMTPA id ZHuVnkN5JulEnZHuVnUX6w; Tue, 29 Mar 2022 21:53:47 +0200 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1648583627; bh=/atIPD8nayByABmVtjJtlZQNv/cEoJ6ZNNT20tf2UbE=; h=From; b=e6nIQLD/YduribqMJBDqYmrV3QHkFe4xsR3oFW41C7f7A0Ssq44I22NOuaCPD8nZN z/Jl/4V54+TO0oCRy4MkpRGmJZUIunMrZ7O6tevDFanfxXm0KLFWcRaGxzhQzfQyWw GEA4NfQNkJ0xZXJV3RaL/cRQof+ciKKdgLjFtR7kaFN8Ktnobt/wDCWTaV/Gr8Wis9 +eSMqZq54m3J93GGfEaoDE232W4rRaCW8wTW09SYBPiv2i3g2HjRa5czD38k9VoqBv LObtGVoNnOEhDNYXHWd0tzgr5TXVxj8IKSnTWYlDyiWqphCaNZ9NxO4WZ8/Bq6E4Pi oziNz5qswtLvQ== X-CNFS-Analysis: v=2.4 cv=eaL4w5IH c=1 sm=1 tr=0 ts=624363cb cx=a_exe a=xzgtpd3mI/ODolKyCqfSUQ==:117 a=zlL5DDtatYgA:10 a=IkcTkHD0fZMA:10 a=1pep0PMDP0kA:10 a=xtERp6CFAAAA:8 a=1BcMLbwXr9NyUd-b9kEA:9 a=QEXdDO2ut3YA:10 Date: Tue, 29 Mar 2022 21:53:47 +0200 (CEST) From: Angelo Graziosi To: Lars Ingebrigtsen Message-ID: <1929736152.572774.1648583627143@mail1.libero.it> In-Reply-To: <875ynxapxv.fsf@gnus.org> References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> Subject: Re: bug#54623: No scroll bars on macOS builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.5-Rev39 X-Originating-IP: 79.13.231.87 X-Originating-Client: open-xchange-appsuite x-libjamsun: n2P8Nn829CoSHequKdHkc2aiTED2k35i x-libjamv: CQoXXYZGC+0= X-CMAE-Envelope: MS4xfAptY21Bfow4kGimh9z1cm8WZzELoMTwxddmx737nxJzgM9ud8tWAxWEBLrsks30Gd6Aouj5BbCzU9Y00aYWXMGGIFOLOFsZ3Luo3RY2ZnsXorkKX2G7 7g7WNFxq2PDr/+bJJP6Z5pGDCwdVeyCjXQjLC8Pw+lVPdhdekPUASsErlyfVBm6FrOhjOO1P1ZWsTSEFnxYr97M8KE7jFBqE5815+xWDKDmHg5A1P6lsj7bl G51n8C8rNKPMtq/bzHlFYw== X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Alan Third 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: -0.0 (/) > Il 29/03/2022 14:44 Lars Ingebrigtsen ha scritto: > > > Angelo Graziosi writes: > > > Emacs builds on macOS 10.13.6 do not show scroll bars even if both > > vertical and horizontal ones are enabled. The attached screenshot > > refers to 'Emacs -Q'. > > I can't reproduce this on Macos 12.1. Which build? Nextstep (--with-ns) or Mac (--with-mac)? Just for the record.. the Mac build (source from https://bitbucket.org/mituharu/emacs-mac/src/work, about March 14) DOES HAVE the scrollbars! It is 28.0.92 Mac-patched source. The nextstep build (source from 28 branch, about March 27) DOES NOT HAVE the scroll bars. I didn't test master because I don't know how to build using '--with-mac' (bitbucket repo does not seem to have master source Mac-patched). (Trying to build the bitbucket source '--with-ns' fails...) From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 29 20:39:44 2022 Received: (at 54623) by debbugs.gnu.org; 30 Mar 2022 00:39:44 +0000 Received: from localhost ([127.0.0.1]:33962 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZMND-0004GY-RG for submit@debbugs.gnu.org; Tue, 29 Mar 2022 20:39:44 -0400 Received: from sonic315-21.consmr.mail.ne1.yahoo.com ([66.163.190.147]:33327) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZMNB-0004GK-Ma for 54623@debbugs.gnu.org; Tue, 29 Mar 2022 20:39:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1648600775; bh=ERGbRXrW8j/SMFBsvixrVXo472o9msGARq+EmTc8OYo=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From:Subject:Reply-To; b=WOzIIwDHVn5c9LuJHpmOoxwrZEBkl0rvS1h6S8ZEu8OQppvPi7/yUt5qoWQA0YPqeXx/ZeJCSA0/W9nLQhpA+rDGytmngHvnJJfeE4TbedNs5+uC8tXKTgaPGx9fA7FZqihu3rhSiXfXW5xEFbf/T5VBYdGF292oUj1tGaWzgel5vMY0Ww/lI2MBxMbycN0BJRPAZ6faNpiikCbqXLFuvHxdnuN3yAj8XDdojcGfNGE8Gc44EHKNML+2xowGYQxk/U+UhJnodYiMrTq+JHv9emrGyd7oF3gilJQsZZsff4QZFRDGk/SHGnavRyS0GSAsTvuGLDuF5fmdT1gRL8MxRA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1648600775; bh=v/3pxHICSJZsGTzK7rdJ0h23qNJaX48Yg2YvUc/UbPm=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=naGjGsWe4K1dhvY0+rLSBKRhwELt9E7gzy/kcp7sVCovnJSHgZNQTGJRaOpt37BJGye9/G+NqLhqsmQqF8glcoIydGbW9ezhnpa1o/zKqQgWJcW4B/XLxZxDSr/ToRZQA4dc1DPlHq9+/0LJyijiW0dZw0hFXQ0l4IKi3k230e/m2VnSCSS6RlBnMAdik0F/AjvVMxODDMrn2W5O2CLfz4G9pW2+2NCXBy9m3rAfk/XdPD4XmjMGbt9zFYM7ZBcpxiOEROyIenbd4IQJFriWiKGH+V8sWcKDCHMy3vBpsSZiC2hKOM2AFnuHdJz8g8t4o51lEQboq+FDmm3uJCIDhw== X-YMail-OSG: tHxilIUVM1m9Z6UcCVTaboDShcH1b0oFEH0ucGkN9nOHvFKOoV9rUThcnP9lhvD iTjH3TM5_026nnLtAqtHNzs.FBzFKcQD6vJu.0eZNc5IUCRkEO7J_71u6G_kNxT5drOaBH_BQ_xF wBCEeZo2TcYckgQksQDSRP5YGMU0MluKe5lDhDHeyGjwR4P4NcOJNdwN9BmUqgcIqWAv.399Jt17 V2qsycDyLJ02cHW5iMnh9q8.Sj9vxeXTXTbfoLIDJVSuycgiqwJrA5QG31mTiXbDLaPsLswrdG83 OTvYoiGX6irCfj0m3C.wqRGOKLPrH9l8QmHFl2CpwVON2ABS_5dx6aMTlD.O8DXBX3wvw8wWc1Dm XER7_sRkMUTp4u6nt8mukZCFt.6l66j6LO_HsFpzPVHwGsmPBY1EruqlGQtml5_V9i532s3DAFOR Bv08LpQif01gnLOr81SIxr61JYfCcmMwJyKivvVYhypSMfRujHdcLvyngT5aPkKloQa7JZA23yn. u8tMvk3SgBtorfmu56_uPi.ugvs_Up8zoANbq5_93GpMzC0qlhpu_vaw.Lb_LLpugx9PZeqIWVkp 5pVUGE9rLJWoiKIDvbVQr.aFw9JD_X9oG.InLeQLlpaX2Bj2sQKEuEVXk_gG9EdzaxOYaH7EW0EK NpM2DyY1dBaOtI3PftG0sh_T3DqypmRn99tljBIeG04J5YxykWJYME0_sNrt487uK6Dv_zyoUCZq BwoO1YLY1j.7AFrClSUHTbzrdNbpLKK6sgBDuReInruDsKDXk6X31CPLqK2BzYAhwhedBNtWnprt GOVxg.CwmiVWwpWPCBzPiJgZuwn9CltC5bHPdpUMmlv7PnDi09I2y0nAd2FP6i2xVkf3KkdlOC.T m6ifW9RG6OauLeOMJvS6AzF5_9OvIjYw1TxW4v_gqJwjWSDJ5S7MJnlal9ACX_YW58ahX03yZwSW K6nu0XA9I5HHB4ZZZk3sZrv6GPp8aJXIni9AmGtiXAHDI5ursbmPMSFNwZ6i3h9IFhCc_Va934.V kYcH_4c.Qumv4JVEe1MVXVvce8OcY3eVLeJFcN1iJ9B78UGCo6UltQxgS5soZiI3jT.bt7HjMsJt Eg8HLELDUOVQ7F8yZuWbWXqQb6XE5ZP0Uix2dMazfSamGwQL9rvm.IT0LKsIBrpLuezdRHLTW7ch 3lbT1NayXMU3DlNcGpqGFSgWvD3rtfCWnJ2KYZCqycfAUT7lvgWpjvQytj65X5qBGGrY8YWEg0lG 1SuOBtCGwKMeRcVz9rwW4LCRrQNiuUedwjfB0dZSNE0ud.Fq8.m5_i0whiMKZJe9cfo2QChoRemJ 6e2AxN.m3IikcJewVkiOT34yMAVAZXJzVPg9iYz.KPG8f5p.th0SKJ_eXKn3NN7v9SsvlHpBOMwx xPQNvhut5QIisNPcTCmVY2otLKjyIEDZPxo35b0Bd.SILzkcRcu_SQ77Jsa5wXhGFgw4uHmAanjX P_RiYMVRyhJPLqs33AyzQz2Mh6lFGN01r2lYXfg55cUUXmGxgtemGRXXTdkomwzSlxaWqGAh3gOI Sj6aurEG93U7AImWGc6.z9wjN7jYsJuSZ9lAWrHjX5CTNnc8Z_G.juHSs2CtqiLrGSw3ScG7Ete4 qgVOeVLG5nGhZ_tcQuz.8Lw4OzA0UbYC9rECo8QDic1cyzfPQuft5GY0ER8qcfwUsLrqtetBr3_f X006Pb7r5pQDUOkub.eXFEqqbfSztLtntXKRBMcaRiRo8q7Z2IWEdLUJyhcHpPc4RQ.z8esPe8iM 25o6ePzUHH8KY_ET4JJXjWW1ITVogQablokmh5Hzh5nBbx5zU65gALCQWFHCYHjSBJ96y0rWLGYi U661V6cDy4EknW0kmn8c7BF.Kh3kW51._c6Ww_.ZxEWEux0fdwSy5RENTQKGmhUGLN65sT_3VEDs oiHPX0_8JLW24w0fxGawuG0kxabMY1QihgS9_ItQjpWodRih1c0biY9E7QvSronlKZANYT7A5hjV EooVZNrT9sfm5.FC3ZOnkNA915TAZgTggmcysc98O3R6LDxKeN_eXCcMYUFNBsBf79fFlPaDkL7s 4hi_ThPyM4Kf2qB.L6YjROTnNE9fzQHv0Vq1Zp0eN5EJcTvCHntN8L7mHjHAMBf3hSRbI75Mzc2G WOR5AjjhWmidFHS4gFlfPaSMt6em_p46M4hegt7pOahVf5n4HcuJxXPxFxHfy3ta3seZqc4CfjAq e2mzbbWRGD0t9eqhZ7wg6ojphN3INIch6VNoXAXFLnqZSRznCewMlnNEmT.a06EBXHg-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic315.consmr.mail.ne1.yahoo.com with HTTP; Wed, 30 Mar 2022 00:39:35 +0000 Received: by kubenode512.mail-prod1.omega.sg3.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 841df1a859dfbfa86bca1349397eb6cd; Wed, 30 Mar 2022 00:39:28 +0000 (UTC) From: Po Lu To: Angelo Graziosi Subject: Re: bug#54623: No scroll bars on macOS builds References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> <1929736152.572774.1648583627143@mail1.libero.it> Date: Wed, 30 Mar 2022 08:39:23 +0800 In-Reply-To: <1929736152.572774.1648583627143@mail1.libero.it> (Angelo Graziosi's message of "Tue, 29 Mar 2022 21:53:47 +0200 (CEST)") Message-ID: <87tubgz32c.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.20001 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 801 X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Lars Ingebrigtsen , Alan Third 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: -0.3 (/) Angelo Graziosi writes: > Which build? Nextstep (--with-ns) or Mac (--with-mac)? > > Just for the record.. the Mac build (source from > https://bitbucket.org/mituharu/emacs-mac/src/work, about March 14) > DOES HAVE the scrollbars! It is 28.0.92 Mac-patched source. Unfortunately that doesn't help much, since the Carbon ("Mac") port has been maintained externally by its original developer since its removal in Emacs 23. I vaguely recall some drama regarding multi-tty changes... It descends from the port to Mac OS 8 or 9 that was at least part of Emacs 21. > The nextstep build (source from 28 branch, about March 27) DOES NOT > HAVE the scroll bars. What happens if you remove the #ifdefs from ns_update_window_end and its corresponding entry in ns_redisplay_interface? From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 30 17:53:12 2022 Received: (at 54623) by debbugs.gnu.org; 30 Mar 2022 21:53:12 +0000 Received: from localhost ([127.0.0.1]:37241 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZgFb-0004Qa-NV for submit@debbugs.gnu.org; Wed, 30 Mar 2022 17:53:12 -0400 Received: from outbound.soverin.net ([116.202.126.228]:38383) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZgFZ-0004QJ-IO for 54623@debbugs.gnu.org; Wed, 30 Mar 2022 17:53:10 -0400 Received: from smtp.soverin.net (unknown [10.10.3.11]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 831A61F1; Wed, 30 Mar 2022 21:53:02 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [10.10.4.99]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1648677181; bh=GHqGSp0EJoVnq9UhNBIA3TYxSPZI3s29DVTjrZxSDsc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=pQqOw+o2yMwUzgNXaN6JiwZpzchahCZZq9wIDgHB4QtRDd0mstZxKsSlHMd2Ox4t3 uTJH5MMprXUeChAc7d8YuQdH7KHohi6qo5SnicbhogutXVXfTPByBv+TCQQHsY6/my efsEWswdc4QRosYOosuP1LU4USfMcEIQEgbvhk564bhgA4pTOZ9hLYkNttwbN/PpuT dbDktoI+m+dsP+EJa4aE+jZg1DcZrjhHNF2IMXRGCJuqaFO+ZJ6pYDTeplL/Td/0cd pVnb6EruCAgacwfVbTJlgvN4ASuTBhAUi6a6XEL3nUQ2QlvSqAV7LXRky99H57lD/P M1etyHPKHzvcg== Received: from alan by faroe.holly.idiocy.org with local (Exim 4.95) (envelope-from ) id 1nZgFP-000DQZ-JC; Wed, 30 Mar 2022 22:52:59 +0100 Date: Wed, 30 Mar 2022 22:52:59 +0100 From: Alan Third To: Lars Ingebrigtsen Subject: Re: bug#54623: No scroll bars on macOS builds Message-ID: Mail-Followup-To: Alan Third , Lars Ingebrigtsen , Angelo Graziosi , 54623@debbugs.gnu.org References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="tpRACxC3DaU3rpSp" Content-Disposition: inline In-Reply-To: <875ynxapxv.fsf@gnus.org> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Angelo Graziosi 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.7 (-) --tpRACxC3DaU3rpSp Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Tue, Mar 29, 2022 at 02:44:28PM +0200, Lars Ingebrigtsen wrote: > Angelo Graziosi writes: > > > Emacs builds on macOS 10.13.6 do not show scroll bars even if both > > vertical and horizontal ones are enabled. The attached screenshot > > refers to 'Emacs -Q'. > > I can't reproduce this on Macos 12.1. I can't reproduce it on 10.14 either. I suspect it's some subtle difference in layer handling between 10.13 and 10.14+. > > The first build in which scroll bars are gone or hidden looks > > > > 2) > > commit: a4d2c88cdee90a3e4863a62c4ff69896d0c1a347 > > Alan Third 2021-07-31 11:13:05 +0100 > > Simplify macOS drawing code > > Perhaps Alan has some comments; added to the CCs. Maybe the attached will help. -- Alan Third --tpRACxC3DaU3rpSp Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-Fix-scrollbars-on-macOS-10.13-and-below-bug-54623.patch" >From aef95a32f2260fdadbbd0903b5d3bb0b1220a9db Mon Sep 17 00:00:00 2001 From: Alan Third Date: Wed, 30 Mar 2022 22:40:03 +0100 Subject: [PATCH] Fix scrollbars on macOS 10.13 and below (bug#54623) * src/nsterm.h (NSAppKitVersionNumber10_14): Required for makeBackingLayer version check. * src/nsterm.m (USING_EMACSLAYER): Check whether we're using layers and whether the layer is an EmacsLayer class. ([EmacsView makeBackingLayer]): Only use EmacsLayer on macOS 10.14 and above. ([EmacsView lockFocus]): ([EmacsView unlockFocus]): ([EmacsView windowDidChangeBackingProperties:]): ([EmacsView copyRect:to:]): Replace check for wantsLayer with USING_EMACSLAYER. --- src/nsterm.h | 4 ++++ src/nsterm.m | 26 +++++++++++++++++--------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/nsterm.h b/src/nsterm.h index f027646123..ea92d8e893 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -1239,6 +1239,10 @@ #define NSAppKitVersionNumber10_7 1138 #ifndef NSAppKitVersionNumber10_10 #define NSAppKitVersionNumber10_10 1343 #endif + +#ifndef NSAppKitVersionNumber10_14 +#define NSAppKitVersionNumber10_14 1671 +#endif #endif /* NS_IMPL_COCOA */ diff --git a/src/nsterm.m b/src/nsterm.m index fd56094c28..b9ae512011 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -5954,6 +5954,9 @@ - (BOOL)fulfillService: (NSString *)name withArg: (NSString *)arg @implementation EmacsView +#define USING_EMACSLAYER \ + ([self wantsLayer] && [[self layer] isKindOfClass:[EmacsLayer class]]) + /* Needed to inform when window closed from lisp. */ - (void) setWindowClosing: (BOOL)closing { @@ -7864,12 +7867,17 @@ - (instancetype)toggleToolbar: (id)sender #ifdef NS_IMPL_COCOA - (CALayer *)makeBackingLayer; { - EmacsLayer *l = [[EmacsLayer alloc] - initWithColorSpace:[[[self window] colorSpace] CGColorSpace]]; - [l setDelegate:(id)self]; - [l setContentsScale:[[self window] backingScaleFactor]]; + if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_14) + { + EmacsLayer *l = [[EmacsLayer alloc] + initWithColorSpace:[[[self window] colorSpace] CGColorSpace]]; + [l setDelegate:(id)self]; + [l setContentsScale:[[self window] backingScaleFactor]]; + + return l; + } - return l; + return [super makeBackingLayer]; } @@ -7877,7 +7885,7 @@ - (void)lockFocus { NSTRACE ("[EmacsView lockFocus]"); - if ([self wantsLayer]) + if (USING_EMACSLAYER) { CGContextRef context = [(EmacsLayer*)[self layer] getContext]; @@ -7897,7 +7905,7 @@ - (void)unlockFocus { NSTRACE ("[EmacsView unlockFocus]"); - if ([self wantsLayer]) + if (USING_EMACSLAYER) { [NSGraphicsContext setCurrentContext:nil]; [self setNeedsDisplay:YES]; @@ -7917,7 +7925,7 @@ - (void)windowDidChangeBackingProperties:(NSNotification *)notification { NSTRACE ("EmacsView windowDidChangeBackingProperties:]"); - if ([self wantsLayer]) + if (USING_EMACSLAYER) { NSRect frame = [self frame]; EmacsLayer *layer = (EmacsLayer *)[self layer]; @@ -7942,7 +7950,7 @@ - (void)copyRect:(NSRect)srcRect to:(NSPoint)dest NSHeight (srcRect)); #ifdef NS_IMPL_COCOA - if ([self wantsLayer]) + if (USING_EMACSLAYER) { double scale = [[self window] backingScaleFactor]; CGContextRef context = [(EmacsLayer *)[self layer] getContext]; -- 2.35.1 --tpRACxC3DaU3rpSp-- From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 30 17:57:46 2022 Received: (at control) by debbugs.gnu.org; 30 Mar 2022 21:57:46 +0000 Received: from localhost ([127.0.0.1]:37245 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZgK2-0004XM-Ej for submit@debbugs.gnu.org; Wed, 30 Mar 2022 17:57:46 -0400 Received: from quimby.gnus.org ([95.216.78.240]:47220) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZgK0-0004X8-Pe for control@debbugs.gnu.org; Wed, 30 Mar 2022 17:57:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=l/I7AH+/6hKAo/a4G2qV3gi1mjNW4FWPozektBidEh8=; b=PrS0yBigdcrSQtcq7uz+VSlISI utqNQxPYtz0zTDXyz2hQ/FlX1iZNirNZbyy4bmOPFeBLlRg7WqhDX7uQXVDVT1y3GLD+tcDljtyvD EchNsq+JWPxL8YgJ/cUMuFUpLO4hYgDVTLbsvuzJAOcR+Y19Rzt7N3UbO1TRc4vNU4lg=; Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nZgJs-0004FM-6X for control@debbugs.gnu.org; Wed, 30 Mar 2022 23:57:38 +0200 Date: Wed, 30 Mar 2022 23:57:34 +0200 Message-Id: <87lewr85o1.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #54623 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: tags 54623 + patch quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control 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: -3.3 (---) tags 54623 + patch quit From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 31 06:45:48 2022 Received: (at 54623) by debbugs.gnu.org; 31 Mar 2022 10:45:48 +0000 Received: from localhost ([127.0.0.1]:37999 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZsJI-0001AH-1Z for submit@debbugs.gnu.org; Thu, 31 Mar 2022 06:45:48 -0400 Received: from smtp-36-i2.italiaonline.it ([213.209.12.36]:46659 helo=libero.it) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZsJF-0001A2-R0 for 54623@debbugs.gnu.org; Thu, 31 Mar 2022 06:45:46 -0400 Received: from oxapps-34-151.iol.local ([10.101.8.197]) by smtp-36.iol.local with ESMTPA id ZsJ8nuRz4c2f5ZsJ8nHpP3; Thu, 31 Mar 2022 12:45:38 +0200 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1648723538; bh=GNlVHIJVNLG+AfYIAQakxMNy9d5jRv3irylUWalhxHY=; h=From; b=xClCW4HRAZy5ZcM5Q2km83vsm/TlKJi5GF14IKGVCgEpYitkT0QuPFf57oYSvcQuH 3FGbxx7SGJCxtuHG1cju7oJ1h7bnlcd0OJgQkMwzLwYghzsnQuW9pKJLFQ5HnnIKcu vBu92Niq7r8xgsD0GFy67eE8/QLzyIEKGEfpisprFPNkVpBU6Uerx6Q7AJHPo9DetC wvv8QH03+Vxwdk/kp1i+kHtQCae39VRB2iZjEXh/7oBIlioC8X/spw13JW8LSSFNnp gFun3g4s0rV6L8fCkJI4sJL5F5EZG71SDaU+DAGD1W/VDscR8K8OQ0Oiy4i8kG/dQH eclieJ78hrEpA== X-CNFS-Analysis: v=2.4 cv=Z6kpoFdA c=1 sm=1 tr=0 ts=62458652 cx=a_exe a=qF9nGDFUafVRGCS06ErEtQ==:117 a=zlL5DDtatYgA:10 a=1pep0PMDP0kA:10 a=8Iltb4K1J68qKQVtspoA:9 a=QEXdDO2ut3YA:10 a=6nNYv_mwgVS44gyKfeIA:9 a=e3xZQqpt7gsA:10 Date: Thu, 31 Mar 2022 12:45:38 +0200 (CEST) From: Angelo Graziosi To: Alan Third , Lars Ingebrigtsen Message-ID: <232238068.1610928.1648723538459@mail1.libero.it> In-Reply-To: References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> Subject: Re: bug#54623: No scroll bars on macOS builds MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_1610927_924375998.1648723538458" X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.5-Rev39 X-Originating-IP: 79.13.231.87 X-Originating-Client: open-xchange-appsuite x-libjamsun: AV1BvZ3IEfYyWtr5xyKaITudacQHbmKi x-libjamv: hfR2hfz5VQQ= X-CMAE-Envelope: MS4xfCYx4n7JxsoRtivMytzDqMwmRlMiXg3L0Mn4vTkCXkLPWuPNDDpdiLkH2MoWxOhE0wftaITGYbu+eXkjmdec67QENCGuy4BTgYxF66mehI+Kt83/TpuX PV5mty1oOmK76Vu9IlnQxkaiu5r3D0+HiJAxEIFTDTGjQm5ubw6iw3HUWYzAoOiXWj5L/Q45/320mr4uS/s3PShuoLWT3xKRn5n0N3akUPrswI5B+Yrsc51I jEPOcgbK6+vNKONb7GdgCA== X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@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: -0.8 (/) ------=_Part_1610927_924375998.1648723538458 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit > Il 30/03/2022 23:52 Alan Third ha scritto: > > I can't reproduce it on 10.14 either. I suspect it's some subtle > difference in layer handling between 10.13 and 10.14+. > > > Maybe the attached will help. No.. I am afraid... I applied it to current master and it builds but crashes when I try to start it. Attached the report that the system produces (it is taken with 'Emacs -Q', but the same occurs when I start Emacs in normal way, i.e. cliking the icon on the Dock). ------=_Part_1610927_924375998.1648723538458 Content-Type: application/x-bzip2; name=emacs-macOS-chrash-report.log.bz2 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=emacs-macOS-chrash-report.log.bz2 X-Part-Id: e1d20a4b4bfb4833ac865393e50182a3 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 ------=_Part_1610927_924375998.1648723538458-- From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 31 07:56:19 2022 Received: (at 54623) by debbugs.gnu.org; 31 Mar 2022 11:56:19 +0000 Received: from localhost ([127.0.0.1]:38130 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZtPW-0007m6-R9 for submit@debbugs.gnu.org; Thu, 31 Mar 2022 07:56:19 -0400 Received: from quimby.gnus.org ([95.216.78.240]:53424) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZtPU-0007lm-RR for 54623@debbugs.gnu.org; Thu, 31 Mar 2022 07:56:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=dXL5z4L4VZyO54fZfMEe0HwUZxMTyasWeJKjiytuYMo=; b=Glk4RAOssggVOCb4vC9MMHvju+ QtJw+fNONBlKHTQj9+rBDwMPCZx1bvpFeg9XnWjI+uwjd4hg4Uo/3vP4jTmfUW8Np8OAhnj+8DxSE DwMfwdIQGk8PnAif7ctlxd4syNVJlBkM9dgzpDGwQKclQH5MRpzw9Vln00tB6CGgWIME=; Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nZtPL-0003E1-70; Thu, 31 Mar 2022 13:56:09 +0200 From: Lars Ingebrigtsen To: Angelo Graziosi Subject: Re: bug#54623: No scroll bars on macOS builds References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> <1929736152.572774.1648583627143@mail1.libero.it> Date: Thu, 31 Mar 2022 13:56:05 +0200 In-Reply-To: <1929736152.572774.1648583627143@mail1.libero.it> (Angelo Graziosi's message of "Tue, 29 Mar 2022 21:53:47 +0200 (CEST)") Message-ID: <875ynu72ui.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Angelo Graziosi writes: > Which build? Nextstep (--with-ns) or Mac (--with-mac)? I can never remember which is which. I don't say either, but I end up with: Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Alan Third 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: -3.3 (---) Angelo Graziosi writes: > Which build? Nextstep (--with-ns) or Mac (--with-mac)? I can never remember which is which. I don't say either, but I end up with: In GNU Emacs 29.0.50 (build 2, aarch64-apple-darwin21.2.0, NS appkit-2113.20 Ve\ rsion 12.1 (Build 21C52)) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 31 12:43:23 2022 Received: (at 54623) by debbugs.gnu.org; 31 Mar 2022 16:43:23 +0000 Received: from localhost ([127.0.0.1]:39638 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZxtK-00033m-M8 for submit@debbugs.gnu.org; Thu, 31 Mar 2022 12:43:23 -0400 Received: from outbound.soverin.net ([116.202.126.228]:57023) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZxtH-00033T-C8 for 54623@debbugs.gnu.org; Thu, 31 Mar 2022 12:43:20 -0400 Received: from smtp.soverin.net (unknown [10.10.3.11]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 99982316; Thu, 31 Mar 2022 16:43:12 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [10.10.4.100]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1648744992; bh=0YyUz+YD49sUYIuCjx8k2JTULlS0Vx+JPQy0/16UtkM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=l9ESr5o42MU/eble0StHEAOQ3et6o3VkXJFOw3XOXBlEhJ7lPuIEkFFyfMpEziREG 4Y5HDJoNZEONw9W8FXX8XhvhIYfSBXCyAylfcxOsm3VF25+92bpIxWLNYTqeFOtj9K cT7JVzqu2fo+Av0jrCxXC1tABlgPfPeMPrxqjJa1qwBo39gIwAt0I3GatJdGuUpCyL aRqVLWQQnz/Lp2/5tV8eZpMCUSKdQnJew28dcVTc4hs9/gs3WSLZnbB+a9lwES3OWP w15jkCtc+YFvINDt3uBO8xVKdxyhywICyPtLebCd3ZKQLppxBOLKw8jQ64785JD7oN XpfI55ru2uPjg== Received: from alan by faroe.holly.idiocy.org with local (Exim 4.95) (envelope-from ) id 1nZxt7-000Dxa-KG; Thu, 31 Mar 2022 17:43:09 +0100 Date: Thu, 31 Mar 2022 17:43:09 +0100 From: Alan Third To: Angelo Graziosi Subject: Re: bug#54623: No scroll bars on macOS builds Message-ID: Mail-Followup-To: Alan Third , Angelo Graziosi , Lars Ingebrigtsen , 54623@debbugs.gnu.org References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> <232238068.1610928.1648723538459@mail1.libero.it> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="AC3/Je72P5+wH3hi" Content-Disposition: inline In-Reply-To: <232238068.1610928.1648723538459@mail1.libero.it> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Lars Ingebrigtsen 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.7 (-) --AC3/Je72P5+wH3hi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, Mar 31, 2022 at 12:45:38PM +0200, Angelo Graziosi wrote: > > Il 30/03/2022 23:52 Alan Third ha scritto: > > > > I can't reproduce it on 10.14 either. I suspect it's some subtle > > difference in layer handling between 10.13 and 10.14+. > > > > > > Maybe the attached will help. > > No.. I am afraid... > > I applied it to current master and it builds but crashes when I try to start it. > > Attached the report that the system produces (it is taken with 'Emacs -Q', but the same occurs when I start Emacs in normal way, i.e. cliking the icon on the Dock). Can you try the new version attached to this email, please? -- Alan Third --AC3/Je72P5+wH3hi Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v2-0001-Fix-scrollbars-on-macOS-10.13-and-below-bug-54623.patch" >From ea124ec1849c4f800a8e0a81be41ed195853d0de Mon Sep 17 00:00:00 2001 From: Alan Third Date: Wed, 30 Mar 2022 22:40:03 +0100 Subject: [PATCH v2] Fix scrollbars on macOS 10.13 and below (bug#54623) * src/nsterm.h (NSAppKitVersionNumber10_14): Required for makeBackingLayer version check. * src/nsterm.m (USING_EMACSLAYER): Check whether we're using layers and whether the layer is an EmacsLayer class. ([EmacsView makeBackingLayer]): Only use EmacsLayer on macOS 10.14 and above. ([EmacsView lockFocus]): ([EmacsView unlockFocus]): ([EmacsView windowDidChangeBackingProperties:]): ([EmacsView copyRect:to:]): Replace check for wantsLayer with USING_EMACSLAYER. ([EmacsView unlockFocus]): Remove call to flushWindow. --- src/nsterm.h | 4 ++++ src/nsterm.m | 31 ++++++++++++++++++------------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/nsterm.h b/src/nsterm.h index f027646123..ea92d8e893 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -1239,6 +1239,10 @@ #define NSAppKitVersionNumber10_7 1138 #ifndef NSAppKitVersionNumber10_10 #define NSAppKitVersionNumber10_10 1343 #endif + +#ifndef NSAppKitVersionNumber10_14 +#define NSAppKitVersionNumber10_14 1671 +#endif #endif /* NS_IMPL_COCOA */ diff --git a/src/nsterm.m b/src/nsterm.m index fd56094c28..4b4ca44981 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -5954,6 +5954,9 @@ - (BOOL)fulfillService: (NSString *)name withArg: (NSString *)arg @implementation EmacsView +#define USING_EMACSLAYER \ + ([self wantsLayer] && [[self layer] isKindOfClass:[EmacsLayer class]]) + /* Needed to inform when window closed from lisp. */ - (void) setWindowClosing: (BOOL)closing { @@ -7864,12 +7867,17 @@ - (instancetype)toggleToolbar: (id)sender #ifdef NS_IMPL_COCOA - (CALayer *)makeBackingLayer; { - EmacsLayer *l = [[EmacsLayer alloc] - initWithColorSpace:[[[self window] colorSpace] CGColorSpace]]; - [l setDelegate:(id)self]; - [l setContentsScale:[[self window] backingScaleFactor]]; + if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_14) + { + EmacsLayer *l = [[EmacsLayer alloc] + initWithColorSpace:[[[self window] colorSpace] CGColorSpace]]; + [l setDelegate:(id)self]; + [l setContentsScale:[[self window] backingScaleFactor]]; + + return l; + } - return l; + return [super makeBackingLayer]; } @@ -7877,7 +7885,7 @@ - (void)lockFocus { NSTRACE ("[EmacsView lockFocus]"); - if ([self wantsLayer]) + if (USING_EMACSLAYER) { CGContextRef context = [(EmacsLayer*)[self layer] getContext]; @@ -7897,17 +7905,14 @@ - (void)unlockFocus { NSTRACE ("[EmacsView unlockFocus]"); - if ([self wantsLayer]) + if (USING_EMACSLAYER) { [NSGraphicsContext setCurrentContext:nil]; [self setNeedsDisplay:YES]; } #if MAC_OS_X_VERSION_MIN_REQUIRED < 101400 else - { - [super unlockFocus]; - [super flushWindow]; - } + [super unlockFocus]; #endif } @@ -7917,7 +7922,7 @@ - (void)windowDidChangeBackingProperties:(NSNotification *)notification { NSTRACE ("EmacsView windowDidChangeBackingProperties:]"); - if ([self wantsLayer]) + if (USING_EMACSLAYER) { NSRect frame = [self frame]; EmacsLayer *layer = (EmacsLayer *)[self layer]; @@ -7942,7 +7947,7 @@ - (void)copyRect:(NSRect)srcRect to:(NSPoint)dest NSHeight (srcRect)); #ifdef NS_IMPL_COCOA - if ([self wantsLayer]) + if (USING_EMACSLAYER) { double scale = [[self window] backingScaleFactor]; CGContextRef context = [(EmacsLayer *)[self layer] getContext]; -- 2.35.1 --AC3/Je72P5+wH3hi-- From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 31 16:06:29 2022 Received: (at 54623) by debbugs.gnu.org; 31 Mar 2022 20:06:29 +0000 Received: from localhost ([127.0.0.1]:39925 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1na13p-0008TT-VL for submit@debbugs.gnu.org; Thu, 31 Mar 2022 16:06:29 -0400 Received: from outbound.soverin.net ([116.202.126.228]:44573) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1na13o-0008TG-0A for 54623@debbugs.gnu.org; Thu, 31 Mar 2022 16:06:24 -0400 Received: from smtp.soverin.net (unknown [10.10.3.11]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 988AA84C; Thu, 31 Mar 2022 20:06:17 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [10.10.4.100]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1648757177; bh=nPeOAb+aAKFheTiTz4GUtlZM+FJP0b9qb/KB1XDjA4o=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Yt+PAzj5BAZ3WQ68iMapqXKbrAt0DOgZI6tRX8G7ABLSOnhHdLkqZPCDA4fXl9AHY zKCFW2ULqTi2Kth8/gPy8ED25KrRdaEZyyw0tnyLCBN2n7vR94srd7+gQMkmF9qkmg WPH2faaHuyMGgZVd9BpBg+ZEwOI8sCvnJukoAP4nyo4rEddmr1Nx4nx8VHf1dPUCiW pbcM4zlKBKHdsjkUexnfDa6d8dM3WXcuBcg20tIrm7lwjj8LMWPyM0dYIcO1MUrQH2 OH1mmZhnQcvQ30pG4zarAMXkWFWjRa8NuycXs68nO6S363qMWSQsrn/K3geY24QIQ1 MmoNqRK6H54mA== Received: from alan by faroe.holly.idiocy.org with local (Exim 4.95) (envelope-from ) id 1na13d-000EBq-Pb; Thu, 31 Mar 2022 21:06:13 +0100 Date: Thu, 31 Mar 2022 21:06:13 +0100 From: Alan Third To: Lars Ingebrigtsen Subject: Re: bug#54623: No scroll bars on macOS builds Message-ID: Mail-Followup-To: Alan Third , Lars Ingebrigtsen , Angelo Graziosi , 54623@debbugs.gnu.org References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> <1929736152.572774.1648583627143@mail1.libero.it> <875ynu72ui.fsf@gnus.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <875ynu72ui.fsf@gnus.org> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Angelo Graziosi 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.7 (-) On Thu, Mar 31, 2022 at 01:56:05PM +0200, Lars Ingebrigtsen wrote: > Angelo Graziosi writes: > > > Which build? Nextstep (--with-ns) or Mac (--with-mac)? > > I can never remember which is which. I don't say either, but I end up > with: > > In GNU Emacs 29.0.50 (build 2, aarch64-apple-darwin21.2.0, NS appkit-2113.20 Ve\ > rsion 12.1 (Build 21C52)) You're using the NS port. You have to go out of your way to get the Mac port, it's the one Mitsuharu Yamamoto maintains. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 31 18:27:35 2022 Received: (at 54623) by debbugs.gnu.org; 31 Mar 2022 22:27:35 +0000 Received: from localhost ([127.0.0.1]:40086 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1na3GQ-0003fw-V2 for submit@debbugs.gnu.org; Thu, 31 Mar 2022 18:27:35 -0400 Received: from smtp-33-i2.italiaonline.it ([213.209.12.33]:50681 helo=libero.it) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1na3GO-0003fh-56 for 54623@debbugs.gnu.org; Thu, 31 Mar 2022 18:27:33 -0400 Received: from oxapps-10-058.iol.local ([10.101.8.68]) by smtp-33.iol.local with ESMTPA id a3GHnmgSvFZB1a3GHnySMR; Fri, 01 Apr 2022 00:27:25 +0200 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1648765645; bh=xWZ6vgCq1Zxj0MVfNWEjUsXJrrbfMnZfRZl9+hER/JI=; h=From; b=eTeUE5WZ4F8GRKAHvb4p+Gz2iWpELQfFval8LwPPsOjQ4eVNcYZPB1TnuqJyO8+St G7FejhycneErOok8e/GTyrL82rqsPMqfG7Le1IkgA6dEXrWMc9ae/YiGdJoWuo8oGr naDyEjXiKWIb/ssT5zl97WRdZtMhq2r2VPzGQikIEEJ03HzZDNywPz38gj1Lr29sRE UvkVrRWAAS15DSBGA9Q/JwcWI4uYPkjAZCe0K6q5F19oWN6N+Q/nUujyA1GT4/Skai lI+ROfyM7/mBsWJ5nu35ESKha2XxZzBB6+cYP+piYp1vWNiK0uU1Sx8rRASOTX7YWd dyiEtjaue27ZQ== X-CNFS-Analysis: v=2.4 cv=AJzWTkRL c=1 sm=1 tr=0 ts=62462acd cx=a_exe a=Nb5dH71N9AXjcDCStLJluw==:117 a=zlL5DDtatYgA:10 a=IkcTkHD0fZMA:10 a=1pep0PMDP0kA:10 a=vWfovsj9azNPTJbk4Q4A:9 a=QEXdDO2ut3YA:10 Date: Fri, 1 Apr 2022 00:27:25 +0200 (CEST) From: Angelo Graziosi To: Alan Third Message-ID: <1573705019.892210.1648765645434@mail1.libero.it> In-Reply-To: References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> <232238068.1610928.1648723538459@mail1.libero.it> Subject: Re: bug#54623: No scroll bars on macOS builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.5-Rev39 X-Originating-IP: 79.13.231.87 X-Originating-Client: open-xchange-appsuite x-libjamsun: 4wmDFHtaBzZl8DT/BsyhfULgc3s2pR5F x-libjamv: Cu+v66WbEns= X-CMAE-Envelope: MS4xfAbCA38A4bG/1mWTJwvV3PZrVN6TRkKn9AOfyhyYO65+cEcxjjedl1mp5Gst9U8KuFE8Aad238DdHaxeZB+0QqLNpw8RCuvLFwcylffxBWWa+gV1QgUM fhInimTP2E5hRG3LpG3SgXco142/dzsmCrnufLbhptxJ4KfQjhFrbHHL/nnGnWl8sRegLYGmNPhGnJHWv9CI8AQq7ujS2F8OwRb4GnYuMZboTpWpQgDpexM2 FB2ZTlw27V5RdwDEArjoMA== X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Lars Ingebrigtsen 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: -0.8 (/) > Il 31/03/2022 18:43 Alan Third ha scritto: > > > Can you try the new version attached to this email, please? > Now Emacs builds and does not crash but DOES NOT work and still NO scroll bars: - when scrolling the text moving the mouse wheel the bottom lines remain fixed and then after a while the window contains garbage. - trying to use C-x C-f, M-x ... does not work, no minibuffer opens: it continues to display the text "For information about..." - trying to select text with the mouse (mouse-1 and dragging) does not work... From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 31 18:31:35 2022 Received: (at 54623) by debbugs.gnu.org; 31 Mar 2022 22:31:36 +0000 Received: from localhost ([127.0.0.1]:40095 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1na3KJ-0003oN-Mn for submit@debbugs.gnu.org; Thu, 31 Mar 2022 18:31:35 -0400 Received: from smtp-16-i2.italiaonline.it ([213.209.12.16]:34620 helo=libero.it) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1na3KH-0003o4-Gh for 54623@debbugs.gnu.org; Thu, 31 Mar 2022 18:31:34 -0400 Received: from oxapps-10-058.iol.local ([10.101.8.68]) by smtp-16.iol.local with ESMTPA id a3KBne6cYxXfVa3KBnFWAa; Fri, 01 Apr 2022 00:31:27 +0200 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1648765887; bh=CdKfrQC3ZqNeul1zUzaDG5ca3bDsfXkpcRkNLHyu1Co=; h=From; b=vuvMfV6tVAno1OuzeZSss3xqDChHqmdcVxH6q6kQQTZ2d1h28hcaZEyM/Lwe82CyM CZmQQKTqm5YAjHcGXqZhPyR/vnKTv/J6zmwMHtC5Htxe02a/R5FuD/2s1ix4bhrgtg PWTMxTd+8jX4lr3TigKXE+tEDXPzLnrLKy704MFnP/9RERMRZnwMYhtGz01yZ1XBaw nZUWPj0ctXIyiR23J3swEigjCQOY+nLX2nU56x7puerHKdH/dr+GhubLFS8xGr5wZP /UW8PKmvlcplTpIGOdVAfzAhBVYy8+k8EFpRywoe1DKIPaSGEZPYk/O/MEc1AtPoBJ kLGQyg4//EDVw== X-CNFS-Analysis: v=2.4 cv=XoI/hXJ9 c=1 sm=1 tr=0 ts=62462bbf cx=a_exe a=Nb5dH71N9AXjcDCStLJluw==:117 a=zlL5DDtatYgA:10 a=IkcTkHD0fZMA:10 a=1pep0PMDP0kA:10 a=tlPmIm5H-os7s6wp1Q4A:9 a=QEXdDO2ut3YA:10 Date: Fri, 1 Apr 2022 00:31:27 +0200 (CEST) From: Angelo Graziosi To: Alan Third , Lars Ingebrigtsen Message-ID: <14933753.892240.1648765887233@mail1.libero.it> In-Reply-To: References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> <1929736152.572774.1648583627143@mail1.libero.it> <875ynu72ui.fsf@gnus.org> Subject: Re: bug#54623: No scroll bars on macOS builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.5-Rev39 X-Originating-IP: 79.13.231.87 X-Originating-Client: open-xchange-appsuite x-libjamsun: 2E0LGzys2/lvYnQjAagJiGSBbrqDnKrf x-libjamv: gk9icgRRc4U= X-CMAE-Envelope: MS4xfBqstBHp/edoa4AhshQLMRmQYM0aoWiYwmjFufQE7eiA9kRfuDYEPtxy4WW3VjwyeoaVlvcWYJ94Ic7RGrGCAt3O42KfyRB5vVQjhPRO0tkWrtOYjgwT UZseLhniJ1wPlv9AN2AZaXJnMsuTqJ0S1txOKHVglnj4OYdM5t7cy+81BvrIUL8RY4RfwmpYSKe3hsRX3R3q4NOedspeR3cNERkwIIPFYR7R/KyKA/zrFRp+ gtV7Tq0ZimbdZ0FtMSUZtQ== X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@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: -0.8 (/) > Il 31/03/2022 22:06 Alan Third ha scritto: > > > On Thu, Mar 31, 2022 at 01:56:05PM +0200, Lars Ingebrigtsen wrote: > > Angelo Graziosi writes: > > > > > Which build? Nextstep (--with-ns) or Mac (--with-mac)? > > > > I can never remember which is which. I don't say either, but I end up > > with: > > > > In GNU Emacs 29.0.50 (build 2, aarch64-apple-darwin21.2.0, NS appkit-2113.20 Ve\ > > rsion 12.1 (Build 21C52)) > > You're using the NS port. You have to go out of your way to get the > Mac port, it's the one Mitsuharu Yamamoto maintains. BTW, how to build Emacs master using Mac Port? It seems that for Mac port "master" means "emacs-27", "work" means "emacs-28"... From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 01 17:00:10 2022 Received: (at 54623) by debbugs.gnu.org; 1 Apr 2022 21:00:10 +0000 Received: from localhost ([127.0.0.1]:43720 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1naONN-0008Oz-Ge for submit@debbugs.gnu.org; Fri, 01 Apr 2022 17:00:10 -0400 Received: from outbound.soverin.net ([116.202.126.228]:46639) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1naONK-0008Mj-7P for 54623@debbugs.gnu.org; Fri, 01 Apr 2022 17:00:08 -0400 Received: from smtp.soverin.net (unknown [10.10.3.11]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 0149F316; Fri, 1 Apr 2022 20:59:59 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [10.10.4.99]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1648846798; bh=BZTxnpVdxOt9QPhlKso8erdZF305T8hDOEgRKja/56w=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=MQ62wFP617xYQom9n0P0lK/FHWA4KxB9uxCHrLJBGDlp4yi5yDHD3DtgfvDiDrvK0 h4JZxGaxIfb8gk2V0cp4ycbtTsEsrrXv8GKtXFHqW/083Ac+Lhctr+mLEyx4JLqzYW +c545N8FhWSq0ilpuVhl6HTbdMBRz40XasJoaJn9374hnnlyPqnu1Go7ykINgiVFIG LVZZY2A8EQVlWoX6Su1uEZ7EdJouARsqw+Yen+COwgN+dEDSFL314UdygwbFwty7ro 2Ip+blKlppSWqBjp4q/B2r79b4BDXJ2bHU9L2ZsqT6sYquNVGFG/IAhdfTEl6yUle+ dostPDRpT0zEA== Received: from alan by faroe.holly.idiocy.org with local (Exim 4.95) (envelope-from ) id 1naON9-000FxL-JT; Fri, 01 Apr 2022 21:59:55 +0100 Date: Fri, 1 Apr 2022 21:59:55 +0100 From: Alan Third To: Angelo Graziosi Subject: Re: bug#54623: No scroll bars on macOS builds Message-ID: Mail-Followup-To: Alan Third , Angelo Graziosi , Lars Ingebrigtsen , 54623@debbugs.gnu.org References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> <232238068.1610928.1648723538459@mail1.libero.it> <1573705019.892210.1648765645434@mail1.libero.it> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="lXzSqaM7yJitLI9P" Content-Disposition: inline In-Reply-To: <1573705019.892210.1648765645434@mail1.libero.it> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Lars Ingebrigtsen 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.7 (-) --lXzSqaM7yJitLI9P Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Apr 01, 2022 at 12:27:25AM +0200, Angelo Graziosi wrote: > > > Il 31/03/2022 18:43 Alan Third ha scritto: > > > > > > Can you try the new version attached to this email, please? > > > > Now Emacs builds and does not crash but DOES NOT work and still NO scroll bars: > > - when scrolling the text moving the mouse wheel the bottom lines remain fixed and then after a while the window contains garbage. > > - trying to use C-x C-f, M-x ... does not work, no minibuffer opens: it continues to display the text "For information about..." > > - trying to select text with the mouse (mouse-1 and dragging) does not work... What about the attached? -- Alan Third --lXzSqaM7yJitLI9P Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v3-0001-Fix-scrollbars-on-macOS-10.13-and-below-bug-54623.patch" >From be1e1165c94533ac47584639b544fd24acec284a Mon Sep 17 00:00:00 2001 From: Alan Third Date: Wed, 30 Mar 2022 22:40:03 +0100 Subject: [PATCH v3] Fix scrollbars on macOS 10.13 and below (bug#54623) Make any build on macOS 10.13 and below follow the same drawing path as the GNUstep port. macOS 10.14 and above will use EmacsLayer. * src/nsterm.h (EmacsLayer): * src/nsterm.m ([EmacsView makeBackingLayer]): ([EmacsView unlockFocus]): ([EmacsView windowDidChangeBackingProperties:]): ([EmacsView copyRect:to:]): Remove any code required for macOS 10.13 and below, and fix the #if's to enforce strict separation of the drawing paths. --- src/nsterm.h | 2 +- src/nsterm.m | 124 +++++++++++++++++++-------------------------------- 2 files changed, 47 insertions(+), 79 deletions(-) diff --git a/src/nsterm.h b/src/nsterm.h index f027646123..8452f3b3fa 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -698,7 +698,7 @@ #define NSTRACE_UNSILENCE() + (CGFloat)scrollerWidth; @end -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 @interface EmacsLayer : CALayer { NSMutableArray *cache; diff --git a/src/nsterm.m b/src/nsterm.m index fd56094c28..2b98fb9489 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -7197,7 +7197,7 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f [[EmacsWindow alloc] initWithEmacsFrame:f]; -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 /* These settings mean AppKit will retain the contents of the frame on resize. Unfortunately it also means the frame will not be automatically marked for display, but we can do that ourselves in @@ -7861,7 +7861,7 @@ - (instancetype)toggleToolbar: (id)sender } -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 10140 - (CALayer *)makeBackingLayer; { EmacsLayer *l = [[EmacsLayer alloc] @@ -7877,19 +7877,12 @@ - (void)lockFocus { NSTRACE ("[EmacsView lockFocus]"); - if ([self wantsLayer]) - { - CGContextRef context = [(EmacsLayer*)[self layer] getContext]; + CGContextRef context = [(EmacsLayer*)[self layer] getContext]; - [NSGraphicsContext + [NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithCGContext:context flipped:YES]]; - } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - else - [super lockFocus]; -#endif } @@ -7897,18 +7890,8 @@ - (void)unlockFocus { NSTRACE ("[EmacsView unlockFocus]"); - if ([self wantsLayer]) - { - [NSGraphicsContext setCurrentContext:nil]; - [self setNeedsDisplay:YES]; - } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - else - { - [super unlockFocus]; - [super flushWindow]; - } -#endif + [NSGraphicsContext setCurrentContext:nil]; + [self setNeedsDisplay:YES]; } @@ -7917,19 +7900,16 @@ - (void)windowDidChangeBackingProperties:(NSNotification *)notification { NSTRACE ("EmacsView windowDidChangeBackingProperties:]"); - if ([self wantsLayer]) - { - NSRect frame = [self frame]; - EmacsLayer *layer = (EmacsLayer *)[self layer]; + NSRect frame = [self frame]; + EmacsLayer *layer = (EmacsLayer *)[self layer]; - [layer setContentsScale:[[notification object] backingScaleFactor]]; - [layer setColorSpace:[[[notification object] colorSpace] CGColorSpace]]; + [layer setContentsScale:[[notification object] backingScaleFactor]]; + [layer setColorSpace:[[[notification object] colorSpace] CGColorSpace]]; - ns_clear_frame (emacsframe); - expose_frame (emacsframe, 0, 0, NSWidth (frame), NSHeight (frame)); - } + ns_clear_frame (emacsframe); + expose_frame (emacsframe, 0, 0, NSWidth (frame), NSHeight (frame)); } -#endif /* NS_IMPL_COCOA */ +#endif - (void)copyRect:(NSRect)srcRect to:(NSPoint)dest @@ -7941,57 +7921,45 @@ - (void)copyRect:(NSRect)srcRect to:(NSPoint)dest NSRect dstRect = NSMakeRect (dest.x, dest.y, NSWidth (srcRect), NSHeight (srcRect)); -#ifdef NS_IMPL_COCOA - if ([self wantsLayer]) - { - double scale = [[self window] backingScaleFactor]; - CGContextRef context = [(EmacsLayer *)[self layer] getContext]; - int bpp = CGBitmapContextGetBitsPerPixel (context) / 8; - void *pixels = CGBitmapContextGetData (context); - int rowSize = CGBitmapContextGetBytesPerRow (context); - int srcRowSize = NSWidth (srcRect) * scale * bpp; - void *srcPixels = (char *) pixels - + (int) (NSMinY (srcRect) * scale * rowSize - + NSMinX (srcRect) * scale * bpp); - void *dstPixels = (char *) pixels - + (int) (dest.y * scale * rowSize - + dest.x * scale * bpp); - - if (NSIntersectsRect (srcRect, dstRect) - && NSMinY (srcRect) < NSMinY (dstRect)) - for (int y = NSHeight (srcRect) * scale - 1 ; y >= 0 ; y--) - memmove ((char *) dstPixels + y * rowSize, - (char *) srcPixels + y * rowSize, - srcRowSize); - else - for (int y = 0 ; y < NSHeight (srcRect) * scale ; y++) - memmove ((char *) dstPixels + y * rowSize, - (char *) srcPixels + y * rowSize, - srcRowSize); - - } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400 +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 + double scale = [[self window] backingScaleFactor]; + CGContextRef context = [(EmacsLayer *)[self layer] getContext]; + int bpp = CGBitmapContextGetBitsPerPixel (context) / 8; + void *pixels = CGBitmapContextGetData (context); + int rowSize = CGBitmapContextGetBytesPerRow (context); + int srcRowSize = NSWidth (srcRect) * scale * bpp; + void *srcPixels = (char *) pixels + + (int) (NSMinY (srcRect) * scale * rowSize + + NSMinX (srcRect) * scale * bpp); + void *dstPixels = (char *) pixels + + (int) (dest.y * scale * rowSize + + dest.x * scale * bpp); + + if (NSIntersectsRect (srcRect, dstRect) + && NSMinY (srcRect) < NSMinY (dstRect)) + for (int y = NSHeight (srcRect) * scale - 1 ; y >= 0 ; y--) + memmove ((char *) dstPixels + y * rowSize, + (char *) srcPixels + y * rowSize, + srcRowSize); else - { -#endif -#endif /* NS_IMPL_COCOA */ + for (int y = 0 ; y < NSHeight (srcRect) * scale ; y++) + memmove ((char *) dstPixels + y * rowSize, + (char *) srcPixels + y * rowSize, + srcRowSize); -#if !defined (NS_IMPL_COCOA) || MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - hide_bell(); // Ensure the bell image isn't scrolled. +#else + hide_bell(); // Ensure the bell image isn't scrolled. - ns_focus (emacsframe, &dstRect, 1); - [self scrollRect: srcRect - by: NSMakeSize (dstRect.origin.x - srcRect.origin.x, - dstRect.origin.y - srcRect.origin.y)]; - ns_unfocus (emacsframe); -#endif -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - } + ns_focus (emacsframe, &dstRect, 1); + [self scrollRect: srcRect + by: NSMakeSize (dstRect.origin.x - srcRect.origin.x, + dstRect.origin.y - srcRect.origin.y)]; + ns_unfocus (emacsframe); #endif } -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 /* If the frame has been garbaged but the toolkit wants to draw, for example when resizing the frame, we end up with a blank screen. Sometimes this results in an unpleasant flicker, so try to @@ -9435,7 +9403,7 @@ - (void) scrollWheel: (NSEvent *)theEvent @end /* EmacsScroller */ -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 /* ========================================================================== -- 2.35.1 --lXzSqaM7yJitLI9P-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 01 18:37:43 2022 Received: (at 54623) by debbugs.gnu.org; 1 Apr 2022 22:37:43 +0000 Received: from localhost ([127.0.0.1]:43863 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1naPtm-0002Qd-V2 for submit@debbugs.gnu.org; Fri, 01 Apr 2022 18:37:43 -0400 Received: from smtp-32-i2.italiaonline.it ([213.209.12.32]:60798 helo=libero.it) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1naPtk-0002QK-Nw for 54623@debbugs.gnu.org; Fri, 01 Apr 2022 18:37:42 -0400 Received: from oxapps-34-151.iol.local ([10.101.8.197]) by smtp-32.iol.local with ESMTPA id aPtdn9MKeptnyaPtdnpA1h; Sat, 02 Apr 2022 00:37:34 +0200 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1648852654; bh=7tpsXaCkzs/QCtXN0NxXrog6bN2AP4riFRbEXoBm6xU=; h=From; b=QJ+/wbd7FiPly2piJdoC2E9cOC3a/NTIbY2A59QcyPfuiDrpXPofZPBngNSrkViMM OyFjnIkIWgm4P2DPhvZ4XEx0MUwR/xl1HMynd/fOOoSXMueYopoDK5bQWlcSb5zYRS m/FcvnVmdXRnHkjaNtvWfW89zbScNSPS/WCa1TsWVcaS21Z7tO42rQbeMHHYjpJMHN 8YP9cpEqeGo8qrk0LUFh7zjFARIEdrTxZIODvrtf+vH16K1jBW7aFlEi/vtgrAuZlN clvh/X3VTpuRNwKHtphOAOr0Z6i1I3MFwoZNHSDabyaVWT/db6D1nb0sOVAcUjd5zd WdMbeWoAOo+Ug== X-CNFS-Analysis: v=2.4 cv=fIX8YbWe c=1 sm=1 tr=0 ts=62477eae cx=a_exe a=qF9nGDFUafVRGCS06ErEtQ==:117 a=eUBgQfUpPccA:10 a=IkcTkHD0fZMA:10 a=EX8__BBlRnQA:10 a=aN7IGHpso4XPRhPqtdMA:9 a=QEXdDO2ut3YA:10 Date: Sat, 2 Apr 2022 00:37:33 +0200 (CEST) From: Angelo Graziosi To: Alan Third Message-ID: <855785195.1995564.1648852653736@mail1.libero.it> In-Reply-To: References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> <232238068.1610928.1648723538459@mail1.libero.it> <1573705019.892210.1648765645434@mail1.libero.it> Subject: Re: bug#54623: No scroll bars on macOS builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.5-Rev39 X-Originating-IP: 87.7.60.198 X-Originating-Client: open-xchange-appsuite x-libjamsun: ClHgU16NHol8S+Rw/ezCH7aomkNO8oZz x-libjamv: 7NhCqJgghqU= X-CMAE-Envelope: MS4xfEM9IcKWCFnximKSrUEYIGP6rM+jt5l8lKFCgwhJ4c0adT7DYR/N08Llh8u1vH+NvpyagWM6UZM6qGz4MWUeYTG1dfkyEPeWmSTiAivsVXmN6fBub2H5 Yzn/3zVk4/lmytpGTfgvD+F/BRu6fUMZ1UopYhcuIzEoaFtkhrQSoItmdQ2nnCD1maR/smIOyv0RbZqb0YjP4QjqMzeP+4sjX8LRgMt96bNlGkdlkFu9TYdw vEbjhwuIHaVS0SAfxc8TSw== X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Lars Ingebrigtsen 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: -0.8 (/) > Il 01/04/2022 22:59 Alan Third ha scritto: > > > On Fri, Apr 01, 2022 at 12:27:25AM +0200, Angelo Graziosi wrote: > > > > > Il 31/03/2022 18:43 Alan Third ha scritto: > > > > > > > > > Can you try the new version attached to this email, please? > > > > > > > Now Emacs builds and does not crash but DOES NOT work and still NO scroll bars: > > > > - when scrolling the text moving the mouse wheel the bottom lines remain fixed and then after a while the window contains garbage. > > > > - trying to use C-x C-f, M-x ... does not work, no minibuffer opens: it continues to display the text "For information about..." > > > > - trying to select text with the mouse (mouse-1 and dragging) does not work... > > What about the attached? WITHOUT it Emacs builds. WITH it Emacs fails to build: [...] GEN ../../etc/charsets/MULE-uviscii.map GEN ../../lisp/international/cp51932.el GEN ../../lisp/international/eucjp-ms.el GEN charsets.stamp /Applications/Xcode.app/Contents/Developer/usr/bin/make -C ../admin/unidata charscript.el GEN ../../lisp/international/charscript.el /Applications/Xcode.app/Contents/Developer/usr/bin/make -C ../admin/unidata emoji-zwj.el GEN ../../lisp/international/emoji-zwj.el CCLD temacs ld: warning: text-based stub file /System/Library/Frameworks//AppKit.framework/AppKit.tbd and library file /System/Library/Frameworks//AppKit.framework/AppKit are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//IOKit.framework/IOKit.tbd and library file /System/Library/Frameworks//IOKit.framework/IOKit are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//IOSurface.framework/IOSurface.tbd and library file /System/Library/Frameworks//IOSurface.framework/IOSurface are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//QuartzCore.framework/QuartzCore.tbd and library file /System/Library/Frameworks//QuartzCore.framework/QuartzCore are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation.tbd and library file /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//ApplicationServices.framework/Versions/A/ApplicationServices.tbd and library file /System/Library/Frameworks//ApplicationServices.framework/Versions/A/ApplicationServices are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//Foundation.framework/Versions/C/Foundation.tbd and library file /System/Library/Frameworks//Foundation.framework/Versions/C/Foundation are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels.tbd and library file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox.tbd and library file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help.tbd and library file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture.tbd and library file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink.tbd and library file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting.tbd and library file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print.tbd and library file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI.tbd and library file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition.tbd and library file /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//CoreImage.framework/Versions/A/CoreImage.tbd and library file /System/Library/Frameworks//CoreImage.framework/Versions/A/CoreImage are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//CoreVideo.framework/Versions/A/CoreVideo.tbd and library file /System/Library/Frameworks//CoreVideo.framework/Versions/A/CoreVideo are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//CoreFoundation.framework/Versions/A/CoreFoundation.tbd and library file /System/Library/Frameworks//CoreFoundation.framework/Versions/A/CoreFoundation are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//CoreGraphics.framework/Versions/A/CoreGraphics.tbd and library file /System/Library/Frameworks//CoreGraphics.framework/Versions/A/CoreGraphics are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//CoreText.framework/Versions/A/CoreText.tbd and library file /System/Library/Frameworks//CoreText.framework/Versions/A/CoreText are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//ImageIO.framework/Versions/A/ImageIO.tbd and library file /System/Library/Frameworks//ImageIO.framework/Versions/A/ImageIO are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//ColorSync.framework/Versions/A/ColorSync.tbd and library file /System/Library/Frameworks//ColorSync.framework/Versions/A/ColorSync are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS.tbd and library file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy.tbd and library file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//CoreServices.framework/Versions/A/CoreServices.tbd and library file /System/Library/Frameworks//CoreServices.framework/Versions/A/CoreServices are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices.tbd and library file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis.tbd and library file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore.tbd and library file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD.tbd and library file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis.tbd and library file /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//CFNetwork.framework/Versions/A/CFNetwork.tbd and library file /System/Library/Frameworks//CFNetwork.framework/Versions/A/CFNetwork are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList.tbd and library file /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList are out of sync. Falling back to library file for linking. Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_EmacsLayer", referenced from: objc-class-ref in nsterm.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [temacs] Error 1 make: *** [src] Error 2 Error: Failure running MAKE From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 02 04:08:02 2022 Received: (at 54623) by debbugs.gnu.org; 2 Apr 2022 08:08:02 +0000 Received: from localhost ([127.0.0.1]:44537 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1naYnh-0000Zc-LW for submit@debbugs.gnu.org; Sat, 02 Apr 2022 04:08:02 -0400 Received: from outbound.soverin.net ([116.202.126.228]:55101) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1naYnf-0000ZD-4e for 54623@debbugs.gnu.org; Sat, 02 Apr 2022 04:08:00 -0400 Received: from smtp.soverin.net (unknown [10.10.3.11]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 5E0F4316; Sat, 2 Apr 2022 08:07:52 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [10.10.4.99]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1648886871; bh=D0JtrC1m+/DJlqcf6crI3Ex7F1hPeJvwFX20fb5PYUg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Nq3aKU2FzIZD73q+Md3qsN7fLqMO+jWP5PugtKviJbyFKngVQJYdxuAmcCh6BYLqW ivk8+WOOW2TjDcY5aSG6CoJrUmrf+MGIngXotTe7DKWbGZh2Wjqk3tdL5tw4YaTagE T/WYAUC/47vLCLROz/VKAUJXJMRvgwE21aZp1ZCtE7uhsXWhoSWWi3qtvQyg1K43Xj anPSy5TuGynxPGUDUOq+E/Sny+EeVfVd+L1R5B5yS8lzM9l9tO2bH68iKghHE084Ma w5fx024V6i/M52R+b0UZh5PvEhC6M5qy81qMDWKiN6iH2BHlaXep30UJ4Zm3E2wzPp aXny1CrUyOkjA== Received: from alan by faroe.holly.idiocy.org with local (Exim 4.95) (envelope-from ) id 1naYnV-000JbD-7E; Sat, 02 Apr 2022 09:07:49 +0100 Date: Sat, 2 Apr 2022 09:07:49 +0100 From: Alan Third To: Angelo Graziosi Subject: Re: bug#54623: No scroll bars on macOS builds Message-ID: Mail-Followup-To: Alan Third , Angelo Graziosi , Lars Ingebrigtsen , 54623@debbugs.gnu.org References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> <232238068.1610928.1648723538459@mail1.libero.it> <1573705019.892210.1648765645434@mail1.libero.it> <855785195.1995564.1648852653736@mail1.libero.it> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="T5EK1sIK++y0ay6R" Content-Disposition: inline In-Reply-To: <855785195.1995564.1648852653736@mail1.libero.it> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Lars Ingebrigtsen 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.7 (-) --T5EK1sIK++y0ay6R Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sat, Apr 02, 2022 at 12:37:33AM +0200, Angelo Graziosi wrote: > Undefined symbols for architecture x86_64: > "_OBJC_CLASS_$_EmacsLayer", referenced from: > objc-class-ref in nsterm.o > ld: symbol(s) not found for architecture x86_64 > clang: error: linker command failed with exit code 1 (use -v to see invocation) > make[1]: *** [temacs] Error 1 > make: *** [src] Error 2 > Error: Failure running MAKE *sigh* missed a zero in the version number in one of the #if things. Please try the attached. -- Alan Third --T5EK1sIK++y0ay6R Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v4-0001-Fix-scrollbars-on-macOS-10.13-and-below-bug-54623.patch" >From a2b78c8b93b7c52fce1c3d1c6b6c478d86419a0d Mon Sep 17 00:00:00 2001 From: Alan Third Date: Wed, 30 Mar 2022 22:40:03 +0100 Subject: [PATCH v4] Fix scrollbars on macOS 10.13 and below (bug#54623) Make any build on macOS 10.13 and below follow the same drawing path as the GNUstep port. macOS 10.14 and above will use EmacsLayer. * src/nsterm.h (EmacsLayer): * src/nsterm.m ([EmacsView makeBackingLayer]): ([EmacsView unlockFocus]): ([EmacsView windowDidChangeBackingProperties:]): ([EmacsView copyRect:to:]): Remove any code required for macOS 10.13 and below, and fix the #if's to enforce strict separation of the drawing paths. --- src/nsterm.h | 4 +- src/nsterm.m | 124 +++++++++++++++++++-------------------------------- 2 files changed, 48 insertions(+), 80 deletions(-) diff --git a/src/nsterm.h b/src/nsterm.h index f027646123..4cba5c0be8 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -487,7 +487,7 @@ #define NSTRACE_UNSILENCE() #endif - (int)fullscreenState; -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 - (void)lockFocus; - (void)unlockFocus; #endif @@ -698,7 +698,7 @@ #define NSTRACE_UNSILENCE() + (CGFloat)scrollerWidth; @end -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 @interface EmacsLayer : CALayer { NSMutableArray *cache; diff --git a/src/nsterm.m b/src/nsterm.m index fd56094c28..a093b6a67d 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -7197,7 +7197,7 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f [[EmacsWindow alloc] initWithEmacsFrame:f]; -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 /* These settings mean AppKit will retain the contents of the frame on resize. Unfortunately it also means the frame will not be automatically marked for display, but we can do that ourselves in @@ -7861,7 +7861,7 @@ - (instancetype)toggleToolbar: (id)sender } -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 - (CALayer *)makeBackingLayer; { EmacsLayer *l = [[EmacsLayer alloc] @@ -7877,19 +7877,12 @@ - (void)lockFocus { NSTRACE ("[EmacsView lockFocus]"); - if ([self wantsLayer]) - { - CGContextRef context = [(EmacsLayer*)[self layer] getContext]; + CGContextRef context = [(EmacsLayer*)[self layer] getContext]; - [NSGraphicsContext + [NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithCGContext:context flipped:YES]]; - } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - else - [super lockFocus]; -#endif } @@ -7897,18 +7890,8 @@ - (void)unlockFocus { NSTRACE ("[EmacsView unlockFocus]"); - if ([self wantsLayer]) - { - [NSGraphicsContext setCurrentContext:nil]; - [self setNeedsDisplay:YES]; - } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - else - { - [super unlockFocus]; - [super flushWindow]; - } -#endif + [NSGraphicsContext setCurrentContext:nil]; + [self setNeedsDisplay:YES]; } @@ -7917,19 +7900,16 @@ - (void)windowDidChangeBackingProperties:(NSNotification *)notification { NSTRACE ("EmacsView windowDidChangeBackingProperties:]"); - if ([self wantsLayer]) - { - NSRect frame = [self frame]; - EmacsLayer *layer = (EmacsLayer *)[self layer]; + NSRect frame = [self frame]; + EmacsLayer *layer = (EmacsLayer *)[self layer]; - [layer setContentsScale:[[notification object] backingScaleFactor]]; - [layer setColorSpace:[[[notification object] colorSpace] CGColorSpace]]; + [layer setContentsScale:[[notification object] backingScaleFactor]]; + [layer setColorSpace:[[[notification object] colorSpace] CGColorSpace]]; - ns_clear_frame (emacsframe); - expose_frame (emacsframe, 0, 0, NSWidth (frame), NSHeight (frame)); - } + ns_clear_frame (emacsframe); + expose_frame (emacsframe, 0, 0, NSWidth (frame), NSHeight (frame)); } -#endif /* NS_IMPL_COCOA */ +#endif - (void)copyRect:(NSRect)srcRect to:(NSPoint)dest @@ -7941,57 +7921,45 @@ - (void)copyRect:(NSRect)srcRect to:(NSPoint)dest NSRect dstRect = NSMakeRect (dest.x, dest.y, NSWidth (srcRect), NSHeight (srcRect)); -#ifdef NS_IMPL_COCOA - if ([self wantsLayer]) - { - double scale = [[self window] backingScaleFactor]; - CGContextRef context = [(EmacsLayer *)[self layer] getContext]; - int bpp = CGBitmapContextGetBitsPerPixel (context) / 8; - void *pixels = CGBitmapContextGetData (context); - int rowSize = CGBitmapContextGetBytesPerRow (context); - int srcRowSize = NSWidth (srcRect) * scale * bpp; - void *srcPixels = (char *) pixels - + (int) (NSMinY (srcRect) * scale * rowSize - + NSMinX (srcRect) * scale * bpp); - void *dstPixels = (char *) pixels - + (int) (dest.y * scale * rowSize - + dest.x * scale * bpp); - - if (NSIntersectsRect (srcRect, dstRect) - && NSMinY (srcRect) < NSMinY (dstRect)) - for (int y = NSHeight (srcRect) * scale - 1 ; y >= 0 ; y--) - memmove ((char *) dstPixels + y * rowSize, - (char *) srcPixels + y * rowSize, - srcRowSize); - else - for (int y = 0 ; y < NSHeight (srcRect) * scale ; y++) - memmove ((char *) dstPixels + y * rowSize, - (char *) srcPixels + y * rowSize, - srcRowSize); - - } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400 +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 + double scale = [[self window] backingScaleFactor]; + CGContextRef context = [(EmacsLayer *)[self layer] getContext]; + int bpp = CGBitmapContextGetBitsPerPixel (context) / 8; + void *pixels = CGBitmapContextGetData (context); + int rowSize = CGBitmapContextGetBytesPerRow (context); + int srcRowSize = NSWidth (srcRect) * scale * bpp; + void *srcPixels = (char *) pixels + + (int) (NSMinY (srcRect) * scale * rowSize + + NSMinX (srcRect) * scale * bpp); + void *dstPixels = (char *) pixels + + (int) (dest.y * scale * rowSize + + dest.x * scale * bpp); + + if (NSIntersectsRect (srcRect, dstRect) + && NSMinY (srcRect) < NSMinY (dstRect)) + for (int y = NSHeight (srcRect) * scale - 1 ; y >= 0 ; y--) + memmove ((char *) dstPixels + y * rowSize, + (char *) srcPixels + y * rowSize, + srcRowSize); else - { -#endif -#endif /* NS_IMPL_COCOA */ + for (int y = 0 ; y < NSHeight (srcRect) * scale ; y++) + memmove ((char *) dstPixels + y * rowSize, + (char *) srcPixels + y * rowSize, + srcRowSize); -#if !defined (NS_IMPL_COCOA) || MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - hide_bell(); // Ensure the bell image isn't scrolled. +#else + hide_bell(); // Ensure the bell image isn't scrolled. - ns_focus (emacsframe, &dstRect, 1); - [self scrollRect: srcRect - by: NSMakeSize (dstRect.origin.x - srcRect.origin.x, - dstRect.origin.y - srcRect.origin.y)]; - ns_unfocus (emacsframe); -#endif -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - } + ns_focus (emacsframe, &dstRect, 1); + [self scrollRect: srcRect + by: NSMakeSize (dstRect.origin.x - srcRect.origin.x, + dstRect.origin.y - srcRect.origin.y)]; + ns_unfocus (emacsframe); #endif } -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 /* If the frame has been garbaged but the toolkit wants to draw, for example when resizing the frame, we end up with a blank screen. Sometimes this results in an unpleasant flicker, so try to @@ -9435,7 +9403,7 @@ - (void) scrollWheel: (NSEvent *)theEvent @end /* EmacsScroller */ -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 /* ========================================================================== -- 2.35.1 --T5EK1sIK++y0ay6R-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 02 05:42:10 2022 Received: (at 54623) by debbugs.gnu.org; 2 Apr 2022 09:42:10 +0000 Received: from localhost ([127.0.0.1]:44666 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1naaGo-0002u8-0R for submit@debbugs.gnu.org; Sat, 02 Apr 2022 05:42:10 -0400 Received: from smtp-32-i2.italiaonline.it ([213.209.12.32]:40168 helo=libero.it) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1naaGl-0002ti-JX for 54623@debbugs.gnu.org; Sat, 02 Apr 2022 05:42:08 -0400 Received: from oxapps-16-091.iol.local ([10.101.8.101]) by smtp-32.iol.local with ESMTPA id aaGfnDVqgptnyaaGfnqo4o; Sat, 02 Apr 2022 11:42:01 +0200 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1648892521; bh=za4h8Fe8DAP9+Xz34P+KKFeDspiiIKahZrE3f0GBWoY=; h=From; b=VCyLlAwTSpjtUDgzmq70iYn8V7yy8dAY8lH4zwqTIAYmWYd559GOPtoIsa589Pzet 8J7KxBvDdtU3tioOYpW11VeBLjQIRCwOo7qt6/L+zyL6jT1yXVxV2/UqHSkJE4jAw2 2Wo4jWNopSwYZc/9WC7UrvlMUeromrBKjW2bMx/EmDFGxV3f0AG2Y59w7RgtPgMuYT U20J9jAMo8u0J+L6NjGnD8PRxus4wiYM8J9ForhL3BxMeqcXGsj22jAvAOAC5WFNeQ mqMhqak9taB6nCcYOMlonYNvLjqWxDUHKX6RvkweP+kEX92V8szlHE8kx3rimziy57 vd9qkEOqxF9nQ== X-CNFS-Analysis: v=2.4 cv=fIX8YbWe c=1 sm=1 tr=0 ts=62481a69 cx=a_exe a=tuq5DT3i0ThgGQ9WQs+4MQ==:117 a=eUBgQfUpPccA:10 a=IkcTkHD0fZMA:10 a=EX8__BBlRnQA:10 a=hIj89exaAAAA:8 a=-_dEF7lXLlzbmBTphaIA:9 a=QEXdDO2ut3YA:10 a=lS9wXHQM5UdnNJ4u63Ry:22 Date: Sat, 2 Apr 2022 11:42:01 +0200 (CEST) From: Angelo Graziosi To: Alan Third Message-ID: <730015416.968035.1648892521373@mail1.libero.it> In-Reply-To: References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> <232238068.1610928.1648723538459@mail1.libero.it> <1573705019.892210.1648765645434@mail1.libero.it> <855785195.1995564.1648852653736@mail1.libero.it> Subject: Re: bug#54623: No scroll bars on macOS builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.5-Rev39 X-Originating-IP: 87.7.60.198 X-Originating-Client: open-xchange-appsuite x-libjamsun: N+9J1jFd6YFrdQHMpEuiWvZeszB6PcKV x-libjamv: PMm8gAZUr6E= X-CMAE-Envelope: MS4xfJkBke/ipvdW76ql5iKEs1OIac3cpz4aT7Sredgz9/dGdTzcgjvF/JlSXNzRNxzYs5wSdovm8chgyv1e0F7HrJKe/UtFJDCl01660iCGQ0Naw62/MB0b XqKJX6wyBiuA6MfDvFygsMa77idkDDGl9c1O0yKIAnAEL6GyVcynPE7l6QO709h22qDzYUZYz1qTRVHuuQeHUmV1QZP7C01N1zoQ9Hwyi7wuoMYKgv4aTL+v uWeKcohbFbu7Nt9//wqMWg== X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Lars Ingebrigtsen 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: -0.8 (/) > Il 02/04/2022 10:07 Alan Third ha scritto: > > > On Sat, Apr 02, 2022 at 12:37:33AM +0200, Angelo Graziosi wrote: > > Undefined symbols for architecture x86_64: > > "_OBJC_CLASS_$_EmacsLayer", referenced from: > > objc-class-ref in nsterm.o > > ld: symbol(s) not found for architecture x86_64 > > clang: error: linker command failed with exit code 1 (use -v to see invocation) > > make[1]: *** [temacs] Error 1 > > make: *** [src] Error 2 > > Error: Failure running MAKE > > *sigh* missed a zero in the version number in one of the #if things. > > Please try the attached. Now it seems to work as expected!!! Let's see how t work for few days.. From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 02 07:00:22 2022 Received: (at 54623) by debbugs.gnu.org; 2 Apr 2022 11:00:22 +0000 Received: from localhost ([127.0.0.1]:44723 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nabUU-000544-Fj for submit@debbugs.gnu.org; Sat, 02 Apr 2022 07:00:22 -0400 Received: from smtp-32-i2.italiaonline.it ([213.209.12.32]:51480 helo=libero.it) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nabUS-00053m-73 for 54623@debbugs.gnu.org; Sat, 02 Apr 2022 07:00:21 -0400 Received: from oxapps-16-091.iol.local ([10.101.8.101]) by smtp-32.iol.local with ESMTPA id abULnE2LwptnyabULnr7li; Sat, 02 Apr 2022 13:00:13 +0200 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1648897213; bh=ypoC2ejBS2uaPcBkuvY5esr5TOqRPacsR12AHVYxeDk=; h=From; b=v7s3BXtToQ0V0COAK/DhCdXXhJ1+0hekcFrQsTmby24TRHylvYcRkXhap28Gjnw3a a8a4u4/Qfypf+lkLx+f2Q2D+KRSz0iTG+XCNfG6xLvx4U9ZDvFlZ6v9HYRdxB+/8/V VQDGbs8FDixgj41X0W1XFCM0RLdJRwzCEjjnvz4i0qGYsF5q+9qJbDI6WHfaQPNhFr xa3h4tTxbOJABYlbvWlInqlNoNhOynIYVkdkUrnsUuWUiDAfAKHYT2l3IjhVH/W9X6 IeqW2l3EQD78l53JHs6QRqgGHRNHMmtjeAVDAEKQRHm2aXhIEAAseNeN9YfWcUKbjY Xtrbv8pYTMU1Q== X-CNFS-Analysis: v=2.4 cv=fIX8YbWe c=1 sm=1 tr=0 ts=62482cbd cx=a_exe a=tuq5DT3i0ThgGQ9WQs+4MQ==:117 a=eUBgQfUpPccA:10 a=IkcTkHD0fZMA:10 a=EX8__BBlRnQA:10 a=hIj89exaAAAA:8 a=e4TO8NRF0mYv9EjuT88A:9 a=QEXdDO2ut3YA:10 a=lS9wXHQM5UdnNJ4u63Ry:22 Date: Sat, 2 Apr 2022 13:00:13 +0200 (CEST) From: Angelo Graziosi To: Alan Third Message-ID: <1289229983.972549.1648897213047@mail1.libero.it> In-Reply-To: <730015416.968035.1648892521373@mail1.libero.it> References: <542747779.525811.1648554603075@mail1.libero.it> <875ynxapxv.fsf@gnus.org> <232238068.1610928.1648723538459@mail1.libero.it> <1573705019.892210.1648765645434@mail1.libero.it> <855785195.1995564.1648852653736@mail1.libero.it> <730015416.968035.1648892521373@mail1.libero.it> Subject: Re: bug#54623: No scroll bars on macOS builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.5-Rev39 X-Originating-IP: 87.7.60.198 X-Originating-Client: open-xchange-appsuite x-libjamsun: HeVBpRAZZZJay73bQZaih/xM0/8VrFCO x-libjamv: PhbfG+CmIPc= X-CMAE-Envelope: MS4xfCl8kPn4MnasCO/3BPURfJGeVfDPWq+22Y/pkNLhvTlv1NohxvUkV6AF8ARBb6VF5NrSYUsE7iKYvD6NHp/5qbOH0cAtn7wPANqYpb0sPjJykjRJ6Od5 gS7I6OAR++3W6CmfZwdsEAq21Pa83CD1iKNr2+MTUqGLxVvCkXDDuxLYLFw7GqSHkyE+GKPj4Et7vQeGxGg5SMKAALj2Rt/RkJvFDLxsd6ookFnE/po13f/w nADDqCA1kPi8ueEY1aahRg== X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Lars Ingebrigtsen 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: -0.8 (/) > Il 02/04/2022 11:42 Angelo Graziosi ha scritto: > > > > Il 02/04/2022 10:07 Alan Third ha scritto: > > > > > > On Sat, Apr 02, 2022 at 12:37:33AM +0200, Angelo Graziosi wrote: > > > Undefined symbols for architecture x86_64: > > > "_OBJC_CLASS_$_EmacsLayer", referenced from: > > > objc-class-ref in nsterm.o > > > ld: symbol(s) not found for architecture x86_64 > > > clang: error: linker command failed with exit code 1 (use -v to see invocation) > > > make[1]: *** [temacs] Error 1 > > > make: *** [src] Error 2 > > > Error: Failure running MAKE > > > > *sigh* missed a zero in the version number in one of the #if things. > > > > Please try the attached. > > Now it seems to work as expected!!! > > Let's see how t work for few days.. Spoken too soon! ================= Now Emacs builds, does not crash, *does have* scroll bars, but.. - I cannot select text (mouse-1 and drag) - minibuffer does not work: C-x C-f displays current directory but I cannot type anything there - the same with M-x: only M-x is displayed but cannot type the command and cannot use history (UP/DOWN arrows).. From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 03 09:36:26 2022 Received: (at 54623) by debbugs.gnu.org; 3 Apr 2022 13:36:26 +0000 Received: from localhost ([127.0.0.1]:48022 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nb0P3-0006tr-R1 for submit@debbugs.gnu.org; Sun, 03 Apr 2022 09:36:26 -0400 Received: from outbound.soverin.net ([116.202.126.228]:47299) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nb0P1-0006ta-AT for 54623@debbugs.gnu.org; Sun, 03 Apr 2022 09:36:24 -0400 Received: from smtp.soverin.net (unknown [10.10.3.11]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 4A787D1; Sun, 3 Apr 2022 13:36:16 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [10.10.4.99]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1648992975; bh=sDt4bhthKgQt0hY4G9SOWCscUW1CcYKoeeNRX52Ccts=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=QrGWp3I7k0z0H3gtgFSP/+831s4BXXSwsukleTHgOCIZsN2DITt6mUsWYLY0DOD8+ oSDVBav/DpqSmAHqfrXuuzzWdLU1/WYOmGCZllWAX5oJPLc3TNDhP3q5dEpZHtc0Ts 1jrntN6BwpvlGbWR+m6Wa4OnZ9zAP+aPxZS31F4T3FWLU4+FogXojy2RWEZX5vWSdH sDRwFD1TFAE/FYG6SbEJB+AZ6S7r58gVsnFhaFy4OPlxH4iNA9QLSR81/d5V8f04VO 1tS4rnr3bpaQujlBi/rz7og3duRhCoOD05HW+mG+KZ/+NqQqnjnrTh/uti4QgeYQpE lq060+m9zm0cQ== Received: from alan by faroe.holly.idiocy.org with local (Exim 4.95) (envelope-from ) id 1nb0Or-000K3L-9Z; Sun, 03 Apr 2022 14:36:13 +0100 Date: Sun, 3 Apr 2022 14:36:13 +0100 From: Alan Third To: Angelo Graziosi Subject: Re: bug#54623: No scroll bars on macOS builds Message-ID: Mail-Followup-To: Alan Third , Angelo Graziosi , Lars Ingebrigtsen , 54623@debbugs.gnu.org References: <875ynxapxv.fsf@gnus.org> <232238068.1610928.1648723538459@mail1.libero.it> <1573705019.892210.1648765645434@mail1.libero.it> <855785195.1995564.1648852653736@mail1.libero.it> <730015416.968035.1648892521373@mail1.libero.it> <1289229983.972549.1648897213047@mail1.libero.it> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="kAjhmV7koNXFwUPV" Content-Disposition: inline In-Reply-To: <1289229983.972549.1648897213047@mail1.libero.it> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Lars Ingebrigtsen 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.7 (-) --kAjhmV7koNXFwUPV Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sat, Apr 02, 2022 at 01:00:13PM +0200, Angelo Graziosi wrote: > > > Il 02/04/2022 11:42 Angelo Graziosi ha scritto: > > > > > > > Il 02/04/2022 10:07 Alan Third ha scritto: > > > > > > > > > On Sat, Apr 02, 2022 at 12:37:33AM +0200, Angelo Graziosi wrote: > > > > Undefined symbols for architecture x86_64: > > > > "_OBJC_CLASS_$_EmacsLayer", referenced from: > > > > objc-class-ref in nsterm.o > > > > ld: symbol(s) not found for architecture x86_64 > > > > clang: error: linker command failed with exit code 1 (use -v to see invocation) > > > > make[1]: *** [temacs] Error 1 > > > > make: *** [src] Error 2 > > > > Error: Failure running MAKE > > > > > > *sigh* missed a zero in the version number in one of the #if things. > > > > > > Please try the attached. > > > > Now it seems to work as expected!!! > > > > Let's see how t work for few days.. > > Spoken too soon! > ================= > > Now Emacs builds, does not crash, *does have* scroll bars, but.. > > - I cannot select text (mouse-1 and drag) > > - minibuffer does not work: C-x C-f displays current directory but I cannot type anything there > > - the same with M-x: only M-x is displayed but cannot type the command and cannot use history (UP/DOWN arrows).. hopefully all we have to do is force an occasional redraw like on GNUstep. Please try the attached. -- Alan Third --kAjhmV7koNXFwUPV Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v5-0001-Fix-scrollbars-on-macOS-10.13-and-below-bug-54623.patch" >From 0ceb4141eaaac896cc1a16aa58cc11f037048906 Mon Sep 17 00:00:00 2001 From: Alan Third Date: Wed, 30 Mar 2022 22:40:03 +0100 Subject: [PATCH v5] Fix scrollbars on macOS 10.13 and below (bug#54623) Make any build on macOS 10.13 and below follow the same drawing path as the GNUstep port. macOS 10.14 and above will use EmacsLayer. * src/nsterm.h (EmacsLayer): * src/nsterm.m ([EmacsView makeBackingLayer]): ([EmacsView unlockFocus]): ([EmacsView windowDidChangeBackingProperties:]): ([EmacsView copyRect:to:]): Remove any code required for macOS 10.13 and below, and fix the #if's to enforce strict separation of the drawing paths. (ns_update_end): (ns_unfocus): Fix #ifs so that flushWindow is called on old macOS versions as well as GNUstep. --- src/nsterm.h | 4 +- src/nsterm.m | 128 +++++++++++++++++++-------------------------------- 2 files changed, 50 insertions(+), 82 deletions(-) diff --git a/src/nsterm.h b/src/nsterm.h index f027646123..4cba5c0be8 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -487,7 +487,7 @@ #define NSTRACE_UNSILENCE() #endif - (int)fullscreenState; -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 - (void)lockFocus; - (void)unlockFocus; #endif @@ -698,7 +698,7 @@ #define NSTRACE_UNSILENCE() + (CGFloat)scrollerWidth; @end -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 @interface EmacsLayer : CALayer { NSMutableArray *cache; diff --git a/src/nsterm.m b/src/nsterm.m index fd56094c28..0520d76b34 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1060,7 +1060,7 @@ static NSRect constrain_frame_rect(NSRect frameRect, bool isFullscreen) block_input (); [view unlockFocus]; -#if defined (NS_IMPL_GNUSTEP) +#if defined (NS_IMPL_GNUSTEP) || MAC_OS_X_VERSION_MIN_REQUIRED < 101400 [[view window] flushWindow]; #endif @@ -1127,7 +1127,7 @@ static NSRect constrain_frame_rect(NSRect frameRect, bool isFullscreen) { EmacsView *view = FRAME_NS_VIEW (f); [view unlockFocus]; -#if defined (NS_IMPL_GNUSTEP) +#if defined (NS_IMPL_GNUSTEP) || MAC_OS_X_VERSION_MIN_REQUIRED < 101400 [[view window] flushWindow]; #endif } @@ -7197,7 +7197,7 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f [[EmacsWindow alloc] initWithEmacsFrame:f]; -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 /* These settings mean AppKit will retain the contents of the frame on resize. Unfortunately it also means the frame will not be automatically marked for display, but we can do that ourselves in @@ -7861,7 +7861,7 @@ - (instancetype)toggleToolbar: (id)sender } -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 - (CALayer *)makeBackingLayer; { EmacsLayer *l = [[EmacsLayer alloc] @@ -7877,19 +7877,12 @@ - (void)lockFocus { NSTRACE ("[EmacsView lockFocus]"); - if ([self wantsLayer]) - { - CGContextRef context = [(EmacsLayer*)[self layer] getContext]; + CGContextRef context = [(EmacsLayer*)[self layer] getContext]; - [NSGraphicsContext + [NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithCGContext:context flipped:YES]]; - } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - else - [super lockFocus]; -#endif } @@ -7897,18 +7890,8 @@ - (void)unlockFocus { NSTRACE ("[EmacsView unlockFocus]"); - if ([self wantsLayer]) - { - [NSGraphicsContext setCurrentContext:nil]; - [self setNeedsDisplay:YES]; - } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - else - { - [super unlockFocus]; - [super flushWindow]; - } -#endif + [NSGraphicsContext setCurrentContext:nil]; + [self setNeedsDisplay:YES]; } @@ -7917,19 +7900,16 @@ - (void)windowDidChangeBackingProperties:(NSNotification *)notification { NSTRACE ("EmacsView windowDidChangeBackingProperties:]"); - if ([self wantsLayer]) - { - NSRect frame = [self frame]; - EmacsLayer *layer = (EmacsLayer *)[self layer]; + NSRect frame = [self frame]; + EmacsLayer *layer = (EmacsLayer *)[self layer]; - [layer setContentsScale:[[notification object] backingScaleFactor]]; - [layer setColorSpace:[[[notification object] colorSpace] CGColorSpace]]; + [layer setContentsScale:[[notification object] backingScaleFactor]]; + [layer setColorSpace:[[[notification object] colorSpace] CGColorSpace]]; - ns_clear_frame (emacsframe); - expose_frame (emacsframe, 0, 0, NSWidth (frame), NSHeight (frame)); - } + ns_clear_frame (emacsframe); + expose_frame (emacsframe, 0, 0, NSWidth (frame), NSHeight (frame)); } -#endif /* NS_IMPL_COCOA */ +#endif - (void)copyRect:(NSRect)srcRect to:(NSPoint)dest @@ -7941,57 +7921,45 @@ - (void)copyRect:(NSRect)srcRect to:(NSPoint)dest NSRect dstRect = NSMakeRect (dest.x, dest.y, NSWidth (srcRect), NSHeight (srcRect)); -#ifdef NS_IMPL_COCOA - if ([self wantsLayer]) - { - double scale = [[self window] backingScaleFactor]; - CGContextRef context = [(EmacsLayer *)[self layer] getContext]; - int bpp = CGBitmapContextGetBitsPerPixel (context) / 8; - void *pixels = CGBitmapContextGetData (context); - int rowSize = CGBitmapContextGetBytesPerRow (context); - int srcRowSize = NSWidth (srcRect) * scale * bpp; - void *srcPixels = (char *) pixels - + (int) (NSMinY (srcRect) * scale * rowSize - + NSMinX (srcRect) * scale * bpp); - void *dstPixels = (char *) pixels - + (int) (dest.y * scale * rowSize - + dest.x * scale * bpp); - - if (NSIntersectsRect (srcRect, dstRect) - && NSMinY (srcRect) < NSMinY (dstRect)) - for (int y = NSHeight (srcRect) * scale - 1 ; y >= 0 ; y--) - memmove ((char *) dstPixels + y * rowSize, - (char *) srcPixels + y * rowSize, - srcRowSize); - else - for (int y = 0 ; y < NSHeight (srcRect) * scale ; y++) - memmove ((char *) dstPixels + y * rowSize, - (char *) srcPixels + y * rowSize, - srcRowSize); - - } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400 +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 + double scale = [[self window] backingScaleFactor]; + CGContextRef context = [(EmacsLayer *)[self layer] getContext]; + int bpp = CGBitmapContextGetBitsPerPixel (context) / 8; + void *pixels = CGBitmapContextGetData (context); + int rowSize = CGBitmapContextGetBytesPerRow (context); + int srcRowSize = NSWidth (srcRect) * scale * bpp; + void *srcPixels = (char *) pixels + + (int) (NSMinY (srcRect) * scale * rowSize + + NSMinX (srcRect) * scale * bpp); + void *dstPixels = (char *) pixels + + (int) (dest.y * scale * rowSize + + dest.x * scale * bpp); + + if (NSIntersectsRect (srcRect, dstRect) + && NSMinY (srcRect) < NSMinY (dstRect)) + for (int y = NSHeight (srcRect) * scale - 1 ; y >= 0 ; y--) + memmove ((char *) dstPixels + y * rowSize, + (char *) srcPixels + y * rowSize, + srcRowSize); else - { -#endif -#endif /* NS_IMPL_COCOA */ + for (int y = 0 ; y < NSHeight (srcRect) * scale ; y++) + memmove ((char *) dstPixels + y * rowSize, + (char *) srcPixels + y * rowSize, + srcRowSize); -#if !defined (NS_IMPL_COCOA) || MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - hide_bell(); // Ensure the bell image isn't scrolled. +#else + hide_bell(); // Ensure the bell image isn't scrolled. - ns_focus (emacsframe, &dstRect, 1); - [self scrollRect: srcRect - by: NSMakeSize (dstRect.origin.x - srcRect.origin.x, - dstRect.origin.y - srcRect.origin.y)]; - ns_unfocus (emacsframe); -#endif -#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED < 101400 - } + ns_focus (emacsframe, &dstRect, 1); + [self scrollRect: srcRect + by: NSMakeSize (dstRect.origin.x - srcRect.origin.x, + dstRect.origin.y - srcRect.origin.y)]; + ns_unfocus (emacsframe); #endif } -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 /* If the frame has been garbaged but the toolkit wants to draw, for example when resizing the frame, we end up with a blank screen. Sometimes this results in an unpleasant flicker, so try to @@ -9435,7 +9403,7 @@ - (void) scrollWheel: (NSEvent *)theEvent @end /* EmacsScroller */ -#ifdef NS_IMPL_COCOA +#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 /* ========================================================================== -- 2.35.1 --kAjhmV7koNXFwUPV-- From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 03 16:00:22 2022 Received: (at 54623) by debbugs.gnu.org; 3 Apr 2022 20:00:22 +0000 Received: from localhost ([127.0.0.1]:49629 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nb6Oc-0004IU-5n for submit@debbugs.gnu.org; Sun, 03 Apr 2022 16:00:22 -0400 Received: from smtp-33-i2.italiaonline.it ([213.209.12.33]:59485 helo=libero.it) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nb6OZ-0004I3-Vu for 54623@debbugs.gnu.org; Sun, 03 Apr 2022 16:00:20 -0400 Received: from oxapps-35-161.iol.local ([10.101.8.207]) by smtp-33.iol.local with ESMTPA id b6OSnAV8jFZB1b6OSnDj4J; Sun, 03 Apr 2022 22:00:13 +0200 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1649016013; bh=ee7NkzSyFY7BWvLhZlwTvHEqzCIwXGoNnNYSNCQt/vI=; h=From; b=ZFioOlROQxUiJtXyA6H9G6kWhEIL/d0oIwmxQJbLXJGtaYen4MuwG14hEw2ommiwV SbDHB7vj9QBDN1XbLllry9CDmUhRv6lr1NNsXgCZbjiSfiQRCccy4siVmuWj1ejIl7 A7DV6PRDkFLMr9FGB4H7Y9kBUjelfJq8AKr5SJX3LHKPd7KDI1yc3+NHF5OoBuEhpx FGBmXhZ+dznZAmYv4zpDUYSQ7U/PhFaJxCn/DHc7wi7kp0zfYZYZ6K8BZl7TSkq3eN I0u+nVXWlpnrrgyCglQihNMzBMyiZ0EcBRGQQ2AidjmcOb70BwH4yrNC5fh6/Bc0hf fdJJ4VHY7VXNA== X-CNFS-Analysis: v=2.4 cv=AJzWTkRL c=1 sm=1 tr=0 ts=6249fccd cx=a_exe a=nfd7r6fjvwdi3TEDr47KBw==:117 a=eUBgQfUpPccA:10 a=IkcTkHD0fZMA:10 a=EX8__BBlRnQA:10 a=-RkP7MA17McJTePHcGAA:9 a=QEXdDO2ut3YA:10 Date: Sun, 3 Apr 2022 22:00:12 +0200 (CEST) From: Angelo Graziosi To: Alan Third Message-ID: <1632758153.1041269.1649016012901@mail1.libero.it> In-Reply-To: References: <875ynxapxv.fsf@gnus.org> <232238068.1610928.1648723538459@mail1.libero.it> <1573705019.892210.1648765645434@mail1.libero.it> <855785195.1995564.1648852653736@mail1.libero.it> <730015416.968035.1648892521373@mail1.libero.it> <1289229983.972549.1648897213047@mail1.libero.it> Subject: Re: bug#54623: No scroll bars on macOS builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.5-Rev39 X-Originating-IP: 87.7.60.198 X-Originating-Client: open-xchange-appsuite x-libjamsun: UgpXmpZE5RLtPHYvaFwErgBNl9cRPG1A x-libjamv: ub2VKaurM6A= X-CMAE-Envelope: MS4xfM87Lc/iDysB6m/GMcQqsnwVO5gTUP4Vau/p0FwGz/VRmpjtsjYzWViqo5MqI7Iqa4nSJVZ1v5pDNfMh9twLnqq6VNM3GBH1YWH6qBcVJG8bQYZW/Tf3 ojzLLCbKldpuj2lCYBE7+aCrKOtRTQHSbuSA8fsj5MSqYCgaqQjp1Kx/bVzyiGPnRaNr+6hzJbWgbNA/PfnpA63Z4BRLxTdEHao6ukHE97OBGqi5xx92ez5q fpvu4kyOcl8o6bew3xz/tw== X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Lars Ingebrigtsen 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: -0.8 (/) > Il 03/04/2022 15:36 Alan Third ha scritto: > > > hopefully all we have to do is force an occasional redraw like on > GNUstep. Please try the attached. At the moment it seems to work.. Fingers crossed! From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 04 16:31:07 2022 Received: (at 54623) by debbugs.gnu.org; 4 Apr 2022 20:31:07 +0000 Received: from localhost ([127.0.0.1]:53168 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbTLv-00006g-B2 for submit@debbugs.gnu.org; Mon, 04 Apr 2022 16:31:07 -0400 Received: from smtp-31-i2.italiaonline.it ([213.209.12.31]:56287 helo=libero.it) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbTLt-00005v-2f for 54623@debbugs.gnu.org; Mon, 04 Apr 2022 16:31:06 -0400 Received: from oxapps-31-135.iol.local ([10.101.8.181]) by smtp-31.iol.local with ESMTPA id bTLlns3tZsXp4bTLln85kf; Mon, 04 Apr 2022 22:30:58 +0200 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1649104258; bh=wn3fl/DHr75U2B7jvJ9eKLvXkCR3LT90EcotMhpKY9g=; h=From; b=fOUQfc5Vl6jlx8+bJVXxY2mZJxaHWJVWs2tbY1mBxacR9avK0nE8nJ1WtgPhUX36j SVeuVpKdCDWU0BawnQNImjFQDjTEoh/V14EDNcuDfxWpH/kygbE3alHl9WUpUXF+qs dYhzsa/eyfyIApCPNhlmzLvCJNjBFxeKhxg5c7aunBNQbyzuoBaV1zZ/cUu6cQfrry I4NCzBgjJeQeBGTJh7NgCCUmqJeVwFYkN4jBA3WagDA/rXj2tYzl+UoP+MI7QPtcAs n4vpLPWU8CE9C+YEdu1c7XQIu/KAqY6ailIa8c2fbgQzxGvZVPuu78whseAFbuStK4 qbzMq2drgmzJw== X-CNFS-Analysis: v=2.4 cv=HLMGqqhv c=1 sm=1 tr=0 ts=624b5582 cx=a_exe a=81T/h5XCIAiRkTzjzmmePA==:117 a=eUBgQfUpPccA:10 a=IkcTkHD0fZMA:10 a=EX8__BBlRnQA:10 a=sJS5e_s-oIdkOhxJwQAA:9 a=QEXdDO2ut3YA:10 Date: Mon, 4 Apr 2022 22:30:57 +0200 (CEST) From: Angelo Graziosi To: Alan Third Message-ID: <1326994101.1200217.1649104257887@mail1.libero.it> In-Reply-To: <1632758153.1041269.1649016012901@mail1.libero.it> References: <875ynxapxv.fsf@gnus.org> <232238068.1610928.1648723538459@mail1.libero.it> <1573705019.892210.1648765645434@mail1.libero.it> <855785195.1995564.1648852653736@mail1.libero.it> <730015416.968035.1648892521373@mail1.libero.it> <1289229983.972549.1648897213047@mail1.libero.it> <1632758153.1041269.1649016012901@mail1.libero.it> Subject: Re: bug#54623: No scroll bars on macOS builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.5-Rev39 X-Originating-IP: 87.7.60.198 X-Originating-Client: open-xchange-appsuite x-libjamsun: 9ZljQrDyiNhIDtzmsMiugBnFV97IjiPP x-libjamv: 1G1tZmxC5/E= X-CMAE-Envelope: MS4xfETuTrcVJFTnUD13rT3ZxT1Ww+a77Anu9ydwGGdEv/boEFTEcCWrHa5yPlDUlOz3l6vxHkK4wF3+NND7YPGD0aHurh6x0lldazqn9trtMXSAYa2AQw8W 6Fm+1plk0WQ0yIwMPlH6G8e/OXOKJJtz95pZZzdbsFaXgd1S5g4TqtDTygs/DpZdORBfiDLcX8FHlGMl+tu9eTmxrjg6OIav6R1V8RwIDCBEBJvClRsiePef bqmxc7vVkrnxPymoqCXzYQ== X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 54623 Cc: 54623@debbugs.gnu.org, Lars Ingebrigtsen 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: -0.8 (/) > Il 03/04/2022 22:00 Angelo Graziosi ha scritto: > > > > Il 03/04/2022 15:36 Alan Third ha scritto: > > > > > > hopefully all we have to do is force an occasional redraw like on > > GNUstep. Please try the attached. > > At the moment it seems to work.. Fingers crossed! It still works, so maybe you can commit this patch (v5) and close this issue.. Many thanks! From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 08 17:47:13 2022 Received: (at 54623-done) by debbugs.gnu.org; 8 Apr 2022 21:47:13 +0000 Received: from localhost ([127.0.0.1]:36225 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ncwRl-0000RT-J1 for submit@debbugs.gnu.org; Fri, 08 Apr 2022 17:47:13 -0400 Received: from outbound.soverin.net ([116.202.126.228]:46935) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ncwRj-0000RG-KP for 54623-done@debbugs.gnu.org; Fri, 08 Apr 2022 17:47:12 -0400 Received: from smtp.soverin.net (unknown [10.10.3.11]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 0DF61893; Fri, 8 Apr 2022 21:47:05 +0000 (UTC) Received: from smtp.soverin.net (smtp.soverin.net [10.10.4.100]) by soverin.net DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=idiocy.org; s=soverin; t=1649454424; bh=lDyN9pccQaOA6NUy3Tx1XblPWDgm5e/f8bZK8vnk8bI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=o0VgVoFRyyL8v9+Ip+cr8S5NdueqErXmhtZDxP1d6JnAaHJFFqIGBxR7yP5dCk7Pv KHZgSmEoWDLPqn349mJYSSX9B+qXw35CnGZYUVw7YNGV5WPbqEQX+B+jHlptEMMwaA GtYouFQm6RLgVbOPANoR4IrpOOKVLE6Xnl0apUc+25hjwvNLPNkDbEw7MmHMrWV8yJ 5MCi9QkYkPw3Cc28dI4kqEoUfpvDcvHFCZXtB95I9vLnG5BhOjRRrLfzaW4oQIkpn0 3piOtugWLKKl8lBsV1h2XlW/EoPSksqBRDVcKVQOSjKdXW9qmY1TwHjRpBr5lCdxHD 0tkNwmqt0b42g== Received: from alan by faroe.holly.idiocy.org with local (Exim 4.95) (envelope-from ) id 1ncwRa-000MUu-5v; Fri, 08 Apr 2022 22:47:02 +0100 Date: Fri, 8 Apr 2022 22:47:02 +0100 From: Alan Third To: Angelo Graziosi Subject: Re: bug#54623: No scroll bars on macOS builds Message-ID: Mail-Followup-To: Alan Third , Angelo Graziosi , Lars Ingebrigtsen , 54623-done@debbugs.gnu.org References: <1573705019.892210.1648765645434@mail1.libero.it> <855785195.1995564.1648852653736@mail1.libero.it> <730015416.968035.1648892521373@mail1.libero.it> <1289229983.972549.1648897213047@mail1.libero.it> <1632758153.1041269.1649016012901@mail1.libero.it> <1326994101.1200217.1649104257887@mail1.libero.it> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1326994101.1200217.1649104257887@mail1.libero.it> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 54623-done Cc: Lars Ingebrigtsen , 54623-done@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.7 (-) On Mon, Apr 04, 2022 at 10:30:57PM +0200, Angelo Graziosi wrote: > > > Il 03/04/2022 22:00 Angelo Graziosi ha scritto: > > > > > > > Il 03/04/2022 15:36 Alan Third ha scritto: > > > > > > > > > hopefully all we have to do is force an occasional redraw like on > > > GNUstep. Please try the attached. > > > > At the moment it seems to work.. Fingers crossed! > > It still works, so maybe you can commit this patch (v5) and close this issue.. Thanks. I've pushed to master. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 09 06:20:15 2022 Received: (at 54623-done) by debbugs.gnu.org; 9 Apr 2022 10:20:15 +0000 Received: from localhost ([127.0.0.1]:36788 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nd8CV-000608-Gv for submit@debbugs.gnu.org; Sat, 09 Apr 2022 06:20:15 -0400 Received: from smtp-18-i2.italiaonline.it ([213.209.12.18]:35929 helo=libero.it) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nd8CT-0005zm-JV for 54623-done@debbugs.gnu.org; Sat, 09 Apr 2022 06:20:14 -0400 Received: from oxapps-32-142.iol.local ([10.101.8.188]) by smtp-18.iol.local with ESMTPA id d8CNn1AYbuFKJd8CNn7efE; Sat, 09 Apr 2022 12:20:07 +0200 x-libjamoibt: 1601 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=libero.it; s=s2021; t=1649499608; bh=Jep7ONYkdXuqdWfFBRcbeWt9TGaMhTbNcTe/aRje3Ko=; h=From; b=oxjH327k+T78L3WzaVc/64eoBZeSHjpN60O8yzstL2bUNR2N8uLycbaVk1a2hUGl2 OJuiE2SOFVpTF1hatjurq9sfdt6wDZjpavjyCbXv1F81/a94QUq6kVdXVVoI1y6s9Z Y1GslWRSwVx98j4yzIoQBpf+Nw0P4SirMlMjjfEWE7k+Dk6b4dfoEXRNwMwZB/VxeQ ejmWZGUTzlwY7Q4ZvCAJYIReodtAw+SXgHd8UnZGxMnvcPMxQq9/YO3EKCtfEwMXtQ ZVEJ8CH9+801UE/n0ie8JIwUyBZGahYLU47Fd7sKuq5D7fGz+GkryQhnNv0eykhp0y UtuzodvKrDvtw== X-CNFS-Analysis: v=2.4 cv=LZH5VhTi c=1 sm=1 tr=0 ts=62515dd8 cx=a_exe a=d5mb8ohLb9DErTKtnJ5n9A==:117 a=tjL3SZ24MMMA:10 a=IkcTkHD0fZMA:10 a=FPHzXidCtEMA:10 a=hnvC2fSBk2WGzJtNreEA:9 a=QEXdDO2ut3YA:10 Date: Sat, 9 Apr 2022 12:20:07 +0200 (CEST) From: Angelo Graziosi To: Alan Third Message-ID: <2120015207.1756698.1649499607507@mail1.libero.it> In-Reply-To: References: <1573705019.892210.1648765645434@mail1.libero.it> <855785195.1995564.1648852653736@mail1.libero.it> <730015416.968035.1648892521373@mail1.libero.it> <1289229983.972549.1648897213047@mail1.libero.it> <1632758153.1041269.1649016012901@mail1.libero.it> <1326994101.1200217.1649104257887@mail1.libero.it> Subject: Re: bug#54623: No scroll bars on macOS builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v7.10.5-Rev39 X-Originating-IP: 87.21.196.97 X-Originating-Client: open-xchange-appsuite x-libjamsun: cyavjG0JAyBCbVWG+KGAeJ8gsx77+apm x-libjamv: Eo6c1tGhON0= X-CMAE-Envelope: MS4xfLQ820fLLnIIU14GLQbny11NyPIaXlKxO+HfgACmqJIQuEnAo0bW95fJ4KeNvFDLnO2wtLI7zq3h4pbWSRFlBoauOzDhD5bVpdZL7rcLsm/IQiXo4Giq +kGD8ejx3mtEMLSDr6rp1sVmgex3IVYDVAT68FAIeH8tbS4wj+GxtEp9oaaVanhDrm4N1Xxw5FfHM+KrnDdXEDeATi1mNr/TonjAPCWVvsxj+7WYqoQb7gM0 ePLKGtQy6N7d213EoQZSPw== X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 54623-done Cc: Lars Ingebrigtsen , 54623-done@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: -0.8 (/) > Il 08/04/2022 23:47 Alan Third ha scritto: > > > On Mon, Apr 04, 2022 at 10:30:57PM +0200, Angelo Graziosi wrote: > > > > > Il 03/04/2022 22:00 Angelo Graziosi ha scritto: > > > > > > > > > > Il 03/04/2022 15:36 Alan Third ha scritto: > > > > > > > > > > > > hopefully all we have to do is force an occasional redraw like on > > > > GNUstep. Please try the attached. > > > > > > At the moment it seems to work.. Fingers crossed! > > > > It still works, so maybe you can commit this patch (v5) and close this issue.. > > Thanks. I've pushed to master. Thanks. I have built the last master and things look ok! From unknown Thu Jun 19 12:38:29 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 07 May 2022 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator