Mercurial > emacs
changeset 71546:d1eb48dbd3e6
(x_make_frame_visible): Use SystemParametersInfo with SPI_GETWORKAREA to find
the dimensions of the screen work area, and adjust vertical position of the
frame in order to avoid being covered by the task bar.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Fri, 30 Jun 2006 13:41:15 +0000 |
parents | 26164031aa5a |
children | c8c9ce33fedf |
files | src/w32term.c |
diffstat | 1 files changed, 16 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/w32term.c Fri Jun 30 13:40:21 2006 +0000 +++ b/src/w32term.c Fri Jun 30 13:41:15 2006 +0000 @@ -5665,7 +5665,22 @@ before the window gets really visible. */ if (! FRAME_ICONIFIED_P (f) && ! f->output_data.w32->asked_for_visible) - x_set_offset (f, f->left_pos, f->top_pos, 0); + { + RECT workarea_rect; + RECT window_rect; + + /* Adjust vertical window position in order to avoid being + covered by a task bar placed at the bottom of the desktop. */ + SystemParametersInfo(SPI_GETWORKAREA, 0, &workarea_rect, 0); + GetWindowRect(FRAME_W32_WINDOW(f), &window_rect); + if (window_rect.bottom > workarea_rect.bottom + && window_rect.top > workarea_rect.top) + f->top_pos = max (window_rect.top + - window_rect.bottom + workarea_rect.bottom, + workarea_rect.top); + + x_set_offset (f, f->left_pos, f->top_pos, 0); + } f->output_data.w32->asked_for_visible = 1;