* bug#39901: Emacs needs to update window-width when the user updates the text size [not found] ` <b4msgip14kb.fsf@jpl.org> @ 2020-03-04 14:19 ` 積丹尼 Dan Jacobson 2020-03-04 14:38 ` Drew Adams 2020-08-05 12:04 ` Lars Ingebrigtsen 0 siblings, 2 replies; 7+ messages in thread From: 積丹尼 Dan Jacobson @ 2020-03-04 14:19 UTC (permalink / raw) To: 39901; +Cc: 953033, Katsumi Yamaoka Emacs needs to update window-width when the user updates the text size. >>>>> "KY" == Katsumi Yamaoka <yamaoka@jpl.org> writes: KY> On Tue, 03 Mar 2020 23:51:58 +0800, 積丹尼さん wrote: >> Package: w3m-el-snapshot >> X-Debbugs-Cc: yamaoka@jpl.org >> Version: 1.4.632+0.20191218.2243.cef0c7e-1 >> $ emacs -q -f w3m >> C-x C-= [text-scale-adjust] >> C-= [anonymous-command] >> Here the lines get cut off. >> They should fold, staying on the screen as the text zooms. KY> In that case the window width, i.e., the return value of KY> (window-width) is unchanged, so we have no clue for the point KY> where to fold text lines. We have no solution for it, I think. ^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#39901: Emacs needs to update window-width when the user updates the text size 2020-03-04 14:19 ` bug#39901: Emacs needs to update window-width when the user updates the text size 積丹尼 Dan Jacobson @ 2020-03-04 14:38 ` Drew Adams 2020-03-04 23:00 ` Katsumi Yamaoka 2020-08-05 12:04 ` Lars Ingebrigtsen 1 sibling, 1 reply; 7+ messages in thread From: Drew Adams @ 2020-03-04 14:38 UTC (permalink / raw) To: 積丹尼 Dan Jacobson, 39901; +Cc: 953033, Katsumi Yamaoka > Emacs needs to update window-width when > the user updates the text size. Apologies for not following this thread, and if this reply is off-topic. I stumbled on this message by chance. FWIW, letting users automatically resize the window to accommodate a change in text scale is the purpose of library `face-remap+.el'. This enhancement was proposed to Emacs dev from the outset (2009), but there was no interest. `face-remap+.el' lets buffer font resizing also zoom the window size accordingly (horizontally, vertically, or both). That way, you can take advantage of the space freed up by resizing (text-scaling) to a smaller font. The code has just a small change to `text-scale-increase'. https://www.emacswiki.org/emacs/download/face-remap%2b.el Option `text-scale-resize-window' lets you control the behavior: nil: Don't resize window `horizontally': Resize window only horizontally `vertically': Resize window only vertically t: Resize window both directions [If the window is alone in its frame, and if you also use library `fit-frame.el', then the frame is resized (horizontally & vertically).] ^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#39901: Emacs needs to update window-width when the user updates the text size 2020-03-04 14:38 ` Drew Adams @ 2020-03-04 23:00 ` Katsumi Yamaoka 2020-03-05 0:28 ` 積丹尼 Dan Jacobson 0 siblings, 1 reply; 7+ messages in thread From: Katsumi Yamaoka @ 2020-03-04 23:00 UTC (permalink / raw) To: 積丹尼 Dan Jacobson; +Cc: 953033, 39901 Thanks Drew. Jidanni, try the following two advices if interest. Probably this would be what you want `text-scale-adjust' to do. The first one tweaks the `window-width' function so to return a value based on the text scaling, and the second one makes the `text-scale-adjust' function redisplay an emacs-w3m page. It's only a quick hack, so I don't want to imprement it in emacs-w3m. (defadvice w3m-redisplay-this-page (around adjust-window-width activate) "Adjust window-width value according to `face-remapping-alist'." (current-buffer) (let ((height (ignore-errors (cadr (assq :height (assq 'default face-remapping-alist)))))) (if height (let ((ofn (symbol-function 'window-width))) (fset 'window-width (lambda (&rest args) (floor (/ (funcall ofn) height)))) (unwind-protect ad-do-it (fset 'window-width ofn))) ad-do-it))) (defadvice text-scale-adjust (after redisplay-w3m-page activate) "Redisplay w3m page after scaling text." (when (eq major-mode 'w3m-mode) (let ((w3m-message-silent t)) (w3m-redisplay-this-page)))) ^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#39901: Emacs needs to update window-width when the user updates the text size 2020-03-04 23:00 ` Katsumi Yamaoka @ 2020-03-05 0:28 ` 積丹尼 Dan Jacobson 0 siblings, 0 replies; 7+ messages in thread From: 積丹尼 Dan Jacobson @ 2020-03-05 0:28 UTC (permalink / raw) To: Katsumi Yamaoka; +Cc: 953033, 39901 >>>>> "KY" == Katsumi Yamaoka <yamaoka@jpl.org> writes: KY> It's only a quick hack, so I don't want to imprement it in emacs-w3m. Thanks, but I just noticed it one day, and was just hoping it would get fixed for everybody. ^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#39901: Emacs needs to update window-width when the user updates the text size 2020-03-04 14:19 ` bug#39901: Emacs needs to update window-width when the user updates the text size 積丹尼 Dan Jacobson 2020-03-04 14:38 ` Drew Adams @ 2020-08-05 12:04 ` Lars Ingebrigtsen 2020-08-05 14:39 ` Eli Zaretskii 1 sibling, 1 reply; 7+ messages in thread From: Lars Ingebrigtsen @ 2020-08-05 12:04 UTC (permalink / raw) To: 積丹尼 Dan Jacobson; +Cc: 953033, Katsumi Yamaoka, 39901 積丹尼 Dan Jacobson <jidanni@jidanni.org> writes: > Emacs needs to update window-width when the user updates the text size. I think that makes sense. Anybody got an opinion here? I'm not sure how this would be implemented, though. Where's the code that computes the pixel width upon startup? I guess that code would have to be run again to compute the new width... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#39901: Emacs needs to update window-width when the user updates the text size 2020-08-05 12:04 ` Lars Ingebrigtsen @ 2020-08-05 14:39 ` Eli Zaretskii 2020-08-05 14:51 ` Lars Ingebrigtsen 0 siblings, 1 reply; 7+ messages in thread From: Eli Zaretskii @ 2020-08-05 14:39 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: 953033, yamaoka, jidanni, 39901 > From: Lars Ingebrigtsen <larsi@gnus.org> > Date: Wed, 05 Aug 2020 14:04:59 +0200 > Cc: 953033@bugs.debian.org, Katsumi Yamaoka <yamaoka@jpl.org>, > 39901@debbugs.gnu.org > > 積丹尼 Dan Jacobson <jidanni@jidanni.org> writes: > > > Emacs needs to update window-width when the user updates the text size. > > I think that makes sense. > > Anybody got an opinion here? I do: there's no bug here -- window-width is documented to return a value in terms of the frame's canonical character width (i.e. it uses the dimensions of the frame's default font). And that doesn't change when you change the font only for a single buffer. However, window-width can be asked to return the value in pixels, if someone wants that, and then one can compute the width in units of any other, larger or smaller, font. IOW, if some applications produce unexpected or unpleasant effects when the buffer text is resized, those applications need to be sensitive to such resizing. But changing the semantics of a veteran API like suggested here is a non-starter, as it would definitely break gobs of existing code. ^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#39901: Emacs needs to update window-width when the user updates the text size 2020-08-05 14:39 ` Eli Zaretskii @ 2020-08-05 14:51 ` Lars Ingebrigtsen 0 siblings, 0 replies; 7+ messages in thread From: Lars Ingebrigtsen @ 2020-08-05 14:51 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 953033, yamaoka, jidanni, 39901 Eli Zaretskii <eliz@gnu.org> writes: > I do: there's no bug here -- window-width is documented to return a > value in terms of the frame's canonical character width (i.e. it uses > the dimensions of the frame's default font). And that doesn't change > when you change the font only for a single buffer. > > However, window-width can be asked to return the value in pixels, if > someone wants that, and then one can compute the width in units of any > other, larger or smaller, font. > > IOW, if some applications produce unexpected or unpleasant effects > when the buffer text is resized, those applications need to be > sensitive to such resizing. But changing the semantics of a veteran > API like suggested here is a non-starter, as it would definitely break > gobs of existing code. Yeah, that's true. I had completely forgotten that C-x C-+ only affects the current buffer, so resizing the window on that command would be nonsensical. So I'm closing this bug report. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-08-05 14:51 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <878skhphb5.8.fsf@jidanni.org> [not found] ` <b4msgip14kb.fsf@jpl.org> 2020-03-04 14:19 ` bug#39901: Emacs needs to update window-width when the user updates the text size 積丹尼 Dan Jacobson 2020-03-04 14:38 ` Drew Adams 2020-03-04 23:00 ` Katsumi Yamaoka 2020-03-05 0:28 ` 積丹尼 Dan Jacobson 2020-08-05 12:04 ` Lars Ingebrigtsen 2020-08-05 14:39 ` Eli Zaretskii 2020-08-05 14:51 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).