From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 29 12:59:07 2021 Received: (at submit) by debbugs.gnu.org; 29 Jan 2021 17:59:07 +0000 Received: from localhost ([127.0.0.1]:52915 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5Y30-000522-UM for submit@debbugs.gnu.org; Fri, 29 Jan 2021 12:59:07 -0500 Received: from lists.gnu.org ([209.51.188.17]:52612) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5Y2w-00051s-SV for submit@debbugs.gnu.org; Fri, 29 Jan 2021 12:59:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55460) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l5Y2w-0003KF-FS for bug-gnu-emacs@gnu.org; Fri, 29 Jan 2021 12:59:02 -0500 Received: from mout01.posteo.de ([185.67.36.65]:54268) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l5Y2n-0001Ag-KE for bug-gnu-emacs@gnu.org; Fri, 29 Jan 2021 12:59:02 -0500 Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id D8D25160060 for ; Fri, 29 Jan 2021 18:58:47 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1611943127; bh=73vP7/V10sSH7GA8Nvj+gSHE+ulwbgr2PCwUuJvH0lA=; h=To:Subject:From:Date:From; b=V0/j2TdE8QHnQskEafhqWfivxUvw/aW01FI3ZQAU3oSciGUlytetlNwAWo/tBrU4P SboMdQAIe3+jAPgetbp/NnuA56nrILfaIAOEzbU0Hi9xrYcykAb+hJd+13prrZNiZY JZD7ZwdKDgm3qkU8/AMQJsLnyaMs3Ro19mv7mdbDfjMWwbEVmSL0tggk9YUqhO3SVq 9gfN8Yek4xyKMU42r8uO+i9CpqVKrGGmhftgFjBU6pgI3NZ77l0EKwsI/lOeXFcUjG l+CI0oy0IDlYEJB1Mr7SriXoQXVuaZgaxtm4Hwo7TMzN64nyQt8J2+rh3lx6ymr2af EqBboJ8URwC2A== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4DS4pH2tTnz6tmc for ; Fri, 29 Jan 2021 18:58:46 +0100 (CET) To: bug-gnu-emacs@gnu.org Subject: 27.1; Display problem with minibuffer overlay when using display property From: Clemens Message-ID: <453b0490-261a-9e80-5d0c-8b3e4ba6d9f0@posteo.de> Date: Fri, 29 Jan 2021 18:58:46 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=185.67.36.65; envelope-from=clemens.radermacher@posteo.de; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) 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.3 (--) When using an overlay with an `after-string` which uses `display` the prompt background bleeds into the after string: (set-face-attribute 'minibuffer-prompt nil :background "purple") (minibuffer-with-setup-hook (lambda () (overlay-put (make-overlay (point-max) (point-max) nil t t) 'after-string (propertize " world" 'display " minibuffer"))) (read-string "Hello")) While I would expect it to be displayed like when using: (minibuffer-with-setup-hook (lambda () (overlay-put (make-overlay (point-max) (point-max) nil t t) 'after-string " minibuffer")) (read-string "Hello")) From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 29 13:37:04 2021 Received: (at 46177) by debbugs.gnu.org; 29 Jan 2021 18:37:04 +0000 Received: from localhost ([127.0.0.1]:52951 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5Ydj-0006Ms-BS for submit@debbugs.gnu.org; Fri, 29 Jan 2021 13:37:04 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43992) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5Ydg-0006MN-Hs for 46177@debbugs.gnu.org; Fri, 29 Jan 2021 13:37:01 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:56582) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l5Ydb-00013H-8T; Fri, 29 Jan 2021 13:36:55 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:4488 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1l5Yda-0003hY-GW; Fri, 29 Jan 2021 13:36:55 -0500 Date: Fri, 29 Jan 2021 20:37:12 +0200 Message-Id: <83mtwry4h3.fsf@gnu.org> From: Eli Zaretskii To: Clemens In-Reply-To: <453b0490-261a-9e80-5d0c-8b3e4ba6d9f0@posteo.de> (message from Clemens on Fri, 29 Jan 2021 18:58:46 +0100) Subject: Re: bug#46177: 27.1; Display problem with minibuffer overlay when using display property References: <453b0490-261a-9e80-5d0c-8b3e4ba6d9f0@posteo.de> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 46177 Cc: 46177@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 (-) > From: Clemens > Date: Fri, 29 Jan 2021 18:58:46 +0100 > > When using an overlay with an `after-string` which uses `display` > the prompt background bleeds into the after string: That's a feature: Emacs treats display strings and overlay strings differently for the purposes of face merging. From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 29 15:26:37 2021 Received: (at 46177) by debbugs.gnu.org; 29 Jan 2021 20:26:37 +0000 Received: from localhost ([127.0.0.1]:53037 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5aLk-0000W6-RB for submit@debbugs.gnu.org; Fri, 29 Jan 2021 15:26:37 -0500 Received: from mout02.posteo.de ([185.67.36.66]:37045) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5aLh-0000Vq-Ll for 46177@debbugs.gnu.org; Fri, 29 Jan 2021 15:26:34 -0500 Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id 332322400FD for <46177@debbugs.gnu.org>; Fri, 29 Jan 2021 21:26:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1611951987; bh=iXyAqv2V4sc3O88DYlFkg5zFfqLMtdtQJrAVyvKFpr0=; h=Subject:To:Cc:From:Date:From; b=hyZO/5sI3fcDQriBgKF+nFJfwwMFyr9pvIwl9s0m5RFZkO1Z5l0tE5Sh1NBOOZYU9 hbmgDLcQKzVulpSVJ4UQIrm2N/XmuWtJgVhf4IUWJbNyekCjfPEZDshuiQidROKLMA sXHXLqEsBPUV9rihYUHr8Ii+lAJSfgjkExP8mR4eVZPKa0clyC2xN8oWq3AbkP+X3G /+NyhMzqv+5POBh+59KvwJGrcjmFN6ro3S1dWHra+1/sypPo7UQ4RfshsiU6ZG9Qfo Fq75uoCr3Fy4z5H7N3n6ulqTg/OTRFkOa6a0kcTVK/++vwzeQ2zxPiBEjkYZbMIfPK 3v9frj3v7MROA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4DS84f3jf4z9rxD; Fri, 29 Jan 2021 21:26:26 +0100 (CET) Subject: Re: bug#46177: 27.1; Display problem with minibuffer overlay when using display property To: Eli Zaretskii References: <453b0490-261a-9e80-5d0c-8b3e4ba6d9f0@posteo.de> <83mtwry4h3.fsf@gnu.org> From: Clemens Message-ID: Date: Fri, 29 Jan 2021 21:26:26 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <83mtwry4h3.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 46177 Cc: 46177@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: -3.3 (---) > That's a feature: Emacs treats display strings and overlay strings > differently for the purposes of face merging. Okay, thanks. I have a problem with this when displaying completion candidates in the minibuffer. The candidates are displayed via `after-string` overlay. The candidates are provided by the caller and can contain the `display` property. Right now I "inline" any parts of the string that use `display` to avoid this: (defun selectrum--display-string (str) "Return display string of STR." (let ((len (length str)) (display "") (start 0) (end 0)) (while (not (eq len end)) (setq end (next-single-property-change start 'display str len)) (let ((val (get-text-property start 'display str))) (if (and val (stringp val)) (setq display (concat display val)) (setq display (concat display (substring str start end))))) (setq start end)) display)) Is there a better way? From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 30 03:26:36 2021 Received: (at 46177) by debbugs.gnu.org; 30 Jan 2021 08:26:36 +0000 Received: from localhost ([127.0.0.1]:53606 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5laV-0000Bk-Qk for submit@debbugs.gnu.org; Sat, 30 Jan 2021 03:26:36 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57138) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5laT-0000BX-IX for 46177@debbugs.gnu.org; Sat, 30 Jan 2021 03:26:34 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40282) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l5laN-0003MJ-5T; Sat, 30 Jan 2021 03:26:27 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3580 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1l5laL-0000m5-WE; Sat, 30 Jan 2021 03:26:26 -0500 Date: Sat, 30 Jan 2021 10:26:47 +0200 Message-Id: <83czxmakzc.fsf@gnu.org> From: Eli Zaretskii To: Clemens In-Reply-To: (message from Clemens on Fri, 29 Jan 2021 21:26:26 +0100) Subject: Re: bug#46177: 27.1; Display problem with minibuffer overlay when using display property References: <453b0490-261a-9e80-5d0c-8b3e4ba6d9f0@posteo.de> <83mtwry4h3.fsf@gnu.org> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 46177 Cc: 46177@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 (-) > Cc: 46177@debbugs.gnu.org > From: Clemens > Date: Fri, 29 Jan 2021 21:26:26 +0100 > > > That's a feature: Emacs treats display strings and overlay strings > > differently for the purposes of face merging. > > Okay, thanks. I have a problem with this when displaying completion > candidates in the minibuffer. The candidates are displayed via > `after-string` overlay. The candidates are provided by the caller and > can contain the `display` property. Right now I "inline" any parts of > the string that use `display` to avoid this: > > > (defun selectrum--display-string (str) > "Return display string of STR." > (let ((len (length str)) > (display "") > (start 0) > (end 0)) > (while (not (eq len end)) > (setq end (next-single-property-change start 'display str len)) > (let ((val (get-text-property start 'display str))) > (if (and val (stringp val)) > (setq display (concat display val)) > (setq display (concat display (substring str start end))))) > (setq start end)) > display)) > > > Is there a better way? Better in what sense? If you mean a way that prevents the background of the prompt from being applied to the text you display via the overlay, I think the best/only way is for the overlay string or display string to specify the background color. From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 30 04:30:33 2021 Received: (at 46177) by debbugs.gnu.org; 30 Jan 2021 09:30:33 +0000 Received: from localhost ([127.0.0.1]:53653 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5maP-0001sY-46 for submit@debbugs.gnu.org; Sat, 30 Jan 2021 04:30:33 -0500 Received: from mout02.posteo.de ([185.67.36.66]:55211) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5maL-0001sI-6S for 46177@debbugs.gnu.org; Sat, 30 Jan 2021 04:30:31 -0500 Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id 40C022400FC for <46177@debbugs.gnu.org>; Sat, 30 Jan 2021 10:30:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1611999022; bh=bIW5CLeT84UyS9gCZ0r1HtKo3wIF/t+iAi2nf732FRc=; h=Subject:To:Cc:From:Date:From; b=ZwN/odnEoUvzKJ09M/H6a4W6E6ScWW+2h29+KR6Oq8ooM+vx3s01I+6IWdLkjlNL7 m/6cMKShU/HPsKzwM7FSoTwNhlepQ2ze5lZTwvQ2QtInnmSG8C4cx3Z0MMurf5VUZd QHXlKpBLq0PQOqAkDHzuxeBUp390jlQsskk4/vFg5Vby7oohFTYGCO8QteM+BVHS8u KW23VmQU5pZSxHBL+3X3iBJAYWvavZ1f3Kpo6ZjMcTWH3lMZ7IgBoz22JIqDaVXqwu VBx+wJiZF868ZvRYsP9r0YjPoGDJWf0b4FwetVWiTS8MESuBzzNdfcAoDHxCRqpMc/ 7Q6uag2waB5aQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4DSTT94vw6z9rxR; Sat, 30 Jan 2021 10:30:21 +0100 (CET) Subject: Re: bug#46177: 27.1; Display problem with minibuffer overlay when using display property To: Eli Zaretskii References: <453b0490-261a-9e80-5d0c-8b3e4ba6d9f0@posteo.de> <83mtwry4h3.fsf@gnu.org> <83czxmakzc.fsf@gnu.org> From: Clemens Message-ID: Date: Sat, 30 Jan 2021 10:30:21 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <83czxmakzc.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 46177 Cc: 46177@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: -3.3 (---) > Better in what sense? > > If you mean a way that prevents the background of the prompt from > being applied to the text you display via the overlay, I think the > best/only way is for the overlay string or display string to specify > the background color. Yes, I meant to avoid the issue that the minibuffer prompt face gets applied to strings defined in the display property. The code I posted simply removes any strings in the display spec and inlines them, which seems to work well, too. The problem is not only the background color it seems, I would need to completely undo the effects of the minibuffer prompt face and I don't know how to do that. But what I'm doing now works and if there isn't a better solution I'm fine with using it. I don't understand the reasons for the current behaviour but please check out the following which seems not appropriate to me: (set-face-attribute 'minibuffer-prompt nil :foreground "purple") (minibuffer-with-setup-hook (lambda () (overlay-put (make-overlay (point-max) (point-max) nil t t) 'after-string (concat " from" (propertize " world" 'display " minibuffer")))) (read-string "Hello")) Even with the " from" string between the string defined in the display property gets the prompt face applied. From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 30 05:45:59 2021 Received: (at 46177) by debbugs.gnu.org; 30 Jan 2021 10:45:59 +0000 Received: from localhost ([127.0.0.1]:53763 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5nlO-0005m6-Td for submit@debbugs.gnu.org; Sat, 30 Jan 2021 05:45:59 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49128) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5nlM-0005lt-K8 for 46177@debbugs.gnu.org; Sat, 30 Jan 2021 05:45:57 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:42207) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l5nlH-0006El-CO; Sat, 30 Jan 2021 05:45:51 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:4242 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1l5nlG-0003zs-Nh; Sat, 30 Jan 2021 05:45:51 -0500 Date: Sat, 30 Jan 2021 12:46:11 +0200 Message-Id: <83y2ga8zyk.fsf@gnu.org> From: Eli Zaretskii To: Clemens In-Reply-To: (message from Clemens on Sat, 30 Jan 2021 10:30:21 +0100) Subject: Re: bug#46177: 27.1; Display problem with minibuffer overlay when using display property References: <453b0490-261a-9e80-5d0c-8b3e4ba6d9f0@posteo.de> <83mtwry4h3.fsf@gnu.org> <83czxmakzc.fsf@gnu.org> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 46177 Cc: 46177@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 (-) > Cc: 46177@debbugs.gnu.org > From: Clemens > Date: Sat, 30 Jan 2021 10:30:21 +0100 > > The problem is not only the background color it seems, I would need > to completely undo the effects of the minibuffer prompt face and I > don't know how to do that. Use a face which explicitly overrides every attribute of minibuffer prompt face, I guess? > (set-face-attribute 'minibuffer-prompt nil :foreground "purple") > (minibuffer-with-setup-hook > (lambda () > (overlay-put > (make-overlay (point-max) (point-max) nil t t) > 'after-string > (concat " from" > (propertize " world" > 'display > " minibuffer")))) > (read-string "Hello")) > > > Even with the " from" string between the string defined in the display > property gets the prompt face applied. Because " minibuffer" is a display string, and its buffer position is still EOB. That it has the " from " string in the overlay property before it doesn't change the buffer position whose face affects the display string. From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 30 06:10:07 2021 Received: (at 46177) by debbugs.gnu.org; 30 Jan 2021 11:10:08 +0000 Received: from localhost ([127.0.0.1]:53821 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5o8k-0006Nd-WC for submit@debbugs.gnu.org; Sat, 30 Jan 2021 06:10:07 -0500 Received: from mout01.posteo.de ([185.67.36.65]:38740) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5o8i-0006Mm-EZ for 46177@debbugs.gnu.org; Sat, 30 Jan 2021 06:10:05 -0500 Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id 29E0B160060 for <46177@debbugs.gnu.org>; Sat, 30 Jan 2021 12:09:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1612004998; bh=/F2aXb65omzxEmlexOH+uvEBGVnDs8ob4TDH000f7LY=; h=Subject:To:Cc:From:Date:From; b=ZYmLYfcXvWZHtVhvLmOyjEcxlbEJmJYisPrLy52w2Tq65S5xjcK0Qwen5YCniyRDS Ly4Pi29WXpqGR+l2ya1NrMDgBniMANkj+uNsSNK9hvXwxTbGMwIhQ6kZ4fEnNPolk1 Vpjo+FjrDc+XtwoE3b8msNQP8mdyFkq8Ygqb9qXyKCOH3VghLR8K3ZVCS6+s5VZI5u sbwVGSzUe7m34t/OKkSaFQ8n+BmVnD1e76TZBWLoan1GP3GIJnqSbpDOpat2R8zNKr XQ1ceZUjeRa2sTGSxlXHKsC5nJ2t0vd9OSRkQnvSJ2ItjKIgqou314vDcTY5YixHDe GO+k3QFw89ZFA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4DSWh53NlBz6tmW; Sat, 30 Jan 2021 12:09:57 +0100 (CET) Subject: Re: bug#46177: 27.1; Display problem with minibuffer overlay when using display property To: Eli Zaretskii References: <453b0490-261a-9e80-5d0c-8b3e4ba6d9f0@posteo.de> <83mtwry4h3.fsf@gnu.org> <83czxmakzc.fsf@gnu.org> <83y2ga8zyk.fsf@gnu.org> From: Clemens Message-ID: <33ba44f6-5d14-c7dc-4135-a70a1a166f10@posteo.de> Date: Sat, 30 Jan 2021 12:09:57 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <83y2ga8zyk.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 46177 Cc: 46177@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: -3.3 (---) > Use a face which explicitly overrides every attribute of minibuffer > prompt face, I guess? As far as I understand I would have to loop through the overlay string, too and apply those face adjustments to every of those display property strings. I think then I can also just inline them like in my shown example which avoid this issue in the first place. > >> (set-face-attribute 'minibuffer-prompt nil :foreground "purple") >> (minibuffer-with-setup-hook >> (lambda () >> (overlay-put >> (make-overlay (point-max) (point-max) nil t t) >> 'after-string >> (concat " from" >> (propertize " world" >> 'display >> " minibuffer")))) >> (read-string "Hello")) >> >> >> Even with the " from" string between the string defined in the display >> property gets the prompt face applied. > > Because " minibuffer" is a display string, and its buffer position is > still EOB. That it has the " from " string in the overlay property > before it doesn't change the buffer position whose face affects the > display string. Because the " minibuffer" string follows the non affected " from" string this is unexpected from a caller/UI viewpoint IMO. I don't understand the underlying reasoning for this but if you don't think there is something to fix here, I will accept that and continue using my workaround. From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 30 07:06:43 2021 Received: (at 46177) by debbugs.gnu.org; 30 Jan 2021 12:06:43 +0000 Received: from localhost ([127.0.0.1]:53995 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5p1W-000802-Oi for submit@debbugs.gnu.org; Sat, 30 Jan 2021 07:06:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40798) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5p1U-0007zq-Rh for 46177@debbugs.gnu.org; Sat, 30 Jan 2021 07:06:41 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:43101) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l5p1P-0000aG-Dq; Sat, 30 Jan 2021 07:06:35 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1328 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1l5p1N-0001CI-QR; Sat, 30 Jan 2021 07:06:34 -0500 Date: Sat, 30 Jan 2021 14:06:56 +0200 Message-Id: <83tuqy8w7z.fsf@gnu.org> From: Eli Zaretskii To: Clemens In-Reply-To: <33ba44f6-5d14-c7dc-4135-a70a1a166f10@posteo.de> (message from Clemens on Sat, 30 Jan 2021 12:09:57 +0100) Subject: Re: bug#46177: 27.1; Display problem with minibuffer overlay when using display property References: <453b0490-261a-9e80-5d0c-8b3e4ba6d9f0@posteo.de> <83mtwry4h3.fsf@gnu.org> <83czxmakzc.fsf@gnu.org> <83y2ga8zyk.fsf@gnu.org> <33ba44f6-5d14-c7dc-4135-a70a1a166f10@posteo.de> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 46177 Cc: 46177@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 (-) > Cc: 46177@debbugs.gnu.org > From: Clemens > Date: Sat, 30 Jan 2021 12:09:57 +0100 > > Because the " minibuffer" string follows the non affected " from" string > this is unexpected from a caller/UI viewpoint IMO. Once Emacs is about to display a 'display' property string, the rules for which faces are relevant change. > I don't understand the underlying reasoning for this but if you > don't think there is something to fix here, I will accept that and > continue using my workaround. It's just how Emacs worked since v21, so I think it's too late to change now. From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 30 07:10:50 2021 Received: (at 46177-done) by debbugs.gnu.org; 30 Jan 2021 12:10:50 +0000 Received: from localhost ([127.0.0.1]:54006 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5p5V-00086M-RZ for submit@debbugs.gnu.org; Sat, 30 Jan 2021 07:10:50 -0500 Received: from mout01.posteo.de ([185.67.36.65]:57392) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5p5T-000866-Ch for 46177-done@debbugs.gnu.org; Sat, 30 Jan 2021 07:10:48 -0500 Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id CAC2C160060 for <46177-done@debbugs.gnu.org>; Sat, 30 Jan 2021 13:10:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1612008640; bh=td+Y4aAGR7nWQfX32Dux315FkkmreSSFAyE3LpZIWl8=; h=Subject:To:Cc:From:Date:From; b=WWbLYbYMAAWQMNAZha/FW/65HEcJ/SgjN0AAJ5TDIWhFzSZaM2VTssgQsIp0Sj0Y1 Q57GpF0fJP1orYub5JMZoKpNcC9fn3PYn10DBmGBEPTAa352tp0BdizYrBhqNDxHuO 0vBJkFsVPfw1xO8c58hO8R3jV4Ze4huzuUDiIJN29NuQMj+DVziYi/0g7WUMuFNM1L rPV/aQHhhDVNZRjnMNv7jVcXYwDXjWfexvt1Px8J1upRJZI/kfxkMUX1Waf/KImdkO e13nOZroW0yfL498QPnc2Hs4/iWO86zR/pUsBiQ2i+naL535nqVdjYGHVeKp+xUj9v KbxjL0LkT9NeA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4DSY281L9gz9rxT; Sat, 30 Jan 2021 13:10:39 +0100 (CET) Subject: Re: bug#46177: 27.1; Display problem with minibuffer overlay when using display property To: Eli Zaretskii References: <453b0490-261a-9e80-5d0c-8b3e4ba6d9f0@posteo.de> <83mtwry4h3.fsf@gnu.org> <83czxmakzc.fsf@gnu.org> <83y2ga8zyk.fsf@gnu.org> <33ba44f6-5d14-c7dc-4135-a70a1a166f10@posteo.de> <83tuqy8w7z.fsf@gnu.org> From: Clemens Message-ID: <20cb9f14-581d-8665-d8d4-9d83fdec3c03@posteo.de> Date: Sat, 30 Jan 2021 13:10:39 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <83tuqy8w7z.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 46177-done Cc: 46177-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: -3.3 (---) > It's just how Emacs worked since v21, so I think it's too late to > change now. I see, thanks for your discussion and help, I will close this then. From unknown Tue Jun 17 22:26:50 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, 27 Feb 2021 12:24:08 +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