GNU bug report logs -
#14180
PATCH Better fullscreen frame support on Windows
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sat, 20 Apr 2013 10:36:55 +0300
with message-id <838v4d1wmg.fsf <at> gnu.org>
and subject line Re: bug#14180: PATCH Better fullscreen frame support on Windows
has caused the debbugs.gnu.org bug report #14180,
regarding PATCH Better fullscreen frame support on Windows
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
14180: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14180
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
Description
This change improves the 'fullscreen' frame support on Windows. When going
to
fullscreen, the frame gets fullscreened with no window decorations (which
causes the
Windows task bar to also disappear) on the nearest monitor.
The old fullscreen functionality was actually 'maximize' behavior so I've
moved that to
'maximize'. 'fullwidth' and 'fullheight' are now ignored because they were
buggy (at least in
Windows 8, they were not being sized correctly) and are not common Windows
idioms.
While they could be supported, I'd do it as follow on work and get it
working right on
multiple monitors as well.
I've tested corner cases such as resolution changes and disconnect
monitors; in both
cases the fullscreen window stays fullscreen (and moves to a different
monitor for the
disconnect case).
I've modified the response to WM_WINDOWPOSCHANGED to do nothing when the
frame is fullscreen. Otherwise, the size gets tuned to a multiple of the
character cells and
the fullscreen isn't perfectly matching the screen. When this happens,
Windows' special
behavior to hide the taskbar doesn't kick in.
Changelog
2013-04-11 Erik Charlebois <erikcharlebois <at> gmail.com>
* src/w32fns.c (monitor_from_window_fn): New Windows API import.
(w32_monitor_rect): New function to get nearest monitor rect.
* src/w32term.c (w32_fullscreen_hook): Renamed from w32fullscreen_hook
for consistency. Rewritten for improved fullscreen support.
(I signed the FSF copyright assignment papers in January so I'm ok on that
front.)
[Message part 4 (text/html, inline)]
[W32_FULLSCREEN.txt (text/plain, attachment)]
[Message part 6 (message/rfc822, inline)]
> Date: Fri, 19 Apr 2013 20:42:43 -0400
> From: Erik Charlebois <erikcharlebois <at> gmail.com>
> Cc: 14180 <at> debbugs.gnu.org
>
> The assignment should be on file now.
Indeed, it is. Therefore, I committed your changes as trunk revision
112337.
A few comments on your ChangeLog entries (for the future; I fixed all
of the issues mentioned below):
. We have a separate ChangeLog in src, so the file names should not
include "src/".
. The entries for different files should be separated by an empty
line.
. Each non-empty line should begin with a TAB.
. You forgot to describe the changes in w32term.h.
FYI, here are the log entries I committed in your name:
2013-04-20 Erik Charlebois <erikcharlebois <at> gmail.com>
* w32fns.c (w32_fullscreen_rect): New function to compute the
window rectangle for the given fullscreen mode.
(w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
longer tunes the window size. This keeps the window's edges flush
with the screen and allows the taskbar to hide itself in fullboth.
* w32term.c (w32fullscreen_hook): 'fullboth' now shows without
window decorations and uses the entire screen.
* w32term.h (w32_fullscreen_rect) Add prototype.
(struct w32_output): Replace normal_width, normal_height,
normal_top, and normal_left members with a single normal_placement
struct.
(FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
Remove macros.
(FRAME_NORMAL_PLACEMENT): New macro.
Thanks again for working on this.
I'm marking this bug as done.
This bug report was last modified 12 years and 95 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.