bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#66398: 29.1; Buggy handling of transparency changes / blur/unblur


From: Tollef Fog Heen
Subject: bug#66398: 29.1; Buggy handling of transparency changes / blur/unblur
Date: Sat, 07 Oct 2023 22:07:15 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Hi folks, this is Debian bug #1053298,
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1053298 :

In my setup, I make non-focused windows semi-transparent (using Xmonad
and its compose support).  This used to work perfectly, but with the
recent-ish update of emacs from 28.2 to 29.1, this broke.  (Basically,
what's described on
https://hackage.haskell.org/package/xmonad-contrib-0.16/docs/XMonad-Hooks-FadeInactive.html)

I've bisected this down to:

commit b299f173490f5c51476ad3c8436b19bb091c1b00
Author: Po Lu <luangruo@yahoo.com>
Date:   Tue May 10 09:32:59 2022 +0800

    Update alpha frame parameter when the window manager changes it

    * src/xfns.c (x_set_alpha): New function.  Set
    `alpha_identical_p' flag.
    (x_frame_parm_handlers): Use it to handle `alpha' instead.

    * src/xterm.c (x_set_frame_alpha): Make tests against current
    alpha safer.
    (handle_one_xevent): Set frame alpha when alpha property
    changes.
    * src/xterm.h (struct x_output): New flag `alpha_identical_p'.

 src/xfns.c  | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 src/xterm.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
 src/xterm.h |  4 ++++
 3 files changed, 108 insertions(+), 3 deletions(-)

which seems like a plausible change for causing such a bug.

Note that the transparency of the window corrects itself if I switch
buffers, and in some cases if there's just a message in the minibuffer,
so it seems like emacs isn't always picking up the change in
transparency which happens as it is being focused, but on a buffer focus
change, it catches up.

Interestingly enough, this only reproduces for me with the nvidia X11
driver, on my laptop (with Intel graphics) with the same emacs setup,
I've never seen it.

In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38,
 cairo version 1.16.0) of 2023-08-30, modified by Debian built on
 x86-csail-01
Windowing system distributor 'The X.Org Foundation', version 11.0.12101008
System Description: Debian GNU/Linux trixie/sid

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/libexec
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-libsystemd --with-pop=yes
 
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils
 --with-native-compilation --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/libexec
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-libsystemd --with-pop=yes
 
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils
 --with-native-compilation --with-cairo --with-x=yes
 --with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
 -ffile-prefix-map=/build/reproducible-path/emacs-29.1+1=. 
-fstack-protector-strong
 -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2
XPM GTK3 ZLIB


Features:
(shadow emacsbug smerge-mode diff macros term/screen term/xterm xterm
bookmark rect tabify org-archive python project compat treesit dabbrev
vc-git vc-dispatcher make-mode reporter debian-bug flow-fill cal-move
autorevert oc-basic org-element org-persist org-id avl-tree generator
ol-eww eww xdg url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus
nnselect ol-docview ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi
misearch multi-isearch mule-util time-stamp w3m-form w3m-bookmark
mm-archive sort gnus-cite textsec uni-scripts idna-mapping ucs-normalize
uni-confusable textsec-check gnus-async gnus-bcklg qp mail-extr gnus-ml
disp-table gnus-topic nndraft nnmh utf-7 nnfolder network-stream nsm
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp
gnus-cache gnus-icalendar org-capture org-refile w3m doc-view filenotify
image-mode exif timezone w3m-hist w3m-fb bookmark-w3m w3m-ems
w3m-favicon w3m-image tab-line w3m-proc w3m-util deuglify gnus-art mm-uu
mml2015 gnus-sum shr pixel-fill url-file svg dom gnus-group gnus-undo
nnir gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source
utf7 nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader range
cus-edit pp cus-start cus-load notmuch notmuch-tree notmuch-jump
notmuch-hello wid-edit notmuch-show notmuch-print notmuch-crypto
notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc
notmuch-address notmuch-company notmuch-parser notmuch-wash diff-mode
easy-mmode coolj goto-addr thingatpt icalendar diary-lib diary-loaddefs
notmuch-tag crm notmuch-lib notmuch-version notmuch-compat pcase hl-line
message sendmail yank-media dired dired-loaddefs rfc822 mml mailabbrev
mail-utils gmm-utils mailheader mm-view mml-smime mml-sec epa derived
epg rfc6068 epg-config gnus-util text-property-search smime gnutls puny
dig mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
mm-util ietf-drums mail-prsvr real-auto-save atomic-chrome websocket
bindat let-alist server ido edmacro kmacro org-clock org ob ob-tangle
ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete
org-list org-footnote org-faces org-entities noutline outline
ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold
org-fold-core org-keys oc org-loaddefs find-func cal-menu calendar
cal-loaddefs org-version org-compat org-macs time tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat shell pcomplete comint
ansi-osc ansi-color ring parse-time iso8601 time-date format-spec
auto-header comp comp-cstr warnings icons rx cl-extra help-mode eweouz
vcard jka-compr finder-inf cl w3m-load develock kinsoku advice url-auth
dpkg-dev-el info debian-el haskell-mode-autoloads notmuch-autoloads
seq-autoloads package browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie generate-lisp-file url-domsuf
url-util mailcap url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp
byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
native-compile emacs)

-- 
Tollef Fog Heen
UNIX is user friendly, it's just picky about who its friends are





reply via email to

[Prev in Thread] Current Thread [Next in Thread]