GNU bug report logs - #14180
PATCH Better fullscreen frame support on Windows

Previous Next

Packages: emacs, w32;

Reported by: Erik Charlebois <erikcharlebois <at> gmail.com>

Date: Thu, 11 Apr 2013 05:05:02 UTC

Severity: wishlist

Tags: patch

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#14180: closed (PATCH Better fullscreen frame support on Windows)
Date: Sat, 20 Apr 2013 07:42:02 +0000
[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)]
From: Erik Charlebois <erikcharlebois <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: PATCH Better fullscreen frame support on Windows
Date: Thu, 11 Apr 2013 00:59:54 -0400
[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)]
From: Eli Zaretskii <eliz <at> gnu.org>
To: Erik Charlebois <erikcharlebois <at> gmail.com>
Cc: 14180-done <at> debbugs.gnu.org
Subject: Re: bug#14180: PATCH Better fullscreen frame support on Windows
Date: Sat, 20 Apr 2013 10:36:55 +0300
> 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.