From: Eli Zaretskii Date: Fri, 30 Jun 2006 13:41:15 +0000 (+0000) Subject: (x_make_frame_visible): Use SystemParametersInfo with SPI_GETWORKAREA to find X-Git-Tag: emacs-pretest-22.0.90~1775 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8958048c293369ded3b309fe664ba7ea84b4ade2;p=emacs.git (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. --- diff --git a/src/w32term.c b/src/w32term.c index f691b4cb9a8..29fe961946d 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -5665,7 +5665,22 @@ x_make_frame_visible (f) 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;