Subject: bug#62679: closed (Re: bug#62679: 29.0.60; Bindings on `image-map` cause error on sliced images)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 08 Apr 2023 09:47:02 +0000

Your bug report

#62679: 29.0.60; Bindings on `image-map` cause error on sliced images

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
62679: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62679
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#62679: 29.0.60; Bindings on `image-map` cause error on sliced images
From: Eli Zaretskii <[email-masked]>
To: Rah Guzar <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sat, 08 Apr 2023 12:46:55 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Rah Guzar <[email-masked]>
> Cc: [email-masked], [email-masked]
> Date: Thu, 06 Apr 2023 20:30:19 +0200
> 
> > I cannot reproduce this.  On my system, if I move point with the right
> > arrow key, "M-x describe-text-properties" doesn't show the keymap
> > property.
> 
> You are right there is no keymap property there but somehow "image-map"
> is still active. I can press "i +" there and see the error while after or
> before the image pressing "i +" will insert the two characters.

Thanks, I fixed this now on the emacs-29 branch.

> >>   According to the info manual, the advantage of using sliced images is
> >>   to get a more intuitive scrolling behavior and that is the reason I am
> >>   using them. I think for everything else the image should behave as a
> >>   single image. For that reason the behavior of "i r" seems correct to
> >>   me. It rotates the image and then slices.
> >
> > If this is what you see, I guess you have Emacs built with
> > ImageMagick?  I don't see "rotation followed by slicing", because the
> > code doesn't do that, at least not with rotation that is implemented
> > natively in Emacs on my system.  But, as I said, rotation of sliced
> > image is not well defined, so my opinion is that people should not
> > depend on it doing something sensible.
> 
> Evaluating "(image-type-available-p 'imagemagick)" returns nil so I
> think Emacs is built without imagemagick support. The sequence of
> command I ran to build it were
> ./configure --with-pgtk
> make
> make bootstrap
> where the first make failed due to some org issue.
> 
> But to the broader point about rotation not being sensible I think it
> might be a good idea to put a different keymap on sliced images in that
> case. Maybe "sliced-image-map" which should be the parent of
> "image-map". I don't see any misbehavior though.

I added a new map, in which some commands that have no meaning for
sliced images are absent.

And with that, I'm closing this bug.

Subject: 29.0.60; Bindings on `image-map` cause error on sliced images
From: Rah Guzar <[email-masked]>
To: [email-masked]
Date: Wed, 05 Apr 2023 17:23:11 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Dear Emacs maintainers,
  Starting from `emacs -Q`, post the following code into scratch buffer,

```
(let* ((image (create-image path-to-png 'png nil :mask 'heuristic))
       (rows (max 1 (1- (cdr (image-size image))))))
  (goto-char (point-max))
  (insert "\n")
  (insert-sliced-image image " " nil rows))
```
This inserts the image specified at the end of the buffer. The image
has a `keymap` text property which include binding for various
operations on images but moving point to the image and trying to use
any of these (e.g. `i +` to increase image size) results in the error,

Error running timer ‘image--change-size’: (error "No image under point")

Rah Guzar

In GNU Emacs 29.0.60 (build 1, x86_64-suse-linux-gnu, GTK+ Version
 3.24.37, cairo version 1.17.8) of 2023-04-03 built on cloud108
System Description: openSUSE Tumbleweed

Configured using:
 'configure --host=x86_64-suse-linux-gnu --build=x86_64-suse-linux-gnu
 --program-prefix= --disable-dependency-tracking --prefix=/usr
 --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin
 --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include
 --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-pgtk --with-native-compilation=aot
 --with-cairo --with-libotf --with-jpeg --with-tiff --with-gif
 --with-png --with-rsvg --with-xft --with-xml2 --with-dbus --with-sound
 --with-json --with-mailutils --with-gnutls --with-tree-sitter
 --enable-locallisppath=/usr/share/emacs/29.0.60/site-lisp:/usr/share/emacs/site-lisp
 'CFLAGS=-O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3
 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables
 -fstack-clash-protection -Werror=return-type -flto=auto'
 LDFLAGS=-Wl,-O2'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER XIM GTK3 ZLIB

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

Major mode: mu4e:main

Minor modes in effect:
  pdf-occur-global-minor-mode: t
  global-anzu-mode: t
  anzu-mode: t
  recentf-mode: t
  save-place-mode: t
  global-so-long-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  eros-mode: t
  projectile-mode: t
  which-key-mode: t
  savehist-mode: t
  better-jumper-mode: t
  better-jumper-local-mode: t
  global-company-mode: t
  company-mode: t
  vertico-mode: t
  all-the-icons-completion-mode: t
  marginalia-mode: t
  evil-goggles-mode: t
  evil-escape-mode: t
  evil-snipe-override-mode: t
  evil-snipe-mode: t
  gcmh-mode: t
  winner-mode: t
  smartparens-global-mode: t
  ws-butler-global-mode: t
  undo-fu-session-global-mode: t
  undo-fu-mode: t
  workroom-mode: t
  mu4e-search-minor-mode: t
  global-hl-line-mode: t
  hl-line-mode: t
  mu4e-update-minor-mode: t
  mu4e-context-minor-mode: t
  dirvish-override-dired-mode: t
  server-mode: t
  repeat-mode: t
  evil-mode: t
  evil-local-mode: t
  windmove-mode: t
  +popup-mode: t
  +modeline-global-mode: t
  +modeline-mode: t
  override-global-mode: t
  general-override-mode: t
  global-eldoc-mode: t
  show-paren-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
  buffer-read-only: t
  size-indication-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  abbrev-mode: t

Load-path shadows:
/home/azeem/.emacs.d/.local/straight/build-29.0.60/emacsql/emacsql-sqlite-builtin hides /home/azeem/.emacs.d/.local/straight/build-29.0.60/emacsql-sqlite-builtin/emacsql-sqlite-builtin
/home/azeem/.emacs.d/.local/straight/build-29.0.60/citar-embark/citar-embark hides /home/azeem/.emacs.d/.local/straight/build-29.0.60/citar/citar-embark
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e hides /usr/share/emacs/site-lisp/mu4e/mu4e
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-window hides /usr/share/emacs/site-lisp/mu4e/mu4e-window
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-view hides /usr/share/emacs/site-lisp/mu4e/mu4e-view
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-vars hides /usr/share/emacs/site-lisp/mu4e/mu4e-vars
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-update hides /usr/share/emacs/site-lisp/mu4e/mu4e-update
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-server hides /usr/share/emacs/site-lisp/mu4e/mu4e-server
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-search hides /usr/share/emacs/site-lisp/mu4e/mu4e-search
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-query-items hides /usr/share/emacs/site-lisp/mu4e/mu4e-query-items
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-org hides /usr/share/emacs/site-lisp/mu4e/mu4e-org
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-obsolete hides /usr/share/emacs/site-lisp/mu4e/mu4e-obsolete
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-notification hides /usr/share/emacs/site-lisp/mu4e/mu4e-notification
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-modeline hides /usr/share/emacs/site-lisp/mu4e/mu4e-modeline
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-message hides /usr/share/emacs/site-lisp/mu4e/mu4e-message
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-mark hides /usr/share/emacs/site-lisp/mu4e/mu4e-mark
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-main hides /usr/share/emacs/site-lisp/mu4e/mu4e-main
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-icalendar hides /usr/share/emacs/site-lisp/mu4e/mu4e-icalendar
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-helpers hides /usr/share/emacs/site-lisp/mu4e/mu4e-helpers
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-headers hides /usr/share/emacs/site-lisp/mu4e/mu4e-headers
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-folders hides /usr/share/emacs/site-lisp/mu4e/mu4e-folders
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-draft hides /usr/share/emacs/site-lisp/mu4e/mu4e-draft
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-contrib hides /usr/share/emacs/site-lisp/mu4e/mu4e-contrib
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-context hides /usr/share/emacs/site-lisp/mu4e/mu4e-context
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-config hides /usr/share/emacs/site-lisp/mu4e/mu4e-config
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-compose hides /usr/share/emacs/site-lisp/mu4e/mu4e-compose
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-bookmarks hides /usr/share/emacs/site-lisp/mu4e/mu4e-bookmarks
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-actions hides /usr/share/emacs/site-lisp/mu4e/mu4e-actions
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-speedbar hides /usr/share/emacs/site-lisp/mu4e/mu4e-speedbar
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-lists hides /usr/share/emacs/site-lisp/mu4e/mu4e-lists
/home/azeem/.emacs.d/.local/straight/build-29.0.60/mu4e/mu4e-contacts hides /usr/share/emacs/site-lisp/mu4e/mu4e-contacts

Features:
(shadow emacsbug company-ispell company-dabbrev jit-spell face-remap
pdf-annot facemenu pdf-outline pdf-links pdf-loader pdf-occur
evil-collection-tablist tablist tablist-filter semantic/wisent/comp
semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local cedet
pdf-isearch pdf-misc evil-collection-pdf pdf-history pdf-tools
evil-collection-package-menu doom-packages package url-handlers
saveplace-pdf-view pdf-view pdf-cache pdf-info tq pdf-util pdf-macs
image-mode exif url-http url-gw url-cache url-auth gts-engine-deepl
gts-implements gts-faces gts-core guess-language flyspell ispell
gnus-async gnus-bcklg gnus-ml nndraft nnmh nnfolder epa-file
network-stream nsm gnus-agent gnus-srvr gnus-score score-mode nnvirtual
gnus-msg nntp gnus-cache descr-text checkdoc evil-collection-vc-git
vc-git evil-collection-diff-mode diff-mode vc-dispatcher qp tabify
evil-collection-xref xref sort gnus-cite smiley shr-color mm-archive
mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check evil-anzu anzu evil-collection-indent vertico-directory
evil-collection-helpful helpful cc-langs cc-vars cc-defs
evil-collection-imenu imenu trace evil-collection-edebug edebug
evil-collection-debug debug backtrace info-look evil-collection-info
info f f-shortdoc help-fns radix-tree evil-collection-elisp-refs
elisp-refs s evil-collection-consult consult-vertico consult
use-package-lint adaptive-wrap company-yasnippet delsel
evil-textobj-anyblock jka-compr auto-minor-mode disp-table whitespace
bicycle hideshow recentf tree-widget saveplace evil-collection-so-long
so-long evil-embrace evil-surround embrace expand-region
text-mode-expansions the-org-mode-expansions org-element org-persist xdg
org-id org-refile avl-tree generator er-basic-expansions
expand-region-core expand-region-custom eros highlight-quoted
rainbow-delimiters highlight-numbers parent-mode display-line-numbers
hl-todo evil-collection-elisp-mode elisp-mode evil-collection-help
cursor-sensor vertico-repeat projectile lisp-mnt evil-collection-grep
grep ibuf-ext evil-collection-ibuffer ibuffer ibuffer-loaddefs
evil-collection-which-key which-key savehist better-jumper company-capf
company evil-collection-vertico vertico orderless
all-the-icons-completion marginalia evil-goggles pulse color
evil-easymotion evil-escape evil-snipe hide-mode-line gcmh winner
smartparens-config smartparens-text smartparens dash ws-butler
undo-fu-session undo-fu workroom compat desktop frameset mu4e mu4e-org
evil-collection-org smartparens-org org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src ob-comint org-pcomplete pcomplete
org-list org-footnote org-faces org-entities noutline outline
ob-emacs-lisp org-table ol org-keys oc-natbib oc-csl bibtex oc-biblatex
oc org-loaddefs find-func mu4e-notification notifications mu4e-main
mu4e-view gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig
gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus autorevert
filenotify gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time
iso8601 gnus-spec gnus-int gnus-range gnus-win evil-collection-gnus gnus
nnheader range evil-collection-calendar cal-menu calendar cal-loaddefs
mu4e-headers mu4e-compose mu4e-draft mu4e-actions smtpmail mu4e-search
mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message shr pixel-fill kinsoku
url-file svg xml dom browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie generate-lisp-file url-domsuf
url-util url-parse auth-source json map url-vars flow-fill mule-util
hl-line mu4e-contacts mu4e-update mu4e-folders mu4e-context
mu4e-query-items mu4e-server mu4e-modeline mu4e-vars mu4e-helpers
mu4e-config mu4e-window evil-collection-bookmark bookmark ido message
sendmail mailcap yank-media puny dirvish transient eieio eieio-core
evil-collection-dired dired dired-loaddefs rfc822 mml mml-sec
password-cache evil-collection-epa epa epg rfc6068 epg-config gnus-util
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 mu4e-obsolete server dtrt-indent ef-spring-theme ef-themes
repeat midnight evil-collection-flymake flymake-proc flymake project
evil-collection-compile evil-collection-custom cus-edit cus-load
wid-edit evil-collection-comint evil-collection annalist compile
text-property-search comint ansi-osc ansi-color html2text let-alist
ob-core org-cycle org-fold org-fold-core org-compat ob-eval org-version
org-macs format-spec ibuf-macs evil evil-integration evil-maps
evil-commands reveal evil-jumps evil-command-window evil-search
evil-types evil-macros evil-repeat evil-states evil-core byte-opt advice
evil-common windmove calc calc-loaddefs calc-macs thingatpt rect
evil-digraphs evil-vars ring all-the-icons all-the-icons-faces
data-material data-weathericons data-octicons data-fileicons
data-faicons data-alltheicons derived edmacro kmacro
use-package-bind-key bind-key comp comp-cstr warnings icons rx
doom-editor doom-projects doom-ui easy-mmode doom-keybinds pp cl-extra
help-mode use-package-core bytecomp byte-compile general tex-site
doom-start doom-modules cl-seq doom doom-lib cl-macs cl-loaddefs cl-lib
pcase gv jansson dynamic-modules subr-x rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
term/pgtk-win pgtk-win term/common-win pgtk-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 1054540 143020)
 (symbols 48 64652 18)
 (strings 32 271009 18965)
 (string-bytes 1 8383871)
 (vectors 16 128316)
 (vector-slots 8 3300325 249813)
 (floats 8 1483 1585)
 (intervals 56 29668 762)
 (buffers 984 36))