From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.devel Subject: Re: Horizontal centering in the display engine Date: Wed, 14 Apr 2021 10:28:07 +0200 Message-ID: <5291bf34-cb80-8a22-1187-195cbc6b3544@gmx.at> References: <87fszuvy7p.fsf@catern.com> <83czuy112a.fsf@gnu.org> <877dl6vvax.fsf@catern.com> <83blai0y3i.fsf@gnu.org> <8735vtx62w.fsf@catern.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15919"; mail-complaints-to="usenet@ciao.gmane.io" To: sbaugh@catern.com, emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Apr 14 10:29:28 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lWats-000423-9c for ged-emacs-devel@m.gmane-mx.org; Wed, 14 Apr 2021 10:29:28 +0200 Original-Received: from localhost ([::1]:57524 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lWatr-000350-3B for ged-emacs-devel@m.gmane-mx.org; Wed, 14 Apr 2021 04:29:27 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:53402) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lWasx-0002QG-Kk for emacs-devel@gnu.org; Wed, 14 Apr 2021 04:28:31 -0400 Original-Received: from mout.gmx.net ([212.227.15.18]:43413) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lWasv-0001sK-Iy for emacs-devel@gnu.org; Wed, 14 Apr 2021 04:28:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1618388888; bh=DLn0TUs+6WPiWMV7zEPuAxG2wC8WNR6miJvtNXRO35M=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=PRuas4PQiR9q9QGNUy1tLHw84s/r+X3KlgiJxvKbFkz2n3eoe3DrLOsUvWZDd5jA9 Hz+yCBecSWPIlVEC0cBvMPRXc0KJTLdgL4/sf1NsRgaoa4R1qK4Xtwbh4Jvu5Vnu/J 2BqRoXj/gljVGrNDONpT2+rsFdhizSrCWdbU4OrI= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.1.100] ([212.95.5.157]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MWASe-1l3VJK3P4s-00XZdX; Wed, 14 Apr 2021 10:28:08 +0200 In-Reply-To: <8735vtx62w.fsf@catern.com> Content-Language: en-US X-Provags-ID: V03:K1:KHK61CP9/vTL1ZSYEdlg6Wd/tyOGC2Z60LC74Y0yW/3giQhh61+ vi/gE82JhmxFMyYshkblsKAV//DfXTA5EHjM9KcihsozwSAK9wzN2c7P6diymJsYEVmC1SJ kkkVB8REBhPvWtHsawTIWuQD+HS3B77d/pZ/IS+/rA5yweSuIs6kI5Ym4xaEz2mNWlql/Ad Ah0Oel32ar7yuc2TZZ96A== X-UI-Out-Filterresults: notjunk:1;V03:K0:4dfqNUlxlDs=:4GDAyc7hN1WQgTkJsY4kSb izZIrn5zMWbsBmgX5udz8akPAZ/tEfQjtWW34iuKFUfwzZHk1bfCD0wQvmBdMePu3DdfFUhIr 8wUKmIO9AMTOfbl8v9QERmXkoWih+0h6pTKfv3WLZm5I4ptPtBPJsAkho/exnq2BIQ50Ffzzq fy69NTusnnkOLR92cTe7oiWHoyQVLu7shqJZcn3wdfxO45aThPeIWqIeAFgYfdxe+R63sjyLO ot/ki/ppMkZbkhdxmY36YTH7MDqSPU8D+aE47k2S/iW3s6MTa/M/qqy+SlRfH8f9yaYHRM0Rf rZ9AaWX3UKqDUrQsjV/TWnzD+vNH/2kgzS4p+G42geLQ4PG4SaiFzrtkn6Lu/oCdjjpXP4S7q tO1KSMmsRYeMSawpKSUeYUhBxSb4d/7GOZHaeBZrRQfXwduZ/Hm7vXc5AmfhmgjC4uwB9iUJW ePoM/Oqm8VtoW+HjuLUnWOII1tBJ1J3Jmmmz6p7gTWXiT0A0a2ZDt2DSS8KuC3G58P8+czINc +ewPx1wo/1aPdS2uovYe7GarT8hnyizKkFg7ufQl+H1NuIKPnQ471cdsu4VK+z19WhaXvbCU4 6fKxPfgs9xABC0kUTQ1kGeZOyvP0B5tNAeX+m39U0R2kbm+eV4HCdGTmLADSyo+L91d7nzqO3 FNF5MLm0aib8uRtshqvPm28J2X+swKGH9SKyc0Kl9j8ShiF0olkHu1D+EGldOjAHuQQHO+ELO ZMdhfAFYFf0ctxpfx1SBLM1LVkIPxVJI0snV4cm1SYgMWEsme9wAHeSx8QV6S2ncaTjeIY9o Received-SPF: pass client-ip=212.227.15.18; envelope-from=rudalics@gmx.at; helo=mout.gmx.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:268029 Archived-At: > The behavior I want is what's described here: > https://en.wikipedia.org/wiki/Typographic_alignment#Centered I think the below should do most of what's needed. (defun center-after-text-change (begin end _length) "..." (save-excursion (let ((from (progn (goto-char begin) (line-beginning-position))) (to (progn (goto-char end) (line-beginning-position 2)))) (center-region from to)))) (defun center-after-window-change (window) "..." (with-current-buffer (window-buffer window) (setq fill-column (window-body-width window)) (center-region (window-start window) (window-end window)))) (with-current-buffer (get-buffer-create "*text*") (add-hook 'after-change-functions #'center-after-text-change 0 t) (add-hook 'window-state-change-functions #'center-after-window-change 0 t)) (switch-to-buffer "*text*") But if you insist on handling variable-pitch text, things will get expensive. martin