GNU bug report logs - #45913
28.0.50; Cursor doesn't blink after `make-frame-on-display`

Previous Next

Package: emacs;

Reported by: Stefan Monnier <monnier <at> iro.umontreal.ca>

Date: Sat, 16 Jan 2021 04:46:02 UTC

Severity: minor

Found in version 28.0.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 45913 in the body.
You can then email your comments to 45913 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#45913; Package emacs. (Sat, 16 Jan 2021 04:46:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 16 Jan 2021 04:46:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.0.50; Cursor doesn't blink after `make-frame-on-display`
Date: Fri, 15 Jan 2021 23:44:49 -0500
Package: Emacs
Version: 28.0.50


If you do:

    emacs -Q -nw

followed by

    M-x make-frame-on-display RET :1 RET

The cursor doesn't blink in that new GUI frame, whereas if we do the
reverse (start `emacs -Q` followed by the creation of a tty frame),
the cursor does blink in the GUI frame.


        Stefan



In GNU Emacs 28.0.50 (build 1, i686-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0)
 of 2021-01-08 built on alfajor
Repository revision: 5f49898e79db25bd585e663cfcf30273e414ccd7
Repository branch: work
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000
System Description: Debian GNU/Linux bullseye/sid

Configured using:
 'configure -C --enable-checking --enable-check-lisp-object-type --with-modules --with-cairo --with-tiff=ifavailable 'CFLAGS=-Wall -g3 -Og -Wno-pointer-sign' PKG_CONFIG_PATH=/home/monnier/lib/pkgconfig'






Reply sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
You have taken responsibility. (Tue, 19 Jan 2021 17:13:03 GMT) Full text and rfc822 format available.

Notification sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
bug acknowledged by developer. (Tue, 19 Jan 2021 17:13:03 GMT) Full text and rfc822 format available.

Message #10 received at 45913-done <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: ola.x.nilsson <at> axis.com, 45913-done <at> debbugs.gnu.org,
 45857-done <at> debbugs.gnu.org, 30994-done <at> debbugs.gnu.org
Subject: Re: bug#45857: 28.0.50; Not possible to set package-user-dir in
 early-init.el
Date: Tue, 19 Jan 2021 12:11:57 -0500
> Maybe some time in the future this need will re-appear at which point we
> may want to introduce some fancier system to control which var is
> initialized when, but I think for now the patch below is
> a better solution.

Pushed,


        Stefan

>
>         Stefan
>
>
> 2021-01-15  Stefan Monnier  <monnier <at> iro.umontreal.ca>
>
>     * lisp/startup.el: Fix bug#45857, bug#30994, and bug#45913.
>
>     (command-line): Don't re-evaluate the `custom-delayed-init-variables`
>     a second time after reading the `early-init.el` file.
>     (x-apply-session-resources): Set `blink-cursor-mode` rather than
>     `no-blinking-cursor`.
>
>     * lisp/frame.el (blink-cursor-start): Turn `blink-cursor-mode` off
>     if `blink-cursor-mode` was set to nil.
>     (blink-cursor-mode): Default to it being enabled regardless of
>     `window-system`.
>
>
> diff --git a/lisp/frame.el b/lisp/frame.el
> index e2d7f21a49..06aab269dd 100644
> --- a/lisp/frame.el
> +++ b/lisp/frame.el
> @@ -2552,13 +2552,15 @@ blink-cursor-start
>  This starts the timer `blink-cursor-timer', which makes the cursor blink
>  if appropriate.  It also arranges to cancel that timer when the next
>  command starts, by installing a pre-command hook."
> -  (when (null blink-cursor-timer)
> +  (cond
> +   ((null blink-cursor-mode) (blink-cursor-mode -1))
> +   ((null blink-cursor-timer)
>      ;; Set up the timer first, so that if this signals an error,
>      ;; blink-cursor-end is not added to pre-command-hook.
>      (setq blink-cursor-blinks-done 1)
>      (blink-cursor--start-timer)
>      (add-hook 'pre-command-hook #'blink-cursor-end)
> -    (internal-show-cursor nil nil)))
> +    (internal-show-cursor nil nil))))
>  
>  (defun blink-cursor-timer-function ()
>    "Timer function of timer `blink-cursor-timer'."
> @@ -2637,9 +2639,8 @@ blink-cursor-mode
>  terminals, cursor blinking is controlled by the terminal."
>    :init-value (not (or noninteractive
>  		       no-blinking-cursor
> -		       (eq system-type 'ms-dos)
> -		       (not (display-blink-cursor-p))))
> -  :initialize 'custom-initialize-delay
> +		       (eq system-type 'ms-dos)))
> +  :initialize #'custom-initialize-delay
>    :group 'cursor
>    :global t
>    (blink-cursor-suspend)
> diff --git a/lisp/startup.el b/lisp/startup.el
> index 552802a38d..7011fbf458 100644
> --- a/lisp/startup.el
> +++ b/lisp/startup.el
> @@ -1172,6 +1172,7 @@ command-line
>          ;; are dependencies between them.
>          (nreverse custom-delayed-init-variables))
>    (mapc #'custom-reevaluate-setting custom-delayed-init-variables)
> +  (setq custom-delayed-init-variables nil)
>  
>    ;; Warn for invalid user name.
>    (when init-file-user
> @@ -1301,12 +1302,6 @@ command-line
>      (startup--setup-quote-display)
>      (setq internal--text-quoting-flag t))
>  
> -  ;; Re-evaluate again the predefined variables whose initial value
> -  ;; depends on the runtime context, in case some of them depend on
> -  ;; the window-system features.  Example: blink-cursor-mode.
> -  (mapc #'custom-reevaluate-setting custom-delayed-init-variables)
> -  (setq custom-delayed-init-variables nil)
> -
>    (normal-erase-is-backspace-setup-frame)
>  
>    ;; Register default TTY colors for the case the terminal hasn't a
> @@ -1487,13 +1482,13 @@ x-apply-session-resources
>  opens a graphical frame.
>  
>  This can set the values of `menu-bar-mode', `tool-bar-mode',
> -`tab-bar-mode', and `no-blinking-cursor', as well as the `cursor' face.
> +`tab-bar-mode', and `blink-cursor-mode', as well as the `cursor' face.
>  Changed settings will be marked as \"CHANGED outside of Customize\"."
>    (let ((no-vals  '("no" "off" "false" "0"))
>  	(settings '(("menuBar" "MenuBar" menu-bar-mode nil)
>  		    ("toolBar" "ToolBar" tool-bar-mode nil)
>  		    ("scrollBar" "ScrollBar" scroll-bar-mode nil)
> -		    ("cursorBlink" "CursorBlink" no-blinking-cursor t))))
> +		    ("cursorBlink" "CursorBlink" blink-cursor-mode nil))))
>      (dolist (x settings)
>        (if (member (x-get-resource (nth 0 x) (nth 1 x)) no-vals)
>  	  (set (nth 2 x) (nth 3 x)))))





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 17 Feb 2021 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 69 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.