GNU bug report logs -
#14233
24.3; Don't constrain frame size to character multiples
Previous Next
Reported by: E Sabof <esabof <at> gmail.com>
Date: Sat, 20 Apr 2013 00:04:02 UTC
Severity: wishlist
Found in version 24.3
Done: martin rudalics <rudalics <at> gmx.at>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Hello.
22 apr 2013 kl. 11:34 skrev martin rudalics <rudalics <at> gmx.at>:
> > For NS a maximized and fullscreen requests comes in as separate
> > requests, for X they are normal resize request.
> [...]
> > The problem is that you think from the W32 point of view where (if I
> > interepret you correctly), Emacs applies size hints after the resize
> > request has been delivered.
>
> I think so.
>
> > This is not so for NS and X. Any size in a resize request is
> > accepted. If it follows WM size hints, great, if it don't, who
> > cares?. The frame size is set to the size in the request anyway.
>
> IIUC we do care because we want to fit the frame's windows according to
> the incoming request.
In the future, yes, but we can't resize windows pixelwise yet.
>
> > So for NS and X, fullscreen, maximized and such is no problem. A
> > minor glitch in NS is that we calculate the maximized sizes ourself,
> > and these are rounded to character sizes. If windows could handle
> > pixel sizes, we could easily fix this.
>
> In any case, the maximized size of the frame is not necessarily an
> integral multiple of character sizes so the frame gets or should get
> resized pixelwise.
We don't do that now because we can't resize windows pixelwise yet.
>
> > But there is no restriction on NS and X11 frames to resize by pixel
> > (i.e. not character multiples).
>
> So by default, on Windows I always accept a maximize request and resize
> windows accordingly. For any other size request I process a non-rounded
> size iff the variable `frame-resize-pixelwise' is non-nil.
>
> On all other platforms, `frame-resize-pixelwise' has no impact. If and
> whether size hints are turned on and have any impact depends on settings
> for the window manager used and is of no concern to me. Whatever size
> is requested by the WM is processed without any rounding.
>
> The interface to the window subsystem will be the function
>
> change_frame_size (struct frame *f, int new_width, int new_height,
> bool pretend, bool delay, bool safe, bool pixelwise)
>
> which processes new_width and new_height in terms of pixels if pixelwise
> is non-nil.
>
This is insane. it means changing lots and lots of calls, and makes merging between branches harder.
Make a new function (change_frame_size_pixelwise for example), with the arguments above, and let change_frame_size call it with the last argument false.
Jan D.
This bug report was last modified 10 years and 154 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.