emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#14180: closed (PATCH Better fullscreen frame suppo


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#14180: closed (PATCH Better fullscreen frame support on Windows)
Date: Sat, 20 Apr 2013 07:42:02 +0000

Your message dated Sat, 20 Apr 2013 10:36:55 +0300
with message-id <address@hidden>
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
address@hidden)


-- 
14180: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14180
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: PATCH Better fullscreen frame support on Windows Date: Thu, 11 Apr 2013 00:59:54 -0400
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  <address@hidden>

* 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.)

Attachment: W32_FULLSCREEN.txt
Description: Text document


--- End Message ---
--- Begin Message --- 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 <address@hidden>
> Cc: address@hidden
> 
> 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  <address@hidden>

          * 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.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]