* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS @ 2021-09-12 0:29 Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors [not found] ` <handler.50534.B.16314065846903.ack@debbugs.gnu.org> 2021-09-12 11:48 ` bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS Alan Third 0 siblings, 2 replies; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-12 0:29 UTC (permalink / raw) To: 50534 [-- Attachment #1.1: Type: text/plain, Size: 12287 bytes --] Good day! I've described this bug here: https://github.com/hlissner/doom-emacs/issues/5469 During investigation I've discovered the exact commit which brokes toolbar on this scenario. Let me share git bisect log: git bisect start # good: [cfcf42ff879f766ffe5812fb0cd12f35803c1bfb] Ensure that gud commands for non-GDB debuggers are handled by repeat-mode git bisect good cfcf42ff879f766ffe5812fb0cd12f35803c1bfb # bad: [192a384408cc846d8e66e91a67cd9ad4e7f0be24] Revert usage of format-prompt in python.el git bisect bad 192a384408cc846d8e66e91a67cd9ad4e7f0be24 # bad: [beb54dc1b2b00cb4541b82acf6ead8a8075c3011] Improve documentation of 'file-preserve-symlinks-on-save' git bisect bad beb54dc1b2b00cb4541b82acf6ead8a8075c3011 # bad: [c56e395edf5babdbcc65fa7bdb9fb462c674f156] Let image-dired-mouse-toggle-mark act on active region git bisect bad c56e395edf5babdbcc65fa7bdb9fb462c674f156 # bad: [0ec67a295632f3c4ac92e0b6a0070f67dedac4eb] ; so-long-tests.el: Suppress expected warnings git bisect bad 0ec67a295632f3c4ac92e0b6a0070f67dedac4eb # bad: [12c5ca4d825496b3c7304b75ab82a6fabdc2023d] Fix some macOS problems git bisect bad 12c5ca4d825496b3c7304b75ab82a6fabdc2023d # good: [0bd1346318fe9ef4eba91905172d30a030d7da18] Fix issue with mml-preview from outside Gnus git bisect good 0bd1346318fe9ef4eba91905172d30a030d7da18 # good: [55a9c17cef78b1fd3da42bcc2ab55d4acbaa24eb] Change Tramp version to "2.5.2-pre" git bisect good 55a9c17cef78b1fd3da42bcc2ab55d4acbaa24eb # good: [a4d2c88cdee90a3e4863a62c4ff69896d0c1a347] Simplify macOS drawing code git bisect good a4d2c88cdee90a3e4863a62c4ff69896d0c1a347 # bad: [1ba02d85a964e1b2c6a9735cd3decdc524e06dc1] Fix macOS live resize drawing git bisect bad 1ba02d85a964e1b2c6a9735cd3decdc524e06dc1 # bad: [960f3fc589d8d021e1ed1a505e660929e4c13d0a] Change NS port resize detection git bisect bad 960f3fc589d8d021e1ed1a505e660929e4c13d0a # good: [1535c81f77153dd61426246be2e8afd33fa6909a] Tidy up NS port OS window handling git bisect good 1535c81f77153dd61426246be2e8afd33fa6909a # first bad commit: [960f3fc589d8d021e1ed1a505e660929e4c13d0a] Change NS port resize detection In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin20.6.0, NS appkit-2022.60 Version 11.5.2 (Build 20G95)) of 2021-09-12 built on MacBook-Pro.sa31-cbt.catap.net Repository revision: 1535c81f77153dd61426246be2e8afd33fa6909a Repository branch: HEAD Windowing system distributor 'Apple', version 10.3.2022 System Description: macOS 11.5.2 Configured using: 'configure --prefix=/opt/local --disable-silent-rules --without-dbus --without-gconf --without-libotf --without-m17n-flt --with-gmp --with-gnutls --with-json --with-xml2 --with-modules --infodir /opt/local/share/info/emacs --with-ns --with-lcms2 --without-harfbuzz --without-imagemagick --without-xaw3d --with-native-compilation --with-rsvg 'CFLAGS=-pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -arch x86_64' 'CPPFLAGS=-I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk' 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-no_pie -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -arch x86_64'' Configured features: ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS XIM ZLIB Important settings: value of $LC_ALL: en_US.UTF-8 value of $LC_CTYPE: UTF-8 value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: DOOM v3.0.0-alpha Minor modes in effect: flyspell-lazy-mode: t gcmh-mode: t global-hl-line-mode: t hl-line-mode: t winner-mode: t show-paren-mode: t smartparens-global-mode: t ws-butler-global-mode: t global-emojify-mode: t emojify-mode: t global-undo-fu-session-mode: t undo-fu-session-mode: t undo-fu-mode: t global-flycheck-mode: t which-key-mode: t better-jumper-mode: t better-jumper-local-mode: t global-company-mode: t company-mode: t ivy-rich-project-root-cache-mode: t ivy-rich-mode: t ivy-mode: t volatile-highlights-mode: t global-git-commit-mode: t shell-dirtrack-mode: t yas-global-mode: t yas-minor-mode: t savehist-mode: t solaire-global-mode: t solaire-mode: t doom-modeline-mode: t persp-mode: t delete-selection-mode: t projectile-mode: t ns-auto-titlebar-mode: t +popup-mode: t general-override-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 buffer-read-only: t size-indication-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/use-package/use-package-diminish hides /Users/catap/src/doom-emacs/.local/straight/repos/use-package/use-package-diminish /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/use-package/use-package hides /Users/catap/src/doom-emacs/.local/straight/repos/use-package/use-package /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/use-package/use-package-lint hides /Users/catap/src/doom-emacs/.local/straight/repos/use-package/use-package-lint /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/use-package/use-package-delight hides /Users/catap/src/doom-emacs/.local/straight/repos/use-package/use-package-delight /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/use-package/use-package-jump hides /Users/catap/src/doom-emacs/.local/straight/repos/use-package/use-package-jump /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/use-package/use-package-core hides /Users/catap/src/doom-emacs/.local/straight/repos/use-package/use-package-core /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/use-package/use-package-ensure hides /Users/catap/src/doom-emacs/.local/straight/repos/use-package/use-package-ensure /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/use-package/use-package-bind-key hides /Users/catap/src/doom-emacs/.local/straight/repos/use-package/use-package-bind-key /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/bind-key/bind-key hides /Users/catap/src/doom-emacs/.local/straight/repos/use-package/bind-key /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/straight/straight-x hides /Users/catap/src/doom-emacs/.local/straight/repos/straight.el/straight-x /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/apel/install hides /Users/catap/src/doom-emacs/.local/straight/repos/straight.el/install /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/straight/straight hides /Users/catap/src/doom-emacs/.local/straight/repos/straight.el/straight /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/cmake-mode/cmake-mode hides /opt/local/share/emacs/site-lisp/cmake-mode /Users/catap/src/doom-emacs/.local/straight/repos/straight.el/indent hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/indent /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/transient/transient hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/transient /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/xref/xref hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/progmodes/xref /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/project/project hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/progmodes/project /Users/catap/src/doom-emacs/.local/straight/build-28.0.50/flim/sasl hides /Applications/MacPorts/Emacs.app/Contents/Resources/lisp/net/sasl Features: (shadow sort disp-table whitespace flycheck-popup-tip popup flyspell-lazy flyspell ispell vi-tilde-fringe display-line-numbers highlight-indent-guides adaptive-wrap gcmh hl-line winner paren smartparens-config smartparens-org smartparens-text smartparens ws-butler emojify apropos tar-mode arc-mode archive-mode ht undo-fu-session undo-fu flycheck-package package-lint finder finder-inf lisp-mnt flycheck mail-extr emacsbug sendmail cursor-sensor amx which-key better-jumper company-capf company etags fileloop generator ivy-xref ivy-avy avy ivy-rich counsel xdg swiper ivy flx ivy-faces ivy-overlay colir color xref project volatile-highlights magit-todos pcre2el rxt re-builder hl-todo async org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs org-loaddefs find-func cal-menu calendar cal-loaddefs github-review ghub-graphql treepy gsexp ghub url-http url-gw nsm url-auth gnutls deferred a magit-autoloads magit-submodule magit-obsolete magit-popup 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 magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff smerge-mode diff diff-mode magit-core magit-autorevert magit-margin magit-transient magit-process magit-mode core-packages package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse url-vars git-commit transient format-spec log-edit message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa epg epg-config gnus-util rmail rmail-loaddefs auth-source password-cache json map time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-git magit-section magit-utils crm with-editor shell pcomplete doom-snippets doom-snippets-lib autorevert filenotify yasnippet elisp-mode savehist recentf tree-widget wid-edit server persistent-soft list-utils pcache eieio-base eieio eieio-core eieio-loaddefs font-utils unicode-fonts dtrt-indent advice doom-themes-ext-treemacs doom-themes-ext-org solaire-mode face-remap doom-one-theme doom-themes doom-themes-base doom-modeline doom-modeline-segments let-alist doom-modeline-env doom-modeline-core shrink-path f s all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons dash persp-mode delsel projectile grep compile text-property-search comint ansi-color ring ibuf-ext ibuffer ibuffer-loaddefs thingatpt smartparens-lua ns-auto-titlebar derived edmacro kmacro core-editor core-projects core-ui easy-mmode comp comp-cstr warnings core-keybinds pp general cl-extra help-mode cl-seq use-package-core core-modules tex-site rx cl core core-lib pcase cl-macs cl-loaddefs cl-lib subr-x chemacs seq byte-opt gv bytecomp byte-compile cconv 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 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 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 native-compile emacs) Memory information: ((conses 16 795703 772735) (symbols 48 57901 56) (strings 32 203824 59149) (string-bytes 1 5610377) (vectors 16 124771) (vector-slots 8 4454343 1257321) (floats 8 986 1890) (intervals 56 1662 501) (buffers 992 11)) -- wbr, Kirill [-- Attachment #1.2: Type: text/html, Size: 18228 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
[parent not found: <handler.50534.B.16314065846903.ack@debbugs.gnu.org>]
* bug#50534: Acknowledgement (28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS) [not found] ` <handler.50534.B.16314065846903.ack@debbugs.gnu.org> @ 2021-09-12 9:25 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 0 replies; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-12 9:25 UTC (permalink / raw) To: 50534 [-- Attachment #1.1: Type: text/plain, Size: 1090 bytes --] I just would like to share that reverting of: - 12c5ca4d825496b3c7304b75ab82a6fabdc2023d - 1ba02d85a964e1b2c6a9735cd3decdc524e06dc1 - 960f3fc589d8d021e1ed1a505e660929e4c13d0a fixed an issue -- wbr, Kirill > On 12. Sep 2021, at 02:30, GNU bug Tracking System <help-debbugs@gnu.org> wrote: > > Thank you for filing a new bug report with debbugs.gnu.org. > > This is an automatically generated reply to let you know your message > has been received. > > Your message is being forwarded to the package maintainers and other > interested parties for their attention; they will reply in due course. > > Your message has been sent to the package maintainer(s): > bug-gnu-emacs@gnu.org > > If you wish to submit further information on this problem, please > send it to 50534@debbugs.gnu.org. > > Please do not send mail to help-debbugs@gnu.org unless you wish > to report a problem with the Bug-tracking system. > > -- > 50534: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=50534 > GNU Bug Tracking System > Contact help-debbugs@gnu.org with problems [-- Attachment #1.2: Type: text/html, Size: 2679 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-12 0:29 bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors [not found] ` <handler.50534.B.16314065846903.ack@debbugs.gnu.org> @ 2021-09-12 11:48 ` Alan Third 2021-09-12 12:54 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 1 sibling, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-12 11:48 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 [-- Attachment #1: Type: text/plain, Size: 2505 bytes --] On Sun, Sep 12, 2021 at 02:29:19AM +0200, Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: > Good day! > > I've described this bug here: > https://github.com/hlissner/doom-emacs/issues/5469 > > During investigation I've discovered the exact commit which brokes > toolbar on this scenario. > > Let me share git bisect log: > git bisect start > # good: [cfcf42ff879f766ffe5812fb0cd12f35803c1bfb] Ensure that gud commands for non-GDB debuggers are handled by repeat-mode > git bisect good cfcf42ff879f766ffe5812fb0cd12f35803c1bfb > # bad: [192a384408cc846d8e66e91a67cd9ad4e7f0be24] Revert usage of format-prompt in python.el > git bisect bad 192a384408cc846d8e66e91a67cd9ad4e7f0be24 > # bad: [beb54dc1b2b00cb4541b82acf6ead8a8075c3011] Improve documentation of 'file-preserve-symlinks-on-save' > git bisect bad beb54dc1b2b00cb4541b82acf6ead8a8075c3011 > # bad: [c56e395edf5babdbcc65fa7bdb9fb462c674f156] Let image-dired-mouse-toggle-mark act on active region > git bisect bad c56e395edf5babdbcc65fa7bdb9fb462c674f156 > # bad: [0ec67a295632f3c4ac92e0b6a0070f67dedac4eb] ; so-long-tests.el: Suppress expected warnings > git bisect bad 0ec67a295632f3c4ac92e0b6a0070f67dedac4eb > # bad: [12c5ca4d825496b3c7304b75ab82a6fabdc2023d] Fix some macOS problems > git bisect bad 12c5ca4d825496b3c7304b75ab82a6fabdc2023d > # good: [0bd1346318fe9ef4eba91905172d30a030d7da18] Fix issue with mml-preview from outside Gnus > git bisect good 0bd1346318fe9ef4eba91905172d30a030d7da18 > # good: [55a9c17cef78b1fd3da42bcc2ab55d4acbaa24eb] Change Tramp version to "2.5.2-pre" > git bisect good 55a9c17cef78b1fd3da42bcc2ab55d4acbaa24eb > # good: [a4d2c88cdee90a3e4863a62c4ff69896d0c1a347] Simplify macOS drawing code > git bisect good a4d2c88cdee90a3e4863a62c4ff69896d0c1a347 > # bad: [1ba02d85a964e1b2c6a9735cd3decdc524e06dc1] Fix macOS live resize drawing > git bisect bad 1ba02d85a964e1b2c6a9735cd3decdc524e06dc1 > # bad: [960f3fc589d8d021e1ed1a505e660929e4c13d0a] Change NS port resize detection > git bisect bad 960f3fc589d8d021e1ed1a505e660929e4c13d0a > # good: [1535c81f77153dd61426246be2e8afd33fa6909a] Tidy up NS port OS window handling > git bisect good 1535c81f77153dd61426246be2e8afd33fa6909a > # first bad commit: [960f3fc589d8d021e1ed1a505e660929e4c13d0a] Change NS port resize detection I can't for the life of my see why that commit should break it, but can you please try the attached patch and see if it fixes the problem? I can't replicate it here. -- Alan Third [-- Attachment #2: 0001-Fix-incorrectly-appearing-toolbar-on-NS-bug-50534.patch --] [-- Type: text/x-diff, Size: 2496 bytes --] From 527ba13636c83f826d385de628d5e56556cfa021 Mon Sep 17 00:00:00 2001 From: Alan Third <alan@idiocy.org> Date: Sun, 12 Sep 2021 12:42:11 +0100 Subject: [PATCH] Fix incorrectly appearing toolbar on NS (bug#50534) * src/nsterm.h (FRAME_TOOLBAR_P): Work out whether the frame should have a toolbar or not. * src/nsterm.m (ns_update_begin): ([EmacsView windowDidEnterFullScreen]): ([EmacsView windowDidExitFullScreen]): Use new FRAME_TOOLBAR_P instead of the apparently unreliable FRAME_EXTERNAL_TOOL_BAR. --- src/nsterm.h | 3 +++ src/nsterm.m | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/nsterm.h b/src/nsterm.h index 6d4ea77121..8fb9c0fda1 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -1074,6 +1074,9 @@ #define FIRST_CHAR_POSITION(f) \ (! (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f)) ? 0 \ : FRAME_SCROLL_BAR_COLS (f)) +#define FRAME_TOOLBAR_P(f) (FRAME_EXTERNAL_TOOL_BAR (f) \ + && FRAME_TOOL_BAR_LINES (f) > 0) + extern struct ns_display_info *ns_term_init (Lisp_Object display_name); extern void ns_term_shutdown (int sig); diff --git a/src/nsterm.m b/src/nsterm.m index 8d88f7bd3d..24a2383848 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1025,7 +1025,7 @@ static NSRect constrain_frame_rect(NSRect frameRect, bool isFullscreen) if ([view isFullscreen] && [view fsIsNative]) { // Fix reappearing tool bar in fullscreen for Mac OS X 10.7 - BOOL tbar_visible = FRAME_EXTERNAL_TOOL_BAR (f) ? YES : NO; + BOOL tbar_visible = FRAME_TOOLBAR_P (f); NSToolbar *toolbar = [[FRAME_NS_VIEW (f) window] toolbar]; if (! tbar_visible != ! [toolbar isVisible]) [toolbar setVisible: tbar_visible]; @@ -7403,7 +7403,7 @@ - (void)windowDidEnterFullScreen /* provided for direct calls */ } else { - BOOL tbar_visible = FRAME_EXTERNAL_TOOL_BAR (emacsframe) ? YES : NO; + BOOL tbar_visible = FRAME_TOOLBAR_P (emacsframe); #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 \ && MAC_OS_X_VERSION_MIN_REQUIRED <= 1070 unsigned val = (unsigned)[NSApp presentationOptions]; @@ -7462,7 +7462,7 @@ - (void)windowDidExitFullScreen /* provided for direct calls */ #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 [self updateCollectionBehavior]; #endif - if (FRAME_EXTERNAL_TOOL_BAR (emacsframe)) + if (FRAME_TOOLBAR_P (emacsframe)) { [[[self window] toolbar] setVisible:YES]; update_frame_tool_bar (emacsframe); -- 2.30.2 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-12 11:48 ` bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS Alan Third @ 2021-09-12 12:54 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-12 15:33 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-12 15:44 ` Alan Third 0 siblings, 2 replies; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-12 12:54 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 131 bytes --] I've tried to apply suggested patch to local 192a384408cc846d8e66e91a67cd9ad4e7f0be24 and it doesn't help. -- wbr, Kirill [-- Attachment #1.2: Type: text/html, Size: 878 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-12 12:54 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-12 15:33 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-12 15:44 ` Alan Third 1 sibling, 0 replies; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-12 15:33 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 772 bytes --] I would like to share two screenshots. Both was made with local root 192a384408cc846d8e66e91a67cd9ad4e7f0be24 1) Screenshot 2021-09-12 at 17.31.16 without any patches 2) Screenshot 2021-09-12 at 17.30.22 with https://github.com/macports/macports-ports/blob/b9a749676382e24a5b1f22f93f155874a3f2cfcd/editors/emacs/files/worckaround-bug-50534.diff <https://github.com/macports/macports-ports/blob/b9a749676382e24a5b1f22f93f155874a3f2cfcd/editors/emacs/files/worckaround-bug-50534.diff> which is reverted 3 pointed commits -- wbr, Kirill > On 12. Sep 2021, at 14:54, Kirill A. Korinsky <kirill@korins.ky> wrote: > > I've tried to apply suggested patch to local 192a384408cc846d8e66e91a67cd9ad4e7f0be24 and it doesn't help. > > -- > wbr, Kirill > > [-- Attachment #1.2.1: Type: text/html, Size: 2817 bytes --] [-- Attachment #1.2.2: Screenshot 2021-09-12 at 17.30.22.png --] [-- Type: image/png, Size: 511064 bytes --] [-- Attachment #1.2.3: Screenshot 2021-09-12 at 17.31.16.png --] [-- Type: image/png, Size: 454440 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-12 12:54 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-12 15:33 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-12 15:44 ` Alan Third 2021-09-12 16:40 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 1 sibling, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-12 15:44 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 [-- Attachment #1: Type: text/plain, Size: 216 bytes --] On Sun, Sep 12, 2021 at 02:54:09PM +0200, Kirill A. Korinsky wrote: > I've tried to apply suggested patch to local 192a384408cc846d8e66e91a67cd9ad4e7f0be24 and it doesn't help. Please try this patch. -- Alan Third [-- Attachment #2: v2-0001-Fix-incorrectly-appearing-toolbar-on-NS-bug-50534.patch --] [-- Type: text/x-diff, Size: 3139 bytes --] From 70dbd0c9db782d15e0036f27db13a5ed8d9bba0b Mon Sep 17 00:00:00 2001 From: Alan Third <alan@idiocy.org> Date: Sun, 12 Sep 2021 12:42:11 +0100 Subject: [PATCH v2] Fix incorrectly appearing toolbar on NS (bug#50534) * src/nsterm.h (FRAME_TOOLBAR_P): Work out whether the frame should have a toolbar or not. * src/nsterm.m (ns_update_begin): ([EmacsView windowDidEnterFullScreen]): ([EmacsView windowDidExitFullScreen]): Use new FRAME_TOOLBAR_P instead of the apparently unreliable FRAME_EXTERNAL_TOOL_BAR. * src/nsmenu.m (update_frame_tool_bar): Use new FRAME_TOOLBAR_P. --- src/nsmenu.m | 4 ++-- src/nsterm.h | 3 +++ src/nsterm.m | 6 +++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/nsmenu.m b/src/nsmenu.m index 0d0b2f60c9..08d4fb830e 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -1090,10 +1090,10 @@ - (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item #undef TOOLPROP } - if ([toolbar isVisible] != FRAME_EXTERNAL_TOOL_BAR (f)) + if ([toolbar isVisible] != FRAME_TOOLBAR_P (f)) { f->output_data.ns->in_animation = 1; - [toolbar setVisible: FRAME_EXTERNAL_TOOL_BAR (f)]; + [toolbar setVisible: FRAME_TOOLBAR_P (f)]; f->output_data.ns->in_animation = 0; } diff --git a/src/nsterm.h b/src/nsterm.h index 8640b97d8a..4739fe6d1c 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -1044,6 +1044,9 @@ #define FIRST_CHAR_POSITION(f) \ (! (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f)) ? 0 \ : FRAME_SCROLL_BAR_COLS (f)) +#define FRAME_TOOLBAR_P(f) (FRAME_EXTERNAL_TOOL_BAR (f) \ + && FRAME_TOOL_BAR_LINES (f) > 0) + extern struct ns_display_info *ns_term_init (Lisp_Object display_name); extern void ns_term_shutdown (int sig); diff --git a/src/nsterm.m b/src/nsterm.m index f8b8c1e574..9f129be29c 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1038,7 +1038,7 @@ static NSRect constrain_frame_rect(NSRect frameRect, bool isFullscreen) if ([view isFullscreen] && [view fsIsNative]) { // Fix reappearing tool bar in fullscreen for Mac OS X 10.7 - BOOL tbar_visible = FRAME_EXTERNAL_TOOL_BAR (f) ? YES : NO; + BOOL tbar_visible = FRAME_TOOLBAR_P (f); NSToolbar *toolbar = [[FRAME_NS_VIEW (f) window] toolbar]; if (! tbar_visible != ! [toolbar isVisible]) [toolbar setVisible: tbar_visible]; @@ -7328,7 +7328,7 @@ - (void)windowDidEnterFullScreen /* provided for direct calls */ } else { - BOOL tbar_visible = FRAME_EXTERNAL_TOOL_BAR (emacsframe) ? YES : NO; + BOOL tbar_visible = FRAME_TOOLBAR_P (emacsframe); #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 \ && MAC_OS_X_VERSION_MIN_REQUIRED <= 1070 unsigned val = (unsigned)[NSApp presentationOptions]; @@ -7387,7 +7387,7 @@ - (void)windowDidExitFullScreen /* provided for direct calls */ #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 [self updateCollectionBehavior]; #endif - if (FRAME_EXTERNAL_TOOL_BAR (emacsframe)) + if (FRAME_TOOLBAR_P (emacsframe)) { [[[self window] toolbar] setVisible:YES]; update_frame_tool_bar (emacsframe); -- 2.30.2 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-12 15:44 ` Alan Third @ 2021-09-12 16:40 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-12 19:43 ` Alan Third 0 siblings, 1 reply; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-12 16:40 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 420 bytes --] this one works, Thanks! -- wbr, Kirill > On 12. Sep 2021, at 17:44, Alan Third <alan@idiocy.org> wrote: > > On Sun, Sep 12, 2021 at 02:54:09PM +0200, Kirill A. Korinsky wrote: >> I've tried to apply suggested patch to local 192a384408cc846d8e66e91a67cd9ad4e7f0be24 and it doesn't help. > > Please try this patch. > -- > Alan Third > <v2-0001-Fix-incorrectly-appearing-toolbar-on-NS-bug-50534.patch> [-- Attachment #1.2: Type: text/html, Size: 1538 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-12 16:40 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-12 19:43 ` Alan Third 2021-09-12 19:52 ` Alan Third 0 siblings, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-12 19:43 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 On Sun, Sep 12, 2021 at 06:40:55PM +0200, Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: > this one works, Turns out it doesn't, it just prevents the toolbar from appearing at all. What's the value of (frame-parameter nil 'tool-bar-lines) once the frame has loaded with the toolbar visible? -- Alan Third ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-12 19:43 ` Alan Third @ 2021-09-12 19:52 ` Alan Third 2021-09-12 20:14 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-12 19:52 UTC (permalink / raw) To: Kirill A. Korinsky, 50534 On Sun, Sep 12, 2021 at 08:43:47PM +0100, Alan Third wrote: > On Sun, Sep 12, 2021 at 06:40:55PM +0200, Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: > > this one works, > > Turns out it doesn't, it just prevents the toolbar from appearing at > all. > > What's the value of (frame-parameter nil 'tool-bar-lines) once the > frame has loaded with the toolbar visible? And can you perhaps try commenting out the call to update_frame_tool_bar on line 8328 of nsterm.m? -- Alan Third ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-12 19:52 ` Alan Third @ 2021-09-12 20:14 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-12 20:35 ` Alan Third 0 siblings, 1 reply; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-12 20:14 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 109 bytes --] The value is: 0 (#o0, #x0, ?\C-@) Do you mean to commit this call without your last patch? -- wbr, Kirill [-- Attachment #1.2: Type: text/html, Size: 896 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-12 20:14 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-12 20:35 ` Alan Third 2021-09-12 21:02 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-12 20:35 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 [-- Attachment #1: Type: text/plain, Size: 297 bytes --] Yes, please. On 12 September 2021 21:14:41 BST, "Kirill A. Korinsky" <kirill@korins.ky> wrote: >The value is: 0 (#o0, #x0, ?\C-@) > >Do you mean to commit this call without your last patch? > >-- >wbr, Kirill > -- Sent from my Android device with K-9 Mail. Please excuse my brevity. [-- Attachment #2: Type: text/html, Size: 1334 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-12 20:35 ` Alan Third @ 2021-09-12 21:02 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-13 18:44 ` Alan Third 0 siblings, 1 reply; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-12 21:02 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 485 bytes --] It doesn't help neighter. Requested value is the same: 0 (#o0, #x0, ?\C-@) -- wbr, Kirill > On 12. Sep 2021, at 22:35, Alan Third <alan@idiocy.org> wrote: > > Yes, please. > > On 12 September 2021 21:14:41 BST, "Kirill A. Korinsky" <kirill@korins.ky> wrote: > The value is: 0 (#o0, #x0, ?\C-@) > > Do you mean to commit this call without your last patch? > > -- > wbr, Kirill > > -- > Sent from my Android device with K-9 Mail. Please excuse my brevity. [-- Attachment #1.2: Type: text/html, Size: 2489 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-12 21:02 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-13 18:44 ` Alan Third 2021-09-13 18:52 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-13 18:44 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 On Sun, Sep 12, 2021 at 11:02:23PM +0200, Kirill A. Korinsky wrote: > It doesn't help neighter. > > Requested value is the same: 0 (#o0, #x0, ?\C-@) OK... When you open a file does the toolbar disappear? -- Alan Third ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-13 18:44 ` Alan Third @ 2021-09-13 18:52 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-13 18:54 ` Alan Third 0 siblings, 1 reply; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-13 18:52 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 354 bytes --] on which version should I test it? -- wbr, Kirill > On 13. Sep 2021, at 20:44, Alan Third <alan@idiocy.org> wrote: > > On Sun, Sep 12, 2021 at 11:02:23PM +0200, Kirill A. Korinsky wrote: >> It doesn't help neighter. >> >> Requested value is the same: 0 (#o0, #x0, ?\C-@) > > OK... When you open a file does the toolbar disappear? > -- > Alan Third [-- Attachment #1.2: Type: text/html, Size: 1433 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-13 18:52 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-13 18:54 ` Alan Third 2021-09-13 18:57 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-13 18:54 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 On Mon, Sep 13, 2021 at 08:52:56PM +0200, Kirill A. Korinsky wrote: > on which version should I test it? Unpatched. The patches don't actually fix anything, so forget about them. The problem must be elsewhere. -- Alan Third ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-13 18:54 ` Alan Third @ 2021-09-13 18:57 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-13 19:11 ` Alan Third 0 siblings, 1 reply; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-13 18:57 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 345 bytes --] Nope, toolbar exists -- wbr, Kirill > On 13. Sep 2021, at 20:54, Alan Third <alan@idiocy.org> wrote: > > On Mon, Sep 13, 2021 at 08:52:56PM +0200, Kirill A. Korinsky wrote: >> on which version should I test it? > > Unpatched. The patches don't actually fix anything, so forget about > them. The problem must be elsewhere. > -- > Alan Third [-- Attachment #1.2: Type: text/html, Size: 1388 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-13 18:57 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-13 19:11 ` Alan Third 2021-09-13 20:42 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-13 19:11 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 [-- Attachment #1: Type: text/plain, Size: 206 bytes --] On Mon, Sep 13, 2021 at 08:57:12PM +0200, Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: > Nope, toolbar exists Please try the attached patch. -- Alan Third [-- Attachment #2: v3-0001-Fix-incorrectly-appearing-toolbar-on-NS-bug-50534.patch --] [-- Type: text/x-diff, Size: 843 bytes --] From 17c5fbeca65de70e471a532ced3aead96468eaef Mon Sep 17 00:00:00 2001 From: Alan Third <alan@idiocy.org> Date: Mon, 13 Sep 2021 20:09:22 +0100 Subject: [PATCH v3] Fix incorrectly appearing toolbar on NS (bug#50534) * src/nsmenu.m (update_frame_tool_bar): Ensure both sides of the test are booleans. --- src/nsmenu.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nsmenu.m b/src/nsmenu.m index 0d0b2f60c9..947c8368ed 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -1090,7 +1090,7 @@ - (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item #undef TOOLPROP } - if ([toolbar isVisible] != FRAME_EXTERNAL_TOOL_BAR (f)) + if (![toolbar isVisible] != !FRAME_EXTERNAL_TOOL_BAR (f)) { f->output_data.ns->in_animation = 1; [toolbar setVisible: FRAME_EXTERNAL_TOOL_BAR (f)]; -- 2.30.2 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-13 19:11 ` Alan Third @ 2021-09-13 20:42 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-13 22:21 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-13 20:42 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 391 bytes --] Same. -- wbr, Kirill > On 13. Sep 2021, at 21:11, Alan Third <alan@idiocy.org> wrote: > > On Mon, Sep 13, 2021 at 08:57:12PM +0200, Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: >> Nope, toolbar exists > > Please try the attached patch. > -- > Alan Third > <v3-0001-Fix-incorrectly-appearing-toolbar-on-NS-bug-50534.patch> [-- Attachment #1.2: Type: text/html, Size: 1463 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-13 20:42 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-13 22:21 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-13 23:25 ` Alan Third 0 siblings, 1 reply; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-13 22:21 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 880 bytes --] Maybe it can be for some use. I've attached the minimal patch which fixed issue for me. This patch reverted some of your changes. Because when I move to full screen => toolbar is dissapear, I feel that the root cause is replacing layoutSublayersOfLayer to layout. Anyway, I don't know quartz and I can't minimize it future. -- wbr, Kirill > On 13. Sep 2021, at 22:42, Kirill A. Korinsky <kirill@korins.ky> wrote: > > Same. > > -- > wbr, Kirill > >> On 13. Sep 2021, at 21:11, Alan Third <alan@idiocy.org <mailto:alan@idiocy.org>> wrote: >> >> On Mon, Sep 13, 2021 at 08:57:12PM +0200, Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: >>> Nope, toolbar exists >> >> Please try the attached patch. >> -- >> Alan Third >> <v3-0001-Fix-incorrectly-appearing-toolbar-on-NS-bug-50534.patch> > [-- Attachment #1.2.1: Type: text/html, Size: 1289 bytes --] [-- Attachment #1.2.2: worckaround-bug-50534.diff --] [-- Type: application/octet-stream, Size: 5318 bytes --] index 8d88f7bd3d..2ee502fa99 100644 --- src/nsterm.m +++ src/nsterm.m @@ -6956,6 +6956,43 @@ - (NSSize)windowWillResize: (NSWindow *)sender toSize: (NSSize)frameSize } +- (void)windowDidResize: (NSNotification *)notification +{ + NSTRACE ("[EmacsView windowDidResize:]"); + if (!FRAME_LIVE_P (emacsframe)) + { + NSTRACE_MSG ("Ignored (frame dead)"); + return; + } + if (emacsframe->output_data.ns->in_animation) + { + NSTRACE_MSG ("Ignored (in animation)"); + return; + } + + if (! [self fsIsNative]) + { + NSWindow *theWindow = [notification object]; + /* We can get notification on the non-FS window when in + fullscreen mode. */ + if ([self window] != theWindow) return; + } + + NSTRACE_RECT ("frame", [[notification object] frame]); + +#ifdef NS_IMPL_GNUSTEP + NSWindow *theWindow = [notification object]; + + /* In GNUstep, at least currently, it's possible to get a didResize + without getting a willResize, therefore we need to act as if we got + the willResize now. */ + NSSize sz = [theWindow frame].size; + sz = [self windowWillResize: theWindow toSize: sz]; +#endif /* NS_IMPL_GNUSTEP */ + + ns_send_appdefined (-1); +} + #ifdef NS_IMPL_COCOA - (void)viewDidEndLiveResize { @@ -6973,30 +7010,38 @@ - (void)viewDidEndLiveResize #endif /* NS_IMPL_COCOA */ -- (void)resizeWithOldSuperviewSize: (NSSize)oldSize +- (void)viewDidResize:(NSNotification *)notification { - NSRect frame; - int width, height; - - NSTRACE ("[EmacsView resizeWithOldSuperviewSize:]"); - - [super resizeWithOldSuperviewSize:oldSize]; + NSRect frame = [self frame]; + int neww, newh, oldw, oldh; if (! FRAME_LIVE_P (emacsframe)) return; - frame = [self frame]; - width = (int)NSWidth (frame); - height = (int)NSHeight (frame); + NSTRACE ("[EmacsView viewDidResize]"); + + neww = (int)NSWidth (frame); + newh = (int)NSHeight (frame); + oldw = FRAME_PIXEL_WIDTH (emacsframe); + oldh = FRAME_PIXEL_HEIGHT (emacsframe); - NSTRACE_SIZE ("New size", NSMakeSize (width, height)); - NSTRACE_SIZE ("Original size", size); + /* Don't want to do anything when the view size hasn't changed. */ + if (emacsframe->new_size_p + ? (newh == emacsframe->new_height + && neww == emacsframe->new_width) + : (oldh == newh && oldw == neww)) + { + NSTRACE_MSG ("No change"); + return; + } - change_frame_size (emacsframe, width, height, false, YES, false); + NSTRACE_SIZE ("New size", NSMakeSize (neww, newh)); + NSTRACE_SIZE ("Original size", NSMakeSize (oldw, oldh)); + + change_frame_size (emacsframe, neww, newh, false, YES, false); SET_FRAME_GARBAGED (emacsframe); cancel_mouse_face (emacsframe); - ns_send_appdefined (-1); } @@ -7132,7 +7177,7 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f /* These settings mean AppKit will retain the contents of the frame on resize. Unfortunately it also means the frame will not be automatically marked for display, but we can do that ourselves in - resizeWithOldSuperviewSize. */ + viewDidResize. */ [self setWantsLayer:YES]; [self setLayerContentsRedrawPolicy: NSViewLayerContentsRedrawOnSetNeedsDisplay]; @@ -7152,6 +7197,13 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f [NSApp registerServicesMenuSendTypes: ns_send_types returnTypes: [NSArray array]]; + /* Set up view resize notifications. */ + [self setPostsFrameChangedNotifications:YES]; + [[NSNotificationCenter defaultCenter] + addObserver:self + selector:@selector (viewDidResize:) + name:NSViewFrameDidChangeNotification object:nil]; + ns_window_num++; return self; } @@ -7938,28 +7990,24 @@ - (void)copyRect:(NSRect)srcRect to:(NSRect)dstRect redisplay before drawing. This used to be done in viewWillDraw, but with the custom layer - that method is not called. We cannot call redisplay directly from - [NSView layout], because it may trigger another round of layout by - changing the frame size and recursive layout calls are banned. It - appears to be safe to call redisplay here. */ -- (void)layoutSublayersOfLayer:(CALayer *)layer -{ - if (!redisplaying_p && FRAME_GARBAGED_P (emacsframe)) - { - /* If there is IO going on when redisplay is run here Emacs - crashes. I think it's because this code will always be run - within the run loop and for whatever reason processing input - is dangerous. This technique was stolen wholesale from - nsmenu.m and seems to work. */ - bool owfi = waiting_for_input; - waiting_for_input = 0; - block_input (); + that method is not called. */ +- (void)layout +{ + [super layout]; + + /* If there is IO going on when redisplay is run here Emacs + crashes. I think it's because this code will always be run + within the run loop and for whatever reason processing input + is dangerous. This technique was stolen wholesale from + nsmenu.m and seems to work. */ + bool owfi = waiting_for_input; + waiting_for_input = 0; + block_input (); - redisplay (); + redisplay (); - unblock_input (); - waiting_for_input = owfi; - } + unblock_input (); + waiting_for_input = owfi; } #endif [-- Attachment #1.2.3: Type: text/html, Size: 1960 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply related [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-13 22:21 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-13 23:25 ` Alan Third 2021-09-14 0:05 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-13 23:25 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 [-- Attachment #1: Type: text/plain, Size: 1007 bytes --] On Tue, Sep 14, 2021 at 12:21:27AM +0200, Kirill A. Korinsky wrote: > Maybe it can be for some use. > > I've attached the minimal patch which fixed issue for me. > > This patch reverted some of your changes. > > Because when I move to full screen => toolbar is dissapear, I feel that the root cause is replacing layoutSublayersOfLayer to layout. > > Anyway, I don't know quartz and I can't minimize it future. It has to be a timing issue. None of the code you're changing touches the toolbar or its visibility, directly or indirectly, so any change there can only be altering when various pieces of code are called. Changing to and from fullscreen explicitly resets the toolbar's visibility. I think what we probably want to do is default the toolbar to non-visible when it's created (at the moment it's using the default, which I suspect is visible), and then rely on the fact that update_frame_tool_bar is always called when it should be visible to turn it back on. Patch attached. -- Alan Third [-- Attachment #2: v4-0001-Fix-incorrectly-appearing-toolbar-on-NS-bug-50534.patch --] [-- Type: text/x-diff, Size: 1612 bytes --] From 86f1c66b9237bd9cb094d3b77aa0907114c2f2dc Mon Sep 17 00:00:00 2001 From: Alan Third <alan@idiocy.org> Date: Mon, 13 Sep 2021 20:09:22 +0100 Subject: [PATCH v4] Fix incorrectly appearing toolbar on NS (bug#50534) * src/nsmenu.m (update_frame_tool_bar): Ensure both sides of the test are booleans. * src/nsterm.m ([EmacsWindow createToolbar:]): Make the toolbar non-visible initially, in case things get out of sync. Remove call to update_frame_tool_bar: the window isn't yet associated with the view, so it will return immediately. --- src/nsmenu.m | 2 +- src/nsterm.m | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/nsmenu.m b/src/nsmenu.m index 0d0b2f60c9..947c8368ed 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -1090,7 +1090,7 @@ - (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item #undef TOOLPROP } - if ([toolbar isVisible] != FRAME_EXTERNAL_TOOL_BAR (f)) + if (![toolbar isVisible] != !FRAME_EXTERNAL_TOOL_BAR (f)) { f->output_data.ns->in_animation = 1; [toolbar setVisible: FRAME_EXTERNAL_TOOL_BAR (f)]; diff --git a/src/nsterm.m b/src/nsterm.m index f8b8c1e574..33850544b0 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -8253,10 +8253,9 @@ - (void)createToolbar: (struct frame *)f EmacsToolbar *toolbar = [[EmacsToolbar alloc] initForView:view withIdentifier:[NSString stringWithLispString:f->name]]; + [toolbar setVisible:NO]; [self setToolbar:toolbar]; - update_frame_tool_bar (f); - #ifdef NS_IMPL_COCOA { NSButton *toggleButton; -- 2.30.2 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-13 23:25 ` Alan Third @ 2021-09-14 0:05 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 9:21 ` Alan Third 0 siblings, 1 reply; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-14 0:05 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 1266 bytes --] and it works! Thanks! -- wbr, Kirill > On 14. Sep 2021, at 01:25, Alan Third <alan@idiocy.org> wrote: > > On Tue, Sep 14, 2021 at 12:21:27AM +0200, Kirill A. Korinsky wrote: >> Maybe it can be for some use. >> >> I've attached the minimal patch which fixed issue for me. >> >> This patch reverted some of your changes. >> >> Because when I move to full screen => toolbar is dissapear, I feel that the root cause is replacing layoutSublayersOfLayer to layout. >> >> Anyway, I don't know quartz and I can't minimize it future. > > It has to be a timing issue. None of the code you're changing touches > the toolbar or its visibility, directly or indirectly, so any change > there can only be altering when various pieces of code are called. > > Changing to and from fullscreen explicitly resets the toolbar's > visibility. > > I think what we probably want to do is default the toolbar to > non-visible when it's created (at the moment it's using the default, > which I suspect is visible), and then rely on the fact that > update_frame_tool_bar is always called when it should be visible to > turn it back on. > > Patch attached. > -- > Alan Third > <v4-0001-Fix-incorrectly-appearing-toolbar-on-NS-bug-50534.patch> [-- Attachment #1.2: Type: text/html, Size: 2596 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-14 0:05 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-14 9:21 ` Alan Third 2021-09-14 11:26 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-14 9:21 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 package emacs user emacs usertag 50534 + ns close 50534 28.0 thankyou On Tue, Sep 14, 2021 at 02:05:37AM +0200, Kirill A. Korinsky wrote: > and it works! Thanks, I've it pushed to master. -- Alan Third ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-14 9:21 ` Alan Third @ 2021-09-14 11:26 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 12:13 ` Alan Third 2021-09-14 16:07 ` Rudolf Adamkovič via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 2 replies; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-14 11:26 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 421 bytes --] I have one bad news: it still exists but less often. I can reproduce it one time in 10 starts of my emacs. -- wbr, Kirill > On 14. Sep 2021, at 11:21, Alan Third <alan@idiocy.org> wrote: > > package emacs > user emacs > usertag 50534 + ns > close 50534 28.0 > thankyou > > On Tue, Sep 14, 2021 at 02:05:37AM +0200, Kirill A. Korinsky wrote: >> and it works! > > Thanks, I've it pushed to master. > -- > Alan Third [-- Attachment #1.2: Type: text/html, Size: 1596 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-14 11:26 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-14 12:13 ` Alan Third 2021-09-14 12:54 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 14:17 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 16:07 ` Rudolf Adamkovič via Bug reports for GNU Emacs, the Swiss army knife of text editors 1 sibling, 2 replies; 36+ messages in thread From: Alan Third @ 2021-09-14 12:13 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 [-- Attachment #1: Type: text/plain, Size: 776 bytes --] On Tue, Sep 14, 2021 at 01:26:44PM +0200, Kirill A. Korinsky wrote: > I have one bad news: it still exists but less often. > > I can reproduce it one time in 10 starts of my emacs. The *only* place that should modify FRAME_EXTERNAL_TOOL_BAR is ns_set_tool_bar_lines, which should be called *every time* the number of lines is changed. It would be nice to know what the value of FRAME_EXTERNAL_TOOL_BAR and tool-bar-lines are when the toolbar is wrongly visible, because I can't find a single location in the code that sets the visibility without first checking FRAME_EXTERNAL_TOOL_BAR, and it should *always* be set by ns_set_tool_bar_lines. *sigh* I've no idea. Attached is the nuclear option. If this doesn't work then FRAME_EXTERNAL_TOOL_BAR is wrong. -- Alan Third [-- Attachment #2: 0001-A-further-fix-for-toolbar-visibility-problems-on-mac.patch --] [-- Type: text/x-diff, Size: 1222 bytes --] From 5a652de0e955185fafdad3b2aa886c0fdf48e679 Mon Sep 17 00:00:00 2001 From: Alan Third <alan@idiocy.org> Date: Tue, 14 Sep 2021 13:03:37 +0100 Subject: [PATCH] A further fix for toolbar visibility problems on macOS (bug#50534) * src/nsterm.m (ns_update_begin): Ensure the toolbar's visibility is set correctly. --- src/nsterm.m | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/nsterm.m b/src/nsterm.m index 33850544b0..14dc6573b8 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1034,16 +1034,14 @@ static NSRect constrain_frame_rect(NSRect frameRect, bool isFullscreen) ns_update_auto_hide_menu_bar (); -#ifdef NS_IMPL_COCOA - if ([view isFullscreen] && [view fsIsNative]) + NSToolbar *toolbar = [[FRAME_NS_VIEW (f) window] toolbar]; + if (toolbar) { - // Fix reappearing tool bar in fullscreen for Mac OS X 10.7 + /* Ensure the toolbars visibility is set correctly. */ BOOL tbar_visible = FRAME_EXTERNAL_TOOL_BAR (f) ? YES : NO; - NSToolbar *toolbar = [[FRAME_NS_VIEW (f) window] toolbar]; if (! tbar_visible != ! [toolbar isVisible]) [toolbar setVisible: tbar_visible]; } -#endif ns_updating_frame = f; [view lockFocus]; -- 2.30.2 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-14 12:13 ` Alan Third @ 2021-09-14 12:54 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 14:17 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 1 sibling, 0 replies; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-14 12:54 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 1226 bytes --] Hey, I haven't yet tested your last patch. Right now I'm on 1e83d04214f27a79a4d4841772da946e24cbf21d as local root and it starts to have wired visual things like that: Before your last patches everything was fine. -- wbr, Kirill > On 14. Sep 2021, at 14:13, Alan Third <alan@idiocy.org> wrote: > > On Tue, Sep 14, 2021 at 01:26:44PM +0200, Kirill A. Korinsky wrote: >> I have one bad news: it still exists but less often. >> >> I can reproduce it one time in 10 starts of my emacs. > > The *only* place that should modify FRAME_EXTERNAL_TOOL_BAR is > ns_set_tool_bar_lines, which should be called *every time* the number > of lines is changed. > > It would be nice to know what the value of FRAME_EXTERNAL_TOOL_BAR and > tool-bar-lines are when the toolbar is wrongly visible, because I > can't find a single location in the code that sets the visibility > without first checking FRAME_EXTERNAL_TOOL_BAR, and it should *always* > be set by ns_set_tool_bar_lines. > > *sigh* I've no idea. > > Attached is the nuclear option. If this doesn't work then > FRAME_EXTERNAL_TOOL_BAR is wrong. > > -- > Alan Third > <0001-A-further-fix-for-toolbar-visibility-problems-on-mac.patch> [-- Attachment #1.2.1: Type: text/html, Size: 2838 bytes --] [-- Attachment #1.2.2: Screenshot 2021-09-14 at 14.52.33.png --] [-- Type: image/png, Size: 15607 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-14 12:13 ` Alan Third 2021-09-14 12:54 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-14 14:17 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 14:35 ` Alan Third 1 sibling, 1 reply; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-14 14:17 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 1047 bytes --] Hey, I can't broke the nuclear option anymore. Seems it fixing everything. -- wbr, Kirill > On 14. Sep 2021, at 14:13, Alan Third <alan@idiocy.org> wrote: > > On Tue, Sep 14, 2021 at 01:26:44PM +0200, Kirill A. Korinsky wrote: >> I have one bad news: it still exists but less often. >> >> I can reproduce it one time in 10 starts of my emacs. > > The *only* place that should modify FRAME_EXTERNAL_TOOL_BAR is > ns_set_tool_bar_lines, which should be called *every time* the number > of lines is changed. > > It would be nice to know what the value of FRAME_EXTERNAL_TOOL_BAR and > tool-bar-lines are when the toolbar is wrongly visible, because I > can't find a single location in the code that sets the visibility > without first checking FRAME_EXTERNAL_TOOL_BAR, and it should *always* > be set by ns_set_tool_bar_lines. > > *sigh* I've no idea. > > Attached is the nuclear option. If this doesn't work then > FRAME_EXTERNAL_TOOL_BAR is wrong. > > -- > Alan Third > <0001-A-further-fix-for-toolbar-visibility-problems-on-mac.patch> [-- Attachment #1.2: Type: text/html, Size: 2406 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-14 14:17 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-14 14:35 ` Alan Third 2021-09-14 14:43 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-17 17:26 ` Alan Third 0 siblings, 2 replies; 36+ messages in thread From: Alan Third @ 2021-09-14 14:35 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 On Tue, Sep 14, 2021 at 04:17:15PM +0200, Kirill A. Korinsky wrote: > Hey, > > I can't broke the nuclear option anymore. > > Seems it fixing everything. Thanks, I'll push it to master. -- Alan Third ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-14 14:35 ` Alan Third @ 2021-09-14 14:43 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-17 17:26 ` Alan Third 1 sibling, 0 replies; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-14 14:43 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 639 bytes --] regarding my last screenshot. I found a way to reproduce it. When I create a new frame via `New Frame` from menu inside Dock => it brokes lines inside emacs. After I've working with emacs for a while. A while mean 30-40 minutes or more with active switching between frames and virtual screen on macOS. -- wbr, Kirill > On 14. Sep 2021, at 16:35, Alan Third <alan@idiocy.org> wrote: > > On Tue, Sep 14, 2021 at 04:17:15PM +0200, Kirill A. Korinsky wrote: >> Hey, >> >> I can't broke the nuclear option anymore. >> >> Seems it fixing everything. > > Thanks, I'll push it to master. > > -- > Alan Third [-- Attachment #1.2.1: Type: text/html, Size: 1995 bytes --] [-- Attachment #1.2.2: Screenshot 2021-09-14 at 16.41.28.png --] [-- Type: image/png, Size: 15718 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-14 14:35 ` Alan Third 2021-09-14 14:43 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-17 17:26 ` Alan Third 2021-09-26 10:56 ` Alan Third 1 sibling, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-17 17:26 UTC (permalink / raw) To: Kirill A. Korinsky, 50534 On Tue, Sep 14, 2021 at 03:35:57PM +0100, Alan Third wrote: > On Tue, Sep 14, 2021 at 04:17:15PM +0200, Kirill A. Korinsky wrote: > > Hey, > > > > I can't broke the nuclear option anymore. > > > > Seems it fixing everything. > > Thanks, I'll push it to master. This last patch breaks toolbar display on my Mac. I think probably the best option is to change the toolbar handling so it actually just removes the toolbar when we don't want to display it. I really don't understand why the NS port goes to great lengths to hide it. If we remove it then it can never be displayed when it shouldn't be, and if it's attached to the window then it should always be displayed, so we don't have to concern ourselves with making sure the settings match after the window is resized or whatever. -- Alan Third ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-17 17:26 ` Alan Third @ 2021-09-26 10:56 ` Alan Third 2021-09-26 16:23 ` Mattias Engdegård 0 siblings, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-26 10:56 UTC (permalink / raw) To: Kirill A. Korinsky, 50534; +Cc: Mattias Engdegård [-- Attachment #1: Type: text/plain, Size: 1492 bytes --] On Fri, Sep 17, 2021 at 06:26:54PM +0100, Alan Third wrote: > On Tue, Sep 14, 2021 at 03:35:57PM +0100, Alan Third wrote: > > On Tue, Sep 14, 2021 at 04:17:15PM +0200, Kirill A. Korinsky wrote: > > > Hey, > > > > > > I can't broke the nuclear option anymore. > > > > > > Seems it fixing everything. > > > > Thanks, I'll push it to master. > > This last patch breaks toolbar display on my Mac. > > I think probably the best option is to change the toolbar handling so > it actually just removes the toolbar when we don't want to display it. > I really don't understand why the NS port goes to great lengths to > hide it. If we remove it then it can never be displayed when it > shouldn't be, and if it's attached to the window then it should always > be displayed, so we don't have to concern ourselves with making sure > the settings match after the window is resized or whatever. Can you please try the attached patch and check that the toolbar is behaving as expected. It seems to work correctly here everywhere (except in GNUstep we sometimes get an extra tall toolbar, but I doubt anyone cares too much about that), but I think it may have removed the animation when the toolbar is attached to the frame. If anyone is really upset about the animation (and I'm not even sure it IS gone) then we probably just need to create the toolbar as invisible and attach it then mark it visible, but only do that on Cocoa as it breaks the toolbar on frame creation in GNUstep. -- Alan Third [-- Attachment #2: 0001-Fix-NS-toolbar-again-bug-50534.patch --] [-- Type: text/x-diff, Size: 6793 bytes --] From 2cf79c5636eb6fd5c7d082db2b0fdef1f168f404 Mon Sep 17 00:00:00 2001 From: Alan Third <alan@idiocy.org> Date: Sun, 26 Sep 2021 11:12:48 +0100 Subject: [PATCH] Fix NS toolbar again (bug#50534) * src/nsmenu.m (free_frame_tool_bar): Remove toolbar. (update_frame_tool_bar_1): New function. (update_frame_tool_bar): Move most of the functionality to update_frame_tool_bar_1. * src/nsterm.h: Definitions of functions and methods. * src/nsterm.m (ns_update_begin): ([EmacsView windowDidEnterFullScreen]): ([EmacsView windowDidExitFullScreen]): We no longer need to reset the toolbar visibility as that's done when we create the new fullscreen window. ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Move the check for undecorated frames into createToolbar:. ([EmacsWindow createToolbar:]): Check whether a toolbar should be created, and run the toolbar update immediately. --- src/nsmenu.m | 35 +++++++++++++++++++++++------------ src/nsterm.h | 5 +++++ src/nsterm.m | 28 ++++++---------------------- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/nsmenu.m b/src/nsmenu.m index f0c5bb24e6..9b78643d56 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -995,25 +995,24 @@ - (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item /* Note: This triggers an animation, which calls windowDidResize repeatedly. */ f->output_data.ns->in_animation = 1; - [[[view window] toolbar] setVisible: NO]; + [[[view window] toolbar] setVisible:NO]; f->output_data.ns->in_animation = 0; + [[view window] setToolbar:nil]; + unblock_input (); } void -update_frame_tool_bar (struct frame *f) +update_frame_tool_bar_1 (struct frame *f, EmacsToolbar *toolbar) /* -------------------------------------------------------------------------- Update toolbar contents. -------------------------------------------------------------------------- */ { int i, k = 0; - NSWindow *window = [FRAME_NS_VIEW (f) window]; - EmacsToolbar *toolbar = (EmacsToolbar *)[window toolbar]; NSTRACE ("update_frame_tool_bar"); - if (window == nil || toolbar == nil) return; block_input (); #ifdef NS_IMPL_COCOA @@ -1094,13 +1093,6 @@ - (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item #undef TOOLPROP } - if (![toolbar isVisible] != !FRAME_EXTERNAL_TOOL_BAR (f)) - { - f->output_data.ns->in_animation = 1; - [toolbar setVisible: FRAME_EXTERNAL_TOOL_BAR (f)]; - f->output_data.ns->in_animation = 0; - } - #ifdef NS_IMPL_COCOA if ([toolbar changed]) { @@ -1124,9 +1116,28 @@ - (void)menu:(NSMenu *)menu willHighlightItem:(NSMenuItem *)item [newDict release]; } #endif + + [toolbar setVisible:YES]; unblock_input (); } +void +update_frame_tool_bar (struct frame *f) +{ + EmacsWindow *window = (EmacsWindow *)[FRAME_NS_VIEW (f) window]; + EmacsToolbar *toolbar = (EmacsToolbar *)[window toolbar]; + + if (!toolbar) + { + [window createToolbar:f]; + return; + } + + if (window == nil || toolbar == nil) return; + + update_frame_tool_bar_1 (f, toolbar); +} + /* ========================================================================== diff --git a/src/nsterm.h b/src/nsterm.h index 6d4ea77121..1bedf78bcb 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -418,6 +418,7 @@ #define NSTRACE_UNSILENCE() - (instancetype)initWithEmacsFrame:(struct frame *)f; - (instancetype)initWithEmacsFrame:(struct frame *)f fullscreen:(BOOL)fullscreen screen:(NSScreen *)screen; +- (void)createToolbar:(struct frame *)f; - (void)setParentChildRelationships; - (NSInteger)borderWidth; - (BOOL)restackWindow:(NSWindow *)win above:(BOOL)above; @@ -1148,6 +1149,10 @@ ns_query_color (void *col, Emacs_Color *color_def, bool setPixel); /* in nsmenu */ extern void update_frame_tool_bar (struct frame *f); +#ifdef __OBJC__ +extern void update_frame_tool_bar_1 (struct frame *f, EmacsToolbar *toolbar); +#endif + extern void free_frame_tool_bar (struct frame *f); extern Lisp_Object find_and_return_menu_selection (struct frame *f, bool keymaps, diff --git a/src/nsterm.m b/src/nsterm.m index 4ef20e4c2b..3363fac475 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1021,15 +1021,6 @@ static NSRect constrain_frame_rect(NSRect frameRect, bool isFullscreen) ns_update_auto_hide_menu_bar (); - NSToolbar *toolbar = [[FRAME_NS_VIEW (f) window] toolbar]; - if (toolbar) - { - /* Ensure the toolbars visibility is set correctly. */ - BOOL tbar_visible = FRAME_EXTERNAL_TOOL_BAR (f) ? YES : NO; - if (! tbar_visible != ! [toolbar isVisible]) - [toolbar setVisible: tbar_visible]; - } - ns_updating_frame = f; [view lockFocus]; } @@ -7401,7 +7392,6 @@ - (void)windowDidEnterFullScreen /* provided for direct calls */ } else { - BOOL tbar_visible = FRAME_EXTERNAL_TOOL_BAR (emacsframe) ? YES : NO; #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 \ && MAC_OS_X_VERSION_MIN_REQUIRED <= 1070 unsigned val = (unsigned)[NSApp presentationOptions]; @@ -7419,7 +7409,6 @@ - (void)windowDidEnterFullScreen /* provided for direct calls */ [NSApp setPresentationOptions: options]; } #endif - [[[self window]toolbar] setVisible:tbar_visible]; } } @@ -7460,14 +7449,6 @@ - (void)windowDidExitFullScreen /* provided for direct calls */ #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 [self updateCollectionBehavior]; #endif - if (FRAME_EXTERNAL_TOOL_BAR (emacsframe)) - { - [[[self window] toolbar] setVisible:YES]; - update_frame_tool_bar (emacsframe); - [[self window] display]; - } - else - [[[self window] toolbar] setVisible:NO]; if (next_maximized != -1) [[self window] performZoom:self]; @@ -8298,8 +8279,7 @@ - (instancetype) initWithEmacsFrame:(struct frame *)f [self setOpaque:NO]; /* toolbar support */ - if (! FRAME_UNDECORATED (f)) - [self createToolbar:f]; + [self createToolbar:f]; /* macOS Sierra automatically enables tabbed windows. We can't allow this to be enabled until it's available on a Free system. @@ -8316,13 +8296,17 @@ - (instancetype) initWithEmacsFrame:(struct frame *)f - (void)createToolbar: (struct frame *)f { + if (FRAME_UNDECORATED (f) || !FRAME_EXTERNAL_TOOL_BAR (f)) + return; + EmacsView *view = (EmacsView *)FRAME_NS_VIEW (f); EmacsToolbar *toolbar = [[EmacsToolbar alloc] initForView:view withIdentifier:[NSString stringWithLispString:f->name]]; - [toolbar setVisible:NO]; + [self setToolbar:toolbar]; + update_frame_tool_bar_1 (f, toolbar); #ifdef NS_IMPL_COCOA { -- 2.33.0 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-26 10:56 ` Alan Third @ 2021-09-26 16:23 ` Mattias Engdegård 2021-09-27 10:10 ` Alan Third 0 siblings, 1 reply; 36+ messages in thread From: Mattias Engdegård @ 2021-09-26 16:23 UTC (permalink / raw) To: Alan Third; +Cc: 50534, Kirill A. Korinsky 26 sep. 2021 kl. 12.56 skrev Alan Third <alan@idiocy.org>: > Can you please try the attached patch and check that the toolbar is > behaving as expected. Looks fine here, thank you! Didn't see any animation but can't say I miss that. ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-26 16:23 ` Mattias Engdegård @ 2021-09-27 10:10 ` Alan Third 2021-09-28 19:00 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-27 10:10 UTC (permalink / raw) To: Mattias Engdegård; +Cc: 50534-done, Kirill A. Korinsky On Sun, Sep 26, 2021 at 06:23:12PM +0200, Mattias Engdegård wrote: > 26 sep. 2021 kl. 12.56 skrev Alan Third <alan@idiocy.org>: > > > Can you please try the attached patch and check that the toolbar is > > behaving as expected. > > Looks fine here, thank you! Didn't see any animation but can't say I miss that. I'm reasonably sure this should sort Kirill's problem too, so I've pushed it to master. -- Alan Third ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-27 10:10 ` Alan Third @ 2021-09-28 19:00 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-28 19:14 ` Alan Third 0 siblings, 1 reply; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-28 19:00 UTC (permalink / raw) To: Alan Third; +Cc: 50534-done [-- Attachment #1.1: Type: text/plain, Size: 146 bytes --] Alan, I just tried ccb35fb8fb9de5f069fd0103f24e3048d716febc as local root and would like to confirm that fix still hold. -- wbr, Kirill [-- Attachment #1.2: Type: text/html, Size: 911 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-28 19:00 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-28 19:14 ` Alan Third 2021-09-29 10:53 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 36+ messages in thread From: Alan Third @ 2021-09-28 19:14 UTC (permalink / raw) To: Kirill A. Korinsky; +Cc: 50534 On Tue, Sep 28, 2021 at 09:00:57PM +0200, Kirill A. Korinsky wrote: > Alan, > > I just tried ccb35fb8fb9de5f069fd0103f24e3048d716febc as local root and would like to confirm that fix still hold. Excellent, thanks. -- Alan Third ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-28 19:14 ` Alan Third @ 2021-09-29 10:53 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 0 replies; 36+ messages in thread From: Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-29 10:53 UTC (permalink / raw) To: Alan Third; +Cc: 50534 [-- Attachment #1.1: Type: text/plain, Size: 176 bytes --] BTW, I also opened bug#50641 and I feel that it can be related. Why? Because crashes started at the same time, when this issue was discovered by me. -- wbr, Kirill [-- Attachment #1.2: Type: text/html, Size: 1360 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS 2021-09-14 11:26 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 12:13 ` Alan Third @ 2021-09-14 16:07 ` Rudolf Adamkovič via Bug reports for GNU Emacs, the Swiss army knife of text editors 1 sibling, 0 replies; 36+ messages in thread From: Rudolf Adamkovič via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-09-14 16:07 UTC (permalink / raw) To: Kirill A. Korinsky, Alan Third; +Cc: 50534 "Kirill A. Korinsky" via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org> writes: > I have one bad news: it still exists but less often. I can > reproduce it one time in 10 starts of my emacs. FYI: I observe the bug on my Mac as well. When I execute M-x and tool-bar-mode, it says "Tool-bar mode enabled" or "Tool-bar mode disabled", but no matter what the message says, the tool bar does its own thing. Sometimes, Emacs says "Tool-bar mode enabled", and the tool bar hides. Other times, the opposite happens, or the command does nothing at all, despite Emacs saying that it enabled or disabled the tool bar. Chaos! I observe the above on Emacs 28 from master, commit 0934363c96ff774ce242b51529688bbfbb48ba02, which includes 1e83d04214 * Fix incorrectly appearing toolbar on NS (bug#50534). R+ -- "Contrariwise," continued Tweedledee, "if it was so, it might be; and if it were so, it would be; but as it isn't, it ain't. That's logic." -- Lewis Carroll, Through the Looking Glass Rudolf Adamkovič <salutis@me.com> Studenohorská 25 84103 Bratislava Slovakia [he/him] ^ permalink raw reply [flat|nested] 36+ messages in thread
end of thread, other threads:[~2021-09-29 10:53 UTC | newest] Thread overview: 36+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-09-12 0:29 bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors [not found] ` <handler.50534.B.16314065846903.ack@debbugs.gnu.org> 2021-09-12 9:25 ` bug#50534: Acknowledgement (28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS) Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-12 11:48 ` bug#50534: 28.0.50; Toolbar shows despite tool-bar-mode being disabled on macOS Alan Third 2021-09-12 12:54 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-12 15:33 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-12 15:44 ` Alan Third 2021-09-12 16:40 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-12 19:43 ` Alan Third 2021-09-12 19:52 ` Alan Third 2021-09-12 20:14 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-12 20:35 ` Alan Third 2021-09-12 21:02 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-13 18:44 ` Alan Third 2021-09-13 18:52 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-13 18:54 ` Alan Third 2021-09-13 18:57 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-13 19:11 ` Alan Third 2021-09-13 20:42 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-13 22:21 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-13 23:25 ` Alan Third 2021-09-14 0:05 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 9:21 ` Alan Third 2021-09-14 11:26 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 12:13 ` Alan Third 2021-09-14 12:54 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 14:17 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 14:35 ` Alan Third 2021-09-14 14:43 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-17 17:26 ` Alan Third 2021-09-26 10:56 ` Alan Third 2021-09-26 16:23 ` Mattias Engdegård 2021-09-27 10:10 ` Alan Third 2021-09-28 19:00 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-28 19:14 ` Alan Third 2021-09-29 10:53 ` Kirill A. Korinsky via Bug reports for GNU Emacs, the Swiss army knife of text editors 2021-09-14 16:07 ` Rudolf Adamkovič via Bug reports for GNU Emacs, the Swiss army knife of text editors
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.