From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.devel Subject: Re: Tick Reduction Date: Mon, 22 Nov 2021 09:19:59 +0100 Message-ID: <87v90khaa8.fsf@gnus.org> References: <87bl2hyzca.fsf@gnus.org> <87sfvswrp8.fsf@gnus.org> <834k88woaj.fsf@gnu.org> <878rxkv980.fsf@gnus.org> <87sfvpmtl8.fsf@gnus.org> <83pmqtqvj5.fsf@gnu.org> <87bl2dmnfa.fsf@gnus.org> <83mtlxquh7.fsf@gnu.org> <877dd1mlsd.fsf@gnus.org> <83k0h1qss5.fsf@gnu.org> <8735npmkm5.fsf@gnus.org> <83h7c5qpag.fsf@gnu.org> <87czmtl2uv.fsf@gnus.org> <83fsrpqog1.fsf@gnu.org> <87wnl1jnfa.fsf@gnus.org> <83czmtqnl7.fsf@gnu.org> <87h7c5jmbg.fsf@gnus.org> <838rxhqmqv.fsf@gnu.org> <878rxhjlot.fsf@gnus.org> <874k85jlmq.fsf@gnus.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8312"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: emacs-devel@gnu.org, stefankangas@gmail.com, dgutov@yandex.ru To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Nov 22 09:21:27 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 1mp4Zq-0001x0-Vi for ged-emacs-devel@m.gmane-mx.org; Mon, 22 Nov 2021 09:21:27 +0100 Original-Received: from localhost ([::1]:43312 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mp4Zp-0008Vf-TW for ged-emacs-devel@m.gmane-mx.org; Mon, 22 Nov 2021 03:21:25 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:40064) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mp4Yd-0007A7-Om for emacs-devel@gnu.org; Mon, 22 Nov 2021 03:20:15 -0500 Original-Received: from [2a01:4f9:2b:f0f::2] (port=51490 helo=quimby.gnus.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mp4Yb-0002b9-7Q; Mon, 22 Nov 2021 03:20:11 -0500 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=SzrFa46lLIWqrPdMSnZlsFBeNXCm2xwI9oMCBavOxHU=; b=qnlfpCVws5yhGgRhTaLBpspJUF NjoqPw8KydeCdvzvYBlHx2CAIILeClaCnF6zl7OLXa3hPHrT7hc/g8SKQ7WXNezLVLTHdHNRRuwHQ H69O1EHb4SR+ITxiRFeD12FagVItJ7JhPQuUhOF6/yFfU2AVN2kxNzrfUWDoO1HfOwWQ=; Original-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 1mp4YS-0005DL-Fk; Mon, 22 Nov 2021 09:20:04 +0100 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAAAXNSR0IArs4c6QAAAAlQTFRF LCkqy8fG////GdDKrAAAAAFiS0dEAmYLfGQAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfl CxYIDxAcw0TQAAAAWklEQVQoz63RSwqAMAwE0CnoDdr7xIX7BjL3v4pShIw7S53dI1nkA6yncMRm 4fTEwfIg7h5TIFGRaCaoSBCC2ARdK/YzKBOcDDRZuytiGbte9AVXzL/kA9ZyAS4GO9+aijnyAAAA WmVYSWZNTQAqAAAACAAFARIAAwAAAAEAAQAAARoABQAAAAEAAABKARsABQAAAAEAAABSASgAAwAA AAEAAgAAAhMAAwAAAAEAAQAAAAAAAAAAAEgAAAABAAAASAAAAAEfUvc0AAAAJXRFWHRkYXRlOmNy ZWF0ZQAyMDIxLTExLTIyVDA4OjE1OjE2KzAwOjAwKHP+xQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAy MS0xMS0yMlQwODoxNToxNiswMDowMFkuRnkAAAAXdEVYdGV4aWY6WUNiQ3JQb3NpdGlvbmluZwAx rA+AYwAAADh0RVh0aWNjOmNvcHlyaWdodABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNr YXJkIENvbXBhbnn5V3k3AAAAIXRFWHRpY2M6ZGVzY3JpcHRpb24Ac1JHQiBJRUM2MTk2Ni0yLjFX rdpHAAAAJnRFWHRpY2M6bWFudWZhY3R1cmVyAElFQyBodHRwOi8vd3d3LmllYy5jaBx/AEwAAAA3 dEVYdGljYzptb2RlbABJRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNS R0JEU0ipAAAAAElFTkSuQmCC X-Now-Playing: Irreversible Entanglements's _Open The Gates_: "Keys to Creation" In-Reply-To: <874k85jlmq.fsf@gnus.org> (Lars Ingebrigtsen's message of "Sun, 21 Nov 2021 21:31:57 +0100") X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a01:4f9:2b:f0f::2 (failed) Received-SPF: pass client-ip=2a01:4f9:2b:f0f::2; envelope-from=larsi@gnus.org; helo=quimby.gnus.org X-Spam_score_int: -35 X-Spam_score: -3.6 X-Spam_bar: --- X-Spam_report: (-3.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RDNS_NONE=0.793, 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.29 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:279908 Archived-At: --=-=-= Content-Type: text/plain I wondered whether it'd be much work to implement a min-width thing for a sequence of characters. So with this (insert "||" (propertize "foo" 'min-width '(10.0)) "||") and the proof of concept patch (it needs some more sanity checking) below I get: --=-=-= Content-Type: image/png Content-Disposition: inline Content-Transfer-Encoding: base64 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 --=-=-= Content-Type: text/plain which seems promising. However, point movement over the stretch glyph is very wonky -- Emacs basically refuses to put point after that stretch glyph. Anybody got any tips on what I need to do to get point movement working here? diff --git a/src/dispextern.h b/src/dispextern.h index a698f6546b..a78be900db 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -2185,6 +2185,8 @@ #define MAX_FRINGE_BITMAPS (1<ellipsis_p = true; } + +/*********************************************************************** + `min-width' property + ***********************************************************************/ + +/* Set up iterator IT from `min-width' property at its current position. + Called from handle_stop. */ + +static enum prop_handled +handle_min_width_prop (struct it *it) +{ + if (STRINGP (it->string) || !it->glyph_row) + return HANDLED_NORMALLY; + + Lisp_Object buffer = it->w->contents; + struct text_pos *position = &it->current.pos; + ptrdiff_t bufpos = CHARPOS (*position); + + Lisp_Object propval = Fget_text_property (make_fixnum (bufpos), + Qmin_width, buffer); + /* We're being called at the end of the `min-width' sequence, + probably. */ + if (NILP (propval)) + { + /* Check that we're really right after the sequence of + characters covered by this `min-width'. */ + if (!NILP (it->min_width_property) + && bufpos > BEGV + && EQ (it->min_width_property, + Fget_text_property (make_fixnum (bufpos - 1), + Qmin_width, buffer))) + { + struct font *font = NULL; + double width; + if (FRAME_WINDOW_P (it->f)) + { +#ifdef HAVE_WINDOW_SYSTEM + struct face *face = FACE_FROM_ID (it->f, it->face_id); + font = face->font ? face->font : FRAME_FONT (it->f); + const int stretch_ascent = + (((it->ascent + it->descent) + * FONT_BASE (font)) / FONT_HEIGHT (font)); + prepare_face_for_display (it->f, face); +#else + struct face *face = NULL; +#endif + calc_pixel_width_or_height (&width, it, + XCAR (it->min_width_property), + font, true, NULL); + width -= it->current_x - it->min_width_start; + append_stretch_glyph (it, Qnil, + (int)width, + it->ascent + it->descent, + stretch_ascent); + it->min_width_property = Qnil; + } + } + } + /* We're at the start of a `min-width' sequence -- record the + position and the property, so that we can later see if we're at + the end. */ + else if (CONSP (propval) && NUMBERP (XCAR (propval))) + { + if (bufpos == BEGV + || (bufpos > BEGV + && !EQ (propval, Fget_text_property (make_fixnum (bufpos - 1), + Qmin_width, buffer)))) + { + it->min_width_property = propval; + it->min_width_start = it->current_x; + } + } + return HANDLED_NORMALLY; +} + /*********************************************************************** @@ -7186,6 +7267,7 @@ reseat_1 (struct it *it, struct text_pos pos, bool set_stop_p) } /* This make the information stored in it->cmp_it invalidate. */ it->cmp_it.id = -1; + it->min_width_property = Qnil; } -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no --=-=-=--