Commit 9d6d54f5 authored by Alexandre Julliard's avatar Alexandre Julliard

comctl32: Position the tooltip window correctly on multi-monitor setups.

parent 280defcf
......@@ -496,7 +496,9 @@ static void
TOOLTIPS_Show (HWND hwnd, TOOLTIPS_INFO *infoPtr)
{
TTTOOL_INFO *toolPtr;
RECT rect, wndrect;
HMONITOR monitor;
MONITORINFO mon_info;
RECT rect;
SIZE size;
NMHDR hdr;
int ptfx = 0;
......@@ -593,13 +595,18 @@ TOOLTIPS_Show (HWND hwnd, TOOLTIPS_INFO *infoPtr)
rect.bottom = rect.top + size.cy;
/* check position */
wndrect.right = GetSystemMetrics( SM_CXSCREEN );
if( rect.right > wndrect.right ) {
rect.left -= rect.right - wndrect.right + 2;
rect.right = wndrect.right - 2;
monitor = MonitorFromRect( &rect, MONITOR_DEFAULTTOPRIMARY );
mon_info.cbSize = sizeof(mon_info);
GetMonitorInfoW( monitor, &mon_info );
if( rect.right > mon_info.rcWork.right ) {
rect.left -= rect.right - mon_info.rcWork.right + 2;
rect.right = mon_info.rcWork.right - 2;
}
wndrect.bottom = GetSystemMetrics( SM_CYSCREEN );
if( rect.bottom > wndrect.bottom ) {
if (rect.left < mon_info.rcWork.left) rect.left = mon_info.rcWork.left;
if( rect.bottom > mon_info.rcWork.bottom ) {
RECT rc;
if (toolPtr->uFlags & TTF_IDISHWND)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment