diff options
| author | Martin Rudalics | 2014-03-21 10:23:22 +0100 |
|---|---|---|
| committer | Martin Rudalics | 2014-03-21 10:23:22 +0100 |
| commit | 21e18b30e2a15b726b9822cb7bb086792465a6d1 (patch) | |
| tree | 5e8c5e515500c37eac4f225a8c83d4662fc03766 /src | |
| parent | 78540c42f162761bde4322c5d1d89e8dfd455c80 (diff) | |
| download | emacs-21e18b30e2a15b726b9822cb7bb086792465a6d1.tar.gz emacs-21e18b30e2a15b726b9822cb7bb086792465a6d1.zip | |
Truly maximize w32 frames with odd fonts and some texi fixes.
* w32fns.c (w32_wnd_proc): For WM_WINDOWPOSCHANGING don't
constrain frame size in SW_SHOWMAXIMIZED case so we can truly
maximize a frame for odd default fonts.
* frames.texi (Size and Position): In `frame-resize-pixelwise'
description drop remark about frame maximization.
* windows.texi (Display Action Functions): Add description for
`display-buffer-no-window' and explain use of `allow-no-window'
alist entries.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/w32fns.c | 3 | ||||
| -rw-r--r-- | src/w32term.c | 24 |
3 files changed, 14 insertions, 19 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index d2572e74048..ccd8fb46957 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2014-03-21 Martin Rudalics <rudalics@gmx.at> | ||
| 2 | |||
| 3 | * w32fns.c (w32_wnd_proc): For WM_WINDOWPOSCHANGING don't | ||
| 4 | constrain frame size in SW_SHOWMAXIMIZED case so we can truly | ||
| 5 | maximize a frame for odd default fonts. | ||
| 6 | |||
| 1 | 2014-03-20 Paul Eggert <eggert@cs.ucla.edu> | 7 | 2014-03-20 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 8 | ||
| 3 | * doc.c (store_function_docstring): Fix pointer signedness mismatch. | 9 | * doc.c (store_function_docstring): Fix pointer signedness mismatch. |
diff --git a/src/w32fns.c b/src/w32fns.c index a5b8abfa6b1..ffe63a3cf2d 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -3805,7 +3805,8 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) | |||
| 3805 | wp.length = sizeof (WINDOWPLACEMENT); | 3805 | wp.length = sizeof (WINDOWPLACEMENT); |
| 3806 | GetWindowPlacement (hwnd, &wp); | 3806 | GetWindowPlacement (hwnd, &wp); |
| 3807 | 3807 | ||
| 3808 | if (wp.showCmd != SW_SHOWMINIMIZED && (lppos->flags & SWP_NOSIZE) == 0) | 3808 | if (wp.showCmd != SW_SHOWMAXIMIZED && wp.showCmd != SW_SHOWMINIMIZED |
| 3809 | && (lppos->flags & SWP_NOSIZE) == 0) | ||
| 3809 | { | 3810 | { |
| 3810 | RECT rect; | 3811 | RECT rect; |
| 3811 | int wdiff; | 3812 | int wdiff; |
diff --git a/src/w32term.c b/src/w32term.c index 2981320e136..ac8f9a2092d 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -5651,21 +5651,11 @@ x_set_window_size (struct frame *f, int change_gravity, int width, int height, b | |||
| 5651 | if (!frame_resize_pixelwise) | 5651 | if (!frame_resize_pixelwise) |
| 5652 | { | 5652 | { |
| 5653 | /* If we don't resize frames pixelwise, round sizes to multiples | 5653 | /* If we don't resize frames pixelwise, round sizes to multiples |
| 5654 | of character sizes. Otherwise, Windows may clip our frame | 5654 | of character sizes here. Otherwise, when enforcing size hints |
| 5655 | rectangle at a character size boundary and we risk losing our | 5655 | while processing WM_WINDOWPOSCHANGING in w32_wnd_proc, we might |
| 5656 | mode line. Bug#16923 might be a consequence of this. | 5656 | clip our frame rectangle to a multiple of the frame's character |
| 5657 | 5657 | size and subsequently lose our mode line or scroll bar. | |
| 5658 | So far, this is a Windows specific problem; other toolkits may | 5658 | Bug#16923 could be one possible consequence of this. */ |
| 5659 | prefer to not resize the frame if the delta is not large enough | ||
| 5660 | (GTK) or resize the frame pixelwise as requested (Lucid, | ||
| 5661 | Motif). Windows just doesn't call us back (probably because of | ||
| 5662 | the size hint settings which it apparently interprets strictly) | ||
| 5663 | neither when the user tries to mouse-drag a frame border by, | ||
| 5664 | nor when calling `set-frame-size' with a delta of less than the | ||
| 5665 | canonical character size. If w32_enable_frame_resize_hack is | ||
| 5666 | enabled (which it now is by default) we'd then below resize the | ||
| 5667 | frame's root window in preparation of a WM_SIZE message to come | ||
| 5668 | which, however, is not going to happen. */ | ||
| 5669 | int unit_width = FRAME_COLUMN_WIDTH (f); | 5659 | int unit_width = FRAME_COLUMN_WIDTH (f); |
| 5670 | int unit_height = FRAME_LINE_HEIGHT (f); | 5660 | int unit_height = FRAME_LINE_HEIGHT (f); |
| 5671 | 5661 | ||
| @@ -5695,9 +5685,7 @@ x_set_window_size (struct frame *f, int change_gravity, int width, int height, b | |||
| 5695 | } | 5685 | } |
| 5696 | 5686 | ||
| 5697 | /* If w32_enable_frame_resize_hack is non-nil, immediately apply the | 5687 | /* If w32_enable_frame_resize_hack is non-nil, immediately apply the |
| 5698 | new pixel sizes to the frame and its subwindows. This approach is | 5688 | new pixel sizes to the frame and its subwindows. |
| 5699 | fragile because Windows might not honor the resize request issued | ||
| 5700 | by my_set_window_pos with a WM_SIZE message (see previous comment). | ||
| 5701 | 5689 | ||
| 5702 | Jason Rumney earlier refused to call change_frame_size right here | 5690 | Jason Rumney earlier refused to call change_frame_size right here |
| 5703 | with the following argument: | 5691 | with the following argument: |