From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: stardiviner Newsgroups: gmane.emacs.devel Subject: Re: [BUG] ov property line height failed on lone length line when exceeded window width Date: Thu, 04 Jun 2020 08:43:27 +0800 Message-ID: <87a71jlky8.fsf@gmail.com> References: <8C0A9F18-AF7B-4C50-8625-229456BF40E4@gnu.org> <835zc8ciqb.fsf@gnu.org> Reply-To: numbchild@gmail.com Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="128028"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.4; emacs 28.0.50 Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Jun 04 02:44:26 2020 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 1jgdzd-000XAY-Vo for ged-emacs-devel@m.gmane-mx.org; Thu, 04 Jun 2020 02:44:25 +0200 Original-Received: from localhost ([::1]:43806 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jgdzc-0006Ip-S6 for ged-emacs-devel@m.gmane-mx.org; Wed, 03 Jun 2020 20:44:24 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37382) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jgdyu-0005R8-K4 for emacs-devel@gnu.org; Wed, 03 Jun 2020 20:43:40 -0400 Original-Received: from [183.249.132.153] (port=1569 helo=localhost) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jgdys-0008Ks-0i; Wed, 03 Jun 2020 20:43:40 -0400 Original-Received: by localhost (Postfix, from userid 1000) id 0A76F2414F6; Thu, 4 Jun 2020 08:43:28 +0800 (CST) In-reply-to: <835zc8ciqb.fsf@gnu.org> X-Host-Lookup-Failed: Reverse DNS lookup failed for 183.249.132.153 (deferred) Received-SPF: softfail client-ip=183.249.132.153; envelope-from=numbchild@gmail.com; helo=localhost X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/03 19:34:40 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: 53 X-Spam_score: 5.3 X-Spam_bar: +++++ X-Spam_report: (5.3 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FROM=0.001, FSL_HELO_NON_FQDN_1=0.001, HELO_LOCALHOST=3.828, NML_ADSP_CUSTOM_MED=0.9, RDNS_NONE=0.793, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: reject 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:251839 Archived-At: Eli Zaretskii writes: > [Please use "Reply All" to keep the list CC'ed.] > >> From: "numbchild@gmail.com" >> Date: Wed, 3 Jun 2020 19:48:57 +0800 >> >> > Can you please describe how you set the overlay, or better yet, show the code which does so? >> >> The main functionality code set overlay on org-agenda is here: >> >> (defun org-agenda-log-mode-colorize-block () >> "Set different line spacing based on clock time duration." >> (save-excursion >> (let* ((colors (cl-case (alist-get 'background-mode (frame-parameters)) >> ('light >> (list "#F6B1C3" "#FFFF9D" "#BEEB9F" "#ADD5F7")) >> ('dark >> (list "#aa557f" "DarkGreen" "DarkSlateGray" "DarkSlateBlue")))) >> pos >> duration) >> (nconc colors colors) >> (goto-char (point-min)) >> (while (setq pos (next-single-property-change (point) 'duration)) >> (goto-char pos) >> (when (and (not (equal pos (point-at-eol))) >> (setq duration (org-get-at-bol 'duration))) >> ;; larger duration bar height >> ;; FIXME (< duration 15) >> (let ((line-height (if (< duration 15) 1.0 (+ 0.5 (/ duration 30)))) >> (ov (make-overlay (point-at-bol) (1+ (point-at-eol))))) >> (overlay-put ov 'face `(:background ,(car colors) :foreground "black")) >> (setq colors (cdr colors)) >> (overlay-put ov 'line-height line-height) >> (overlay-put ov 'line-spacing (1- line-height)))))))) >> >> (add-hook 'org-agenda-finalize-hook #'org-agenda-log-mode-colorize-block) >> >> And for a minimal example of setting overlay code is here: >> >> (let ((line-height 20) >> (ov (make-overlay (point-at-bol) (1+ (point-at-eol))))) >> (overlay-put ov 'face '(:background "yellow")) >> (overlay-put ov 'line-height line-height) >> (overlay-put ov 'line-spacing (1- line-height))) >> >> > Did you per chance put the overlay on the part of the line that is not shown when you split the window? >> >> About this problem, I suggest you check out my video link, it shows how the overlay line-height property failed >> when I split window with `split-window-right`. The line height property is gone. (I mean the visual effect is >> gone.) > > In that case, this is the expected behavior: if the newline with the > line-height property is not visible, the setting has no effect. It is > conceptually the same as having a tall character or image displayed on > a line: if you then truncate the line so that the tall element is not > visible, the line's height will be decreased to reflect what is > actually on display. I have a little kind of understand. Hmm, is there any workaround of this situation? I want it to be displayed anyway. Change my code, or toggle some options or something else? > > This is not a bug. You are trying to use this property in a way that > it wasn't designed to support. -- [ stardiviner ] I try to make every word tell the meaning that I want to express. Blog: https://stardiviner.github.io/ IRC(freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3