diff options
| author | Juanma Barranquero | 2014-03-26 16:57:13 +0100 |
|---|---|---|
| committer | Juanma Barranquero | 2014-03-26 16:57:13 +0100 |
| commit | 16adf2e6eb1ddf0b32ebea2d5ce8fa1e4c226614 (patch) | |
| tree | 29b782fd6e7c44a834dd09442a551520e30bcbd6 /src/w32term.c | |
| parent | 5af73b0fe8975eeb47fb270819b4143c18d71caa (diff) | |
| parent | 196716cf35f81bea108c3b75362e92c86ed1c016 (diff) | |
| download | emacs-16adf2e6eb1ddf0b32ebea2d5ce8fa1e4c226614.tar.gz emacs-16adf2e6eb1ddf0b32ebea2d5ce8fa1e4c226614.zip | |
Merge from emacs-24; up to 2014-03-23T23:14:52Z!yamaoka@jpl.org
Diffstat (limited to 'src/w32term.c')
| -rw-r--r-- | src/w32term.c | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/src/w32term.c b/src/w32term.c index 52eccc27e81..e8ec99e762d 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -5653,30 +5653,41 @@ x_set_window_size (struct frame *f, int change_gravity, int width, int height, b | |||
| 5653 | 5653 | ||
| 5654 | compute_fringe_widths (f, 0); | 5654 | compute_fringe_widths (f, 0); |
| 5655 | 5655 | ||
| 5656 | if (pixelwise) | 5656 | if (frame_resize_pixelwise) |
| 5657 | { | 5657 | { |
| 5658 | pixelwidth = FRAME_TEXT_TO_PIXEL_WIDTH (f, width); | 5658 | if (pixelwise) |
| 5659 | pixelheight = FRAME_TEXT_TO_PIXEL_HEIGHT (f, height); | 5659 | { |
| 5660 | pixelwidth = FRAME_TEXT_TO_PIXEL_WIDTH (f, width); | ||
| 5661 | pixelheight = FRAME_TEXT_TO_PIXEL_HEIGHT (f, height); | ||
| 5662 | } | ||
| 5663 | else | ||
| 5664 | { | ||
| 5665 | pixelwidth = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, width); | ||
| 5666 | pixelheight = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height); | ||
| 5667 | } | ||
| 5660 | } | 5668 | } |
| 5661 | else | 5669 | else |
| 5662 | { | 5670 | { |
| 5663 | pixelwidth = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, width); | ||
| 5664 | pixelheight = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height); | ||
| 5665 | } | ||
| 5666 | |||
| 5667 | if (!frame_resize_pixelwise) | ||
| 5668 | { | ||
| 5669 | /* If we don't resize frames pixelwise, round sizes to multiples | 5671 | /* If we don't resize frames pixelwise, round sizes to multiples |
| 5670 | of character sizes here. Otherwise, when enforcing size hints | 5672 | of character sizes here. Otherwise, when enforcing size hints |
| 5671 | while processing WM_WINDOWPOSCHANGING in w32_wnd_proc, we might | 5673 | while processing WM_WINDOWPOSCHANGING in w32_wnd_proc, we might |
| 5672 | clip our frame rectangle to a multiple of the frame's character | 5674 | clip our frame rectangle to a multiple of the frame's character |
| 5673 | size and subsequently lose our mode line or scroll bar. | 5675 | size and subsequently lose our mode line or scroll bar. |
| 5674 | Bug#16923 could be one possible consequence of this. */ | 5676 | Bug#16923 could be one possible consequence of this. Carefully |
| 5677 | reverse-engineer what WM_WINDOWPOSCHANGING does here since | ||
| 5678 | otherwise we might make our frame too small, see Bug#17077. */ | ||
| 5675 | int unit_width = FRAME_COLUMN_WIDTH (f); | 5679 | int unit_width = FRAME_COLUMN_WIDTH (f); |
| 5676 | int unit_height = FRAME_LINE_HEIGHT (f); | 5680 | int unit_height = FRAME_LINE_HEIGHT (f); |
| 5677 | 5681 | ||
| 5678 | pixelwidth = (pixelwidth / unit_width) * unit_width; | 5682 | pixelwidth = (((((pixelwise ? width : (width * FRAME_COLUMN_WIDTH (f))) |
| 5679 | pixelheight = (pixelheight / unit_height) * unit_height; | 5683 | + FRAME_TOTAL_FRINGE_WIDTH (f)) |
| 5684 | / unit_width) * unit_width) | ||
| 5685 | + FRAME_SCROLL_BAR_AREA_WIDTH (f) | ||
| 5686 | + 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); | ||
| 5687 | |||
| 5688 | pixelheight = ((((pixelwise ? height : (height * FRAME_LINE_HEIGHT (f))) | ||
| 5689 | / unit_height) * unit_height) | ||
| 5690 | + 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); | ||
| 5680 | } | 5691 | } |
| 5681 | 5692 | ||
| 5682 | f->win_gravity = NorthWestGravity; | 5693 | f->win_gravity = NorthWestGravity; |