[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r115865: Fix maximization behavior on Windows (Bug#1
From: |
Martin Rudalics |
Subject: |
[Emacs-diffs] trunk r115865: Fix maximization behavior on Windows (Bug#16300). |
Date: |
Sat, 04 Jan 2014 09:31:44 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 115865
revision-id: address@hidden
parent: address@hidden
committer: martin rudalics <address@hidden>
branch nick: trunk
timestamp: Sat 2014-01-04 10:31:30 +0100
message:
Fix maximization behavior on Windows (Bug#16300).
Fix maximization behavior on Windows (Bug#16300).
* w32fns.c (w32_fullscreen_rect): Don't handle
FULLSCREEN_MAXIMIZED and FULLSCREEN_NONE specially.
* w32term.c (w32fullscreen_hook): Use SetWindowPlacement instead
of SetWindowPos. Restore last placement also when leaving
FULLSCREEN_HEIGHT and FULLSCREEN_WIDTH. Call ShowWindow in all
but the FULLSCREEN_BOTH case.
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/w32fns.c w32fns.c-20091113204419-o5vbwnq5f7feedwu-945
src/w32term.c w32term.c-20091113204419-o5vbwnq5f7feedwu-950
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2014-01-03 06:47:27 +0000
+++ b/src/ChangeLog 2014-01-04 09:31:30 +0000
@@ -1,3 +1,13 @@
+2014-01-04 Martin Rudalics <address@hidden>
+
+ Fix maximization behavior on Windows (Bug#16300).
+ * w32fns.c (w32_fullscreen_rect): Don't handle
+ FULLSCREEN_MAXIMIZED and FULLSCREEN_NONE specially.
+ * w32term.c (w32fullscreen_hook): Use SetWindowPlacement instead
+ of SetWindowPos. Restore last placement also when leaving
+ FULLSCREEN_HEIGHT and FULLSCREEN_WIDTH. Call ShowWindow in all
+ but the FULLSCREEN_BOTH case.
+
2014-01-03 Paul Eggert <address@hidden>
Port to C89.
=== modified file 'src/w32fns.c'
--- a/src/w32fns.c 2014-01-02 15:58:48 +0000
+++ b/src/w32fns.c 2014-01-04 09:31:30 +0000
@@ -402,12 +402,6 @@
rect->right = mi.rcMonitor.right;
rect->bottom = mi.rcMonitor.bottom;
break;
- case FULLSCREEN_MAXIMIZED:
- rect->left = mi.rcWork.left;
- rect->top = mi.rcWork.top;
- rect->right = mi.rcWork.right;
- rect->bottom = mi.rcWork.bottom;
- break;
case FULLSCREEN_WIDTH:
rect->left = mi.rcWork.left;
rect->top = normal.top;
@@ -420,7 +414,6 @@
rect->right = normal.right;
rect->bottom = mi.rcWork.bottom;
break;
- case FULLSCREEN_NONE:
default:
*rect = normal;
break;
=== modified file 'src/w32term.c'
--- a/src/w32term.c 2014-01-02 15:58:48 +0000
+++ b/src/w32term.c 2014-01-04 09:31:30 +0000
@@ -5564,18 +5564,22 @@
if (FRAME_PREV_FSMODE (f) == FULLSCREEN_BOTH)
{
SetWindowLong (hwnd, GWL_STYLE, dwStyle | WS_OVERLAPPEDWINDOW);
- SetWindowPos (hwnd, NULL, 0, 0, 0, 0,
- SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER |
- SWP_NOOWNERZORDER | SWP_FRAMECHANGED);
- }
+ SetWindowPlacement (hwnd, &FRAME_NORMAL_PLACEMENT (f));
+ }
+ else if (FRAME_PREV_FSMODE (f) == FULLSCREEN_HEIGHT
+ || FRAME_PREV_FSMODE (f) == FULLSCREEN_WIDTH)
+ SetWindowPlacement (hwnd, &FRAME_NORMAL_PLACEMENT (f));
- w32_fullscreen_rect (hwnd, f->want_fullscreen,
- FRAME_NORMAL_PLACEMENT (f).rcNormalPosition, &rect);
FRAME_PREV_FSMODE (f) = f->want_fullscreen;
- if (f->want_fullscreen == FULLSCREEN_MAXIMIZED)
- PostMessage (FRAME_W32_WINDOW (f), WM_SYSCOMMAND, 0xf030, 0);
+
+ if (f->want_fullscreen == FULLSCREEN_NONE)
+ ShowWindow (hwnd, SW_SHOWNORMAL);
+ else if (f->want_fullscreen == FULLSCREEN_MAXIMIZED)
+ ShowWindow (hwnd, SW_MAXIMIZE);
else if (f->want_fullscreen == FULLSCREEN_BOTH)
{
+ w32_fullscreen_rect (hwnd, f->want_fullscreen,
+ FRAME_NORMAL_PLACEMENT (f).rcNormalPosition,
&rect);
SetWindowLong (hwnd, GWL_STYLE, dwStyle & ~WS_OVERLAPPEDWINDOW);
SetWindowPos (hwnd, HWND_TOP, rect.left, rect.top,
rect.right - rect.left, rect.bottom - rect.top,
@@ -5583,6 +5587,9 @@
}
else
{
+ ShowWindow (hwnd, SW_SHOWNORMAL);
+ w32_fullscreen_rect (hwnd, f->want_fullscreen,
+ FRAME_NORMAL_PLACEMENT (f).rcNormalPosition,
&rect);
SetWindowPos (hwnd, HWND_TOP, rect.left, rect.top,
rect.right - rect.left, rect.bottom - rect.top, 0);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r115865: Fix maximization behavior on Windows (Bug#16300).,
Martin Rudalics <=