unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width
@ 2021-01-30  5:52 Aaron Jensen
  2021-01-30 15:26 ` martin rudalics
  2021-02-03 21:23 ` Alexander Miller
  0 siblings, 2 replies; 11+ messages in thread
From: Aaron Jensen @ 2021-01-30  5:52 UTC (permalink / raw)
  To: 46184


(make-frame `(
	      (parent-frame . ,(window-frame))
	      (child-frame-border-width . 0)
	      (internal-border-width . 200)))

I would expect the border width to only fall back if
child-frame-border-width is nil, since 0 is a useful setting.


In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin19.6.0, NS appkit-1894.60 Version 10.15.7 (Build 19H114))
 of 2021-01-28 built on aaron-sub.local
Repository revision: 887b03386fd5925ef5d74404ee6cc18e2257cff6
Repository branch: master
Windowing system distributor 'Apple', version 10.3.1894
System Description:  Mac OS X 10.15.7

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs-plus@28/28.0.50/share/info/emacs
 --prefix=/usr/local/Cellar/emacs-plus@28/28.0.50 --with-xml2
 --with-gnutls --without-dbus --with-imagemagick --with-modules
 --with-rsvg --with-ns --disable-ns-self-contained'

Configured features:
ACL GLIB GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY
KQUEUE NS PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Org

Minor modes in effect:
  global-flycheck-mode: t
  flycheck-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-auto-revert-mode: t
  company-posframe-mode: t
  company-prescient-mode: t
  company-tng-mode: t
  show-paren-mode: t
  eval-sexp-fu-flash-mode: t
  eros-mode: t
  speed-of-thought-mode: t
  global-git-commit-mode: t
  transient-posframe-mode: t
  orgonomic-mode: t
  form-feed-mode: t
  persp-mode: t
  which-key-posframe-mode: t
  which-key-mode: t
  winner-mode: t
  better-jumper-mode: t
  better-jumper-local-mode: t
  show-smartparens-global-mode: t
  smartparens-global-mode: t
  ivy-rich-mode: t
  ivy-prescient-mode: t
  counsel-mode: t
  ivy-posframe-mode: t
  ivy-mode: t
  projectile-mode: t
  evil-org-mode: t
  global-evil-collection-unimpaired-mode: t
  evil-collection-unimpaired-mode: t
  global-evil-mc-mode: t
  evil-mc-mode: t
  global-evil-matchit-mode: t
  evil-matchit-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  flyspell-mode: t
  evil-mode: t
  evil-local-mode: t
  envrc-global-mode: t
  envrc-mode: t
  doom-modeline-mode: t
  recentf-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-display-line-numbers-mode: t
  org-roam-mode: t
  shell-dirtrack-mode: t
  gcmh-mode: t
  prescient-persist-mode: t
  +popup-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  save-place-mode: t
  ns-auto-titlebar-mode: t
  leader-key-leader-override-mode: t
  global-leader-key-leader-override-mode: t
  delete-selection-mode: t
  savehist-mode: t
  xterm-mouse-mode: t
  override-global-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  auto-fill-function: yas--auto-fill
  transient-mark-mode: t
  abbrev-mode: t

Load-path shadows:
/Users/aaronjensen/.emacs.d/straight/build/lispy/elpa hides /Users/aaronjensen/.emacs.d/straight/build/ivy/elpa
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-stan hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-stan
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-exp hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-exp
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-J hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-J
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-emacs-lisp hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-emacs-lisp
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-css hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-css
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lob hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-lob
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-irc hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol-irc
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-forth hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-forth
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-macs hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-macs
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-version hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-version
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-scheme hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-scheme
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-abc hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-abc
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-C hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-C
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-capture hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-capture
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ref hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ref
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-clojure hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-clojure
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-mouse hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-mouse
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ledger hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ledger
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-ctags hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-ctags
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-entities hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-entities
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-archive hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-archive
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-screen hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-screen
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-bibtex hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol-bibtex
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-haskell hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-haskell
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-asymptote hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-asymptote
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-table hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-table
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-eww hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol-eww
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-org hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox-org
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-num hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-num
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-plot hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-plot
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-rmail hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol-rmail
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-awk hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-awk
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-groovy hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-groovy
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-octave hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-octave
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-faces hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-faces
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-colview hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-colview
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-R hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-R
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-refile hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-refile
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-timer hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-timer
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ebnf hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ebnf
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-mobile hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-mobile
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-fortran hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-fortran
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-shell hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-shell
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-perl hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-perl
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sqlite hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-sqlite
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sed hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-sed
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-list hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-list
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ruby hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ruby
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-eval hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-eval
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-habit hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-habit
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-clock hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-clock
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-goto hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-goto
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-html hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox-html
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-src hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-src
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lisp hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-lisp
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-eshell hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol-eshell
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ditaa hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ditaa
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-pcomplete hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-pcomplete
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-lint hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-lint
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-latex hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox-latex
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sass hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-sass
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-io hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-io
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-tangle hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-tangle
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-calc hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-calc
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-java hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-java
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-icalendar hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox-icalendar
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-mhe hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol-mhe
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-attach-git hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-attach-git
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-md hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox-md
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-beamer hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox-beamer
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-element hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-element
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-protocol hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-protocol
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-mscgen hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-mscgen
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-gnuplot hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-gnuplot
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-tempo hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-tempo
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-latex hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-latex
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-w3m hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol-w3m
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-id hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-id
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-vala hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-vala
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-man hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox-man
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-feed hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-feed
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lua hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-lua
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-table hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-table
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ocaml hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-ocaml
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-coq hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-coq
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-gnus hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol-gnus
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-picolisp hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-picolisp
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-indent hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-indent
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lilypond hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-lilypond
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-matlab hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-matlab
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-datetree hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-datetree
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-docview hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol-docview
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-python hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-python
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-makefile hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-makefile
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-duration hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-duration
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-agenda hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-agenda
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-dot hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-dot
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-js hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-js
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-publish hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox-publish
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-inlinetask hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-inlinetask
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-org hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-org
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-keys hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-keys
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-core hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-core
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-compat hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-compat
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-odt hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox-odt
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-info hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol-info
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-plantuml hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-plantuml
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-eshell hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-eshell
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-ascii hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox-ascii
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-loaddefs hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-loaddefs
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-hledger hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-hledger
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-maxima hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-maxima
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-bbdb hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ol-bbdb
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-macro hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-macro
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sql hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-sql
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-attach hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-attach
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-processing hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-processing
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-texinfo hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ox-texinfo
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-crypt hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-crypt
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-footnote hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-footnote
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-install hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/org-install
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-comint hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-comint
/Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-shen hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/org/ob-shen
/Users/aaronjensen/.emacs.d/straight/build/let-alist/let-alist hides /usr/local/Cellar/emacs-plus@28/28.0.50/share/emacs/28.0.50/lisp/emacs-lisp/let-alist

Features:
(shadow sort mail-extr emacsbug sendmail restart-emacs desktop frameset
evil-matchit-simple cl-print ivy-xref dumb-jump popup semantic/ia
semantic/analyze/refs semantic/db-find semantic/db-ref semantic/senator
semantic/decorate pulse semantic/analyze semantic/sort semantic/scope
semantic/analyze/fcn semantic/ctxt semantic/format semantic/tag-ls
semantic/find dired-aux magit-extras ffap tramp-cache lsp-diagnostics
lsp-modeline prettier tramp tramp-loaddefs trampver tramp-integration
files-x tramp-compat ls-lisp nvm iter2 lsp-ui lsp-ui-flycheck lsp-ui-doc
goto-addr lsp-ui-imenu lsp-ui-peek lsp-ui-sideline lsp-ui-util view
lsp-steep lsp-svelte lsp-sqls lsp-yaml lsp-xml lsp-vimscript lsp-vhdl
lsp-vetur lsp-html lsp-verilog lsp-vala lsp-terraform lsp-tex lsp-sorbet
lsp-solargraph lsp-rust lsp-rf lsp-r lsp-purescript lsp-pyls lsp-pwsh
lsp-php lsp-perl lsp-ocaml lsp-nix lsp-nim lsp-lua lsp-kotlin lsp-json
lsp-javascript lsp-haxe lsp-groovy lsp-hack lsp-go lsp-completion
lsp-gdscript lsp-fsharp lsp-fortran lsp-eslint lsp-erlang lsp-elixir
lsp-elm lsp-dockerfile lsp-dhall lsp-css lsp-csharp lsp-crystal
lsp-cmake lsp-clojure lsp-clangd lsp-bash lsp-angular lsp-ada
lsp-actionscript lsp-mode lsp-protocol spinner network-stream inline
bindat eslintd-fix smartparens-html web-mode disp-table
smartparens-markdown markdown-mode appt diary-lib diary-loaddefs
org-duration org-agenda flycheck bug-reference executable face-remap
evil-collection-magit magit-submodule magit-obsolete magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit package url-handlers
magit-repos magit-apply magit-wip magit-log which-func magit-diff
smerge-mode magit-core magit-autorevert magit-margin magit-transient
magit-process magit-mode yasnippet ht treemacs-logging
treemacs-customization treemacs-macros autorevert filenotify
company-oddmuse company-keywords company-etags company-gtags
company-dabbrev-code company-dabbrev company-files company-clang
company-capf company-cmake company-semantic company-template
company-bbdb company-posframe company-prescient company-tng company
paren eval-sexp-fu eros lispyville lispy lispy-inline avy etags fileloop
lispy-tags semantic/db eieio-base semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local cedet ediff
ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
ediff-util iedit iedit-lib elisp-def ert ewoc evil-collection-debug
debug sotlisp skeleton dtrt-indent git-commit with-editor
transient-posframe transient magit-git magit-section magit-utils crm
log-edit pcvs-util add-log vc-mtn vc-hg vc-git diff-mode vc-bzr vc-src
vc-sccs vc-svn vc-cvs vc-rcs vc vc-dispatcher orgonomic form-feed ol-eww
eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
gnus-search eieio-opt speedbar ezimage dframe gnus-art mm-uu mml2015
mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom browse-url
gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail
mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range
message rfc822 mml mml-sec epa epg epg-config mm-decode mm-bodies
mm-encode mailabbrev gmm-utils mailheader gnus-win gnus nnheader
gnus-util rmail rmail-loaddefs mail-utils ol-docview doc-view jka-compr
image-mode exif ol-bibtex bibtex iso8601 ol-bbdb ol-w3m hide-mode-line
popup-mode-core persp-projectile perspective ido popup-mode-hacks
evil-collection-which-key which-key-posframe which-key winner
better-jumper smartparens-config smartparens-org smartparens-text
smartparens ivy-rich ivy-prescient counsel-projectile counsel xdg
evil-collection-xref xref project swiper ivy-posframe ivy ivy-faces
ivy-overlay colir projectile grep compile text-property-search ibuf-ext
evil-collection-ibuffer evil-org-agenda evil-org evil-anzu anzu
evil-collection-unimpaired evil-collection-profiler
evil-collection-helpful evil-collection-help evil-collection-dired
evil-collection-edebug evil-collection-custom cus-edit cus-start
cus-load evil-collection-process-menu evil-collection annalist evil-mc
evil-mc-command-execute evil-mc-command-record evil-mc-cursor-make
evil-mc-region evil-mc-cursor-state evil-mc-undo evil-mc-vars
evil-mc-known-commands evil-mc-common evil-numbers evil-matchit
evil-matchit-sdk evil-surround evil evil-integration evil-maps
evil-commands reveal flyspell ispell evil-jumps evil-command-window
evil-types evil-search evil-ex evil-macros evil-repeat evil-states
evil-core evil-common windmove rect evil-digraphs evil-vars ibuffer
ibuffer-loaddefs thingatpt rainbow-mode xterm-color color posframe
helpful imenu trace edebug backtrace info-look dash-functional help-fns
elisp-refs dired-subtree dired-hacks-utils dired dired-loaddefs profiler
envrc doom-modeline doom-modeline-segments let-alist doom-modeline-env
doom-modeline-core shrink-path all-the-icons all-the-icons-faces
data-material data-weathericons data-octicons data-fileicons
data-faicons data-alltheicons recentf tree-widget wid-edit undo-tree
diff queue display-line-numbers org-roam org-roam-link org-roam-graph
xml org-roam-doctor org-roam-dailies org-roam-capture org-roam-db
emacsql-sqlite3 emacsql emacsql-compiler org-roam-completion
org-roam-buffer org-roam-faces org-roam-macs org-roam-compat f s dash
ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn
nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar
ox-ascii ox-gfm ox-md ox-html table ox-publish ox org-download
org-element avl-tree generator org-attach org-id async org-protocol
org-capture org-refile org-tempo tempo org-mac-link ob-shell shell org
ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote
org-src ob-comint org-pcomplete pcomplete comint ansi-color org-list
org-faces org-entities time-date noutline outline org-version
ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs
org-loaddefs format-spec advice find-func cal-menu calendar cal-loaddefs
gcmh server modus-operandi-theme modus-themes gcmh-autoloads
explain-pause-mode-autoloads restclient-autoloads vterm-toggle-autoloads
vterm-autoloads dumb-jump-autoloads popup-autoloads
xterm-color-autoloads dockerfile-mode-autoloads yaml-mode-autoloads
json-mode-autoloads json-snatcher-autoloads json-reformat-autoloads
lua-mode-autoloads bundler-autoloads inf-ruby-autoloads
ruby-refactor-autoloads rspec-mode-autoloads
evil-ruby-text-objects-autoloads enh-ruby-mode-autoloads
sotlisp-autoloads elisp-def-autoloads lispyville-autoloads
lispy-autoloads zoutline-autoloads iedit-autoloads eros-autoloads
eval-sexp-fu-autoloads eslintd-fix-autoloads web-mode-autoloads
company-rg-autoloads company-lsp-autoloads company-posframe-autoloads
company-prescient-autoloads company-autoloads git-link-autoloads
prettier-autoloads nvm-autoloads iter2-autoloads flycheck-autoloads
let-alist-autoloads lsp-ui-autoloads lsp-mode-autoloads autoload
radix-tree lisp-mnt markdown-mode-autoloads spinner-autoloads
ox-gfm-autoloads org-pandoc-import-autoloads gnuplot-autoloads
org-download-autoloads async-autoloads org-journal-autoloads
org-gcal-autoloads alert-autoloads log4e-autoloads gntp-autoloads
request-deferred-autoloads deferred-autoloads request-autoloads
deft-autoloads org-roam-autoloads emacsql-sqlite3-autoloads
emacsql-autoloads orgonomic-autoloads org-drill-autoloads
persist-autoloads evil-org-autoloads transient-posframe-autoloads
restart-emacs-autoloads better-jumper-autoloads hydra ring lv
buffer-move-autoloads ivy-rich-autoloads ivy-xref-autoloads
wgrep-autoloads ivy-posframe-autoloads ivy-prescient-autoloads
persp-projectile-autoloads prescient prescient-autoloads
which-key-posframe-autoloads which-key-autoloads popup-mode
popup-mode-settings popup-mode-autoloads hide-mode-line-autoloads
yasnippet-autoloads form-feed-autoloads drag-stuff-autoloads
smartparens-autoloads dtrt-indent-autoloads ws-butler
ws-butler-autoloads evil-anzu-autoloads anzu-autoloads
evil-collection-autoloads annalist-autoloads evil-mc-autoloads
evil-numbers-autoloads speeddating-autoloads evil-matchit-autoloads
evil-nerd-commenter-autoloads evil-visualstar-autoloads
evil-surround-autoloads pp undo-tree-autoloads queue-autoloads
treemacs-perspective-autoloads perspective-autoloads
treemacs-magit-autoloads magit-autoloads git-commit-autoloads
with-editor-autoloads transient-autoloads
treemacs-all-the-icons-autoloads treemacs-projectile-autoloads
treemacs-evil-autoloads evil-autoloads goto-chg-autoloads pcase
treemacs-autoloads cfrs-autoloads ht-autoloads pfuture-autoloads
ace-window-autoloads avy-autoloads counsel-projectile-autoloads
counsel-autoloads swiper-autoloads ivy-autoloads projectile-autoloads
pkg-info-autoloads epl-autoloads saveplace rainbow-mode-autoloads
posframe-autoloads ns-auto-titlebar ns-auto-titlebar-autoloads
doom-modeline-autoloads shrink-path-autoloads all-the-icons-autoloads
modus-themes-autoloads envrc-autoloads compdef derived compdef-autoloads
helpful-autoloads elisp-refs-autoloads f-autoloads s-autoloads
dash-functional-autoloads dired-subtree-autoloads
dired-hacks-utils-autoloads dash-autoloads use-package-bind-key
hydra-autoloads lv-autoloads leader-key bind-map leader-key-autoloads
bind-map-autoloads delsel savehist xt-mouse edmacro kmacro no-littering
no-littering-autoloads finder-inf bind-key easy-mmode use-package-core
use-package-autoloads bind-key-autoloads straight-autoloads info
cl-extra help-mode easymenu straight url-http url url-proxy url-privacy
url-expand url-methods url-history mailcap url-auth mail-parse rfc2231
rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-cookie url-domsuf
url-util url-gw url-parse auth-source cl-seq eieio eieio-core
eieio-loaddefs password-cache json url-vars nsm map subr-x rmc gnutls
puny seq byte-opt bytecomp byte-compile cconv cl-macs gv rx cl-loaddefs
cl-lib iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/ns-win ns-win ucs-normalize mule-util
term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic 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 charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads kqueue cocoa ns lcms2
multi-tty make-network-process emacs)

Memory information:
((conses 16 1148068 356341)
 (symbols 48 73908 2)
 (strings 32 243086 39634)
 (string-bytes 1 8664117)
 (vectors 16 107705)
 (vector-slots 8 2213189 143770)
 (floats 8 1762 854)
 (intervals 56 13529 2420)
 (buffers 984 24))





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width
  2021-01-30  5:52 bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width Aaron Jensen
@ 2021-01-30 15:26 ` martin rudalics
  2021-01-30 17:13   ` Aaron Jensen
  2021-02-03 21:23 ` Alexander Miller
  1 sibling, 1 reply; 11+ messages in thread
From: martin rudalics @ 2021-01-30 15:26 UTC (permalink / raw)
  To: Aaron Jensen, 46184, Alexander Miller

[-- Attachment #1: Type: text/plain, Size: 478 bytes --]

 > (make-frame `(
 > 	      (parent-frame . ,(window-frame))
 > 	      (child-frame-border-width . 0)
 > 	      (internal-border-width . 200)))
 >
 > I would expect the border width to only fall back if
 > child-frame-border-width is nil, since 0 is a useful setting.

It's not entirely trivial to do that (frame parameters are a pain in
this regard) but please have a look at the attached patch (tested on a
GTK build only).  Alexander, please have a look too.

Thanks, martin

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: child-frame-border-width.diff --]
[-- Type: text/x-patch; name="child-frame-border-width.diff", Size: 4470 bytes --]

diff --git a/src/frame.c b/src/frame.c
index a2167ce1e4..d4a560af38 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -898,6 +898,7 @@ make_frame (bool mini_p)
   f->no_accept_focus = false;
   f->z_group = z_group_none;
   f->tooltip = false;
+  f->child_frame_border_width = -1;
   f->last_tab_bar_item = -1;
 #ifndef HAVE_EXT_TOOL_BAR
   f->last_tool_bar_item = -1;
@@ -3547,7 +3548,12 @@ DEFUN ("frame-child-frame-border-width", Fframe_child_frame_border_width, Sframe
        doc: /* Return width of FRAME's child-frame border in pixels.  */)
   (Lisp_Object frame)
 {
-  return make_fixnum (FRAME_CHILD_FRAME_BORDER_WIDTH (decode_any_frame (frame)));
+  int width = FRAME_CHILD_FRAME_BORDER_WIDTH (decode_any_frame (frame));
+
+  if (width < 0)
+    return make_fixnum (FRAME_INTERNAL_BORDER_WIDTH (decode_any_frame (frame)));
+  else
+    return make_fixnum (FRAME_CHILD_FRAME_BORDER_WIDTH (decode_any_frame (frame)));
 }

 DEFUN ("frame-internal-border-width", Fframe_internal_border_width, Sframe_internal_border_width, 0, 1, 0,
@@ -4311,7 +4317,9 @@ gui_report_frame_params (struct frame *f, Lisp_Object *alistptr)
   store_in_alist (alistptr, Qborder_width,
 		  make_fixnum (f->border_width));
   store_in_alist (alistptr, Qchild_frame_border_width,
-		  make_fixnum (FRAME_CHILD_FRAME_BORDER_WIDTH (f)));
+		  (FRAME_CHILD_FRAME_BORDER_WIDTH (f) >= 0
+		   ? make_fixnum (FRAME_CHILD_FRAME_BORDER_WIDTH (f))
+		   : Qnil));
   store_in_alist (alistptr, Qinternal_border_width,
 		  make_fixnum (FRAME_INTERNAL_BORDER_WIDTH (f)));
   store_in_alist (alistptr, Qright_divider_width,
diff --git a/src/frame.h b/src/frame.h
index 9b0852c7b9..07e4f38803 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -1449,11 +1449,11 @@ FRAME_CHILD_FRAME_BORDER_WIDTH (struct frame *f)
 FRAME_INTERNAL_BORDER_WIDTH (struct frame *f)
 {
 #ifdef HAVE_WINDOW_SYSTEM
-  return FRAME_PARENT_FRAME(f)
-    ? (f->child_frame_border_width
-       ? FRAME_CHILD_FRAME_BORDER_WIDTH(f)
-       : frame_dimension (f->internal_border_width))
-    : frame_dimension (f->internal_border_width);
+  return (FRAME_PARENT_FRAME(f)
+	  ? (FRAME_CHILD_FRAME_BORDER_WIDTH(f) >= 0
+	     ? FRAME_CHILD_FRAME_BORDER_WIDTH(f)
+	     : frame_dimension (f->internal_border_width))
+	  : frame_dimension (f->internal_border_width));
 #else
   return frame_dimension (f->internal_border_width);
 #endif
diff --git a/src/nsfns.m b/src/nsfns.m
index c383e2f7ec..7e759422e4 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -691,7 +691,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
 ns_set_child_frame_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
 {
   int old_width = FRAME_CHILD_FRAME_BORDER_WIDTH (f);
-  int new_width = check_int_nonnegative (arg);
+  int new_width = check_integer_range (arg, -1, INT_MAX);

   if (new_width == old_width)
     return;
diff --git a/src/w32fns.c b/src/w32fns.c
index 7519c752b6..9b9671db05 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -1561,8 +1561,8 @@ w32_clear_under_internal_border (struct frame *f)
 static void
 w32_set_child_frame_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
 {
-  int argval = check_integer_range (arg, INT_MIN, INT_MAX);
-  int border = max (argval, 0);
+  int argval = check_integer_range (arg, -1, INT_MAX);
+  int border = max (argval, -1);

   if (border != FRAME_CHILD_FRAME_BORDER_WIDTH (f))
     {
diff --git a/src/xfns.c b/src/xfns.c
index cac41ee485..8a01edecdb 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -1803,7 +1803,7 @@ x_change_tool_bar_height (struct frame *f, int height)
 static void
 x_set_child_frame_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
 {
-  int border = check_int_nonnegative (arg);
+  int border = check_integer_range (arg, -1, INT_MAX);

   if (border != FRAME_CHILD_FRAME_BORDER_WIDTH (f))
     {
@@ -3934,12 +3934,7 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame,

     }

-  gui_default_parameter (f, parms, Qchild_frame_border_width,
-#ifdef USE_GTK /* We used to impose 0 in xg_create_frame_widgets.  */
-			 make_fixnum (0),
-#else
-			 make_fixnum (1),
-#endif
+  gui_default_parameter (f, parms, Qchild_frame_border_width, make_fixnum (-1),
 			 "childFrameBorderWidth", "childFrameBorderWidth",
 			 RES_TYPE_NUMBER);
   gui_default_parameter (f, parms, Qinternal_border_width,

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width
  2021-01-30 15:26 ` martin rudalics
@ 2021-01-30 17:13   ` Aaron Jensen
  2021-01-30 17:38     ` martin rudalics
  2021-02-06 17:28     ` martin rudalics
  0 siblings, 2 replies; 11+ messages in thread
From: Aaron Jensen @ 2021-01-30 17:13 UTC (permalink / raw)
  To: martin rudalics; +Cc: Alexander Miller, 46184

[-- Attachment #1: Type: text/plain, Size: 670 bytes --]

On Sat, Jan 30, 2021 at 9:26 AM martin rudalics <rudalics@gmx.at> wrote:
>
>  > (make-frame `(
>  >            (parent-frame . ,(window-frame))
>  >            (child-frame-border-width . 0)
>  >            (internal-border-width . 200)))
>  >
>  > I would expect the border width to only fall back if
>  > child-frame-border-width is nil, since 0 is a useful setting.
>
> It's not entirely trivial to do that (frame parameters are a pain in
> this regard) but please have a look at the attached patch (tested on a
> GTK build only).  Alexander, please have a look too.

That worked for me, thanks. I had to also apply the attached to get it
to compile on macOS.

Aaron

[-- Attachment #2: nsmenu.diff --]
[-- Type: application/octet-stream, Size: 647 bytes --]

diff --git a/src/nsmenu.m b/src/nsmenu.m
index f8219d2702..24aa5a0ac1 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -405,7 +405,7 @@
    frame's menus have changed, and the *step representation should be updated
    from Lisp.  */
 void
-set_frame_menubar (struct frame *f, bool first_time, bool deep_p)
+set_frame_menubar (struct frame *f, bool deep_p)
 {
   ns_update_menubar (f, deep_p);
 }
@@ -1795,7 +1795,7 @@ - (Lisp_Object)runDialogAt: (NSPoint)p
        doc: /* Cause the NS menu to be re-calculated.  */)
      (void)
 {
-  set_frame_menubar (SELECTED_FRAME (), 1, 0);
+  set_frame_menubar (SELECTED_FRAME (), 0);
   return Qnil;
 }
 

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width
  2021-01-30 17:13   ` Aaron Jensen
@ 2021-01-30 17:38     ` martin rudalics
  2021-01-31 14:23       ` Stefan Kangas
  2021-02-06 17:28     ` martin rudalics
  1 sibling, 1 reply; 11+ messages in thread
From: martin rudalics @ 2021-01-30 17:38 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: Alexander Miller, 46184, Stefan Kangas

 > I had to also apply the attached to get it
 > to compile on macOS.

Stefan - you apparently forgot to update nsmenu.m too.

martin





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width
  2021-01-30 17:38     ` martin rudalics
@ 2021-01-31 14:23       ` Stefan Kangas
  0 siblings, 0 replies; 11+ messages in thread
From: Stefan Kangas @ 2021-01-31 14:23 UTC (permalink / raw)
  To: martin rudalics, Aaron Jensen; +Cc: Alexander Miller, 46184

martin rudalics <rudalics@gmx.at> writes:

>  > I had to also apply the attached to get it
>  > to compile on macOS.
>
> Stefan - you apparently forgot to update nsmenu.m too.

Thanks for letting me know.  It seems like Eli already fixed it:

    commit 419a33eb1dd37fe529e756e04253ff1c9ad2eeb1
    Author: Eli Zaretskii <eliz@gnu.org>
    Date:   Sat Jan 30 21:13:53 2021 +0200

        Fix NS build broken by a recent change

        * src/nsmenu.m (set_frame_menubar, Fns_reset_menu): Adapt to
        recent changes in set_frame_menubar.  (Bug#45759)





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width
  2021-01-30  5:52 bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width Aaron Jensen
  2021-01-30 15:26 ` martin rudalics
@ 2021-02-03 21:23 ` Alexander Miller
  2021-02-04  8:40   ` martin rudalics
  1 sibling, 1 reply; 11+ messages in thread
From: Alexander Miller @ 2021-02-03 21:23 UTC (permalink / raw)
  To: rudalics; +Cc: 46184, aaronjensen

 > > (make-frame `(
 > > (parent-frame . ,(window-frame))
 > > (child-frame-border-width . 0)
 > > (internal-border-width . 200)))
 > >
 > > I would expect the border width to only fall back if
 > > child-frame-border-width is nil, since 0 is a useful setting.
 >
 > It's not entirely trivial to do that (frame parameters are a pain in
 > this regard) but please have a look at the attached patch (tested on a
 > GTK build only). Alexander, please have a look too.
 >
 > Thanks, martin

I have tried the patch and the case for using 0 does work without
fallback now.

I also tried setting an explicit `nil` value and got an error, but
judging by how `internal-border-width` shows the same behaviour I assume
that it's working as expected.






^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width
  2021-02-03 21:23 ` Alexander Miller
@ 2021-02-04  8:40   ` martin rudalics
  2021-02-06 17:28     ` martin rudalics
  0 siblings, 1 reply; 11+ messages in thread
From: martin rudalics @ 2021-02-04  8:40 UTC (permalink / raw)
  To: Alexander Miller; +Cc: 46184, aaronjensen

 > I have tried the patch and the case for using 0 does work without
 > fallback now.
 >
 > I also tried setting an explicit `nil` value and got an error, but
 > judging by how `internal-border-width` shows the same behaviour I assume
 > that it's working as expected.

Indeed.  That's why I dislike frame parameters.  WOW users cannot set
'internal-border-width' back to its initial value once it changed.  For
scroll bars we use a two-tiers approach where users can tweak width and
type separately.  Doing something similar for the internal border seems
a bit excessive to me.

Though, I am currently investigating doing something similar for tooltip
frames.  IIRC it was you who also noticed that the border we currently
draw around them is only on top and the left.  I meanwhile found out
that this is due to us trying to use the 'border-width' of the frame (a
completely obscure X concept) for that purpose.  If I can't fix that
(and it would be an X-only fix anyway) I'll try to replace it with our
own internal border, but I'm not sure whether I succeed.

Currently, the internal border face, once customized, shows through in
our tooltips only after some delay which is quite irritating.  Also, I
still don't know whether we want the internal border of tooltip frames
as a means (1) to "set off" text from the rest of the screen by splicing
in some space in the background face, or (2) to "separate" text from the
rest of the screen by splicing in space in a face that differs from the
background.  Currently, we can't have both.  We'd have to brush up the
internal borders in way similar to window dividers.

Thanks for checking, martin





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width
  2021-01-30 17:13   ` Aaron Jensen
  2021-01-30 17:38     ` martin rudalics
@ 2021-02-06 17:28     ` martin rudalics
  2021-02-06 18:17       ` Aaron Jensen
  1 sibling, 1 reply; 11+ messages in thread
From: martin rudalics @ 2021-02-06 17:28 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: Alexander Miller, 46184

 > That worked for me, thanks.

I pushed a slightly different fix to master now.  Please have a look.

Thanks, martin





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width
  2021-02-04  8:40   ` martin rudalics
@ 2021-02-06 17:28     ` martin rudalics
  0 siblings, 0 replies; 11+ messages in thread
From: martin rudalics @ 2021-02-06 17:28 UTC (permalink / raw)
  To: Alexander Miller; +Cc: 46184, aaronjensen

 >  > I also tried setting an explicit `nil` value and got an error, but
 >  > judging by how `internal-border-width` shows the same behaviour I assume
 >  > that it's working as expected.
 >
 > Indeed.  That's why I dislike frame parameters.  WOW users cannot set
 > 'internal-border-width' back to its initial value once it changed.  For
 > scroll bars we use a two-tiers approach where users can tweak width and
 > type separately.  Doing something similar for the internal border seems
 > a bit excessive to me.

I think I fixed that now in the sense that an explicit nil value does
not get an error but triggers the fallback mechanism.  Please check out
the latest master.

Thanks, martin





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width
  2021-02-06 17:28     ` martin rudalics
@ 2021-02-06 18:17       ` Aaron Jensen
  2021-05-19  8:26         ` martin rudalics
  0 siblings, 1 reply; 11+ messages in thread
From: Aaron Jensen @ 2021-02-06 18:17 UTC (permalink / raw)
  To: martin rudalics; +Cc: Alexander Miller, 46184

On Sat, Feb 6, 2021 at 11:28 AM martin rudalics <rudalics@gmx.at> wrote:
>
>  > That worked for me, thanks.
>
> I pushed a slightly different fix to master now.  Please have a look.

Great, thank you. Also, for posterity, it's been fixed downstream in
posframe as well (in that it sets the correct parameters now for Emacs
28)

Aaron





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width
  2021-02-06 18:17       ` Aaron Jensen
@ 2021-05-19  8:26         ` martin rudalics
  0 siblings, 0 replies; 11+ messages in thread
From: martin rudalics @ 2021-05-19  8:26 UTC (permalink / raw)
  To: Aaron Jensen; +Cc: Alexander Miller, control, 46184

tags 46184 fixed
close 46184 28.1
quit

 > Great, thank you. Also, for posterity, it's been fixed downstream in
 > posframe as well (in that it sets the correct parameters now for Emacs
 > 28)

OK.  Marking this as fixed then.

Thanks, martin





^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-05-19  8:26 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-30  5:52 bug#46184: 28.0.50; child-frame-border-width of 0 falls back to internla-border-width Aaron Jensen
2021-01-30 15:26 ` martin rudalics
2021-01-30 17:13   ` Aaron Jensen
2021-01-30 17:38     ` martin rudalics
2021-01-31 14:23       ` Stefan Kangas
2021-02-06 17:28     ` martin rudalics
2021-02-06 18:17       ` Aaron Jensen
2021-05-19  8:26         ` martin rudalics
2021-02-03 21:23 ` Alexander Miller
2021-02-04  8:40   ` martin rudalics
2021-02-06 17:28     ` martin rudalics

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).