Now warping mouse to center of screen when leaving client screens.

Some users requested this.  Also, the hider window is mapped before
warping the mouse so the active window shouldn't change if the focus
policy is point-to-focus.  Showing the window first can also reduce
the likelihood of seeing the cursor briefly in its hidden position.
This commit is contained in:
crs
2003-05-03 13:50:06 +00:00
parent af110dbce2
commit 3fc40e1939
6 changed files with 34 additions and 25 deletions

View File

@@ -367,7 +367,9 @@ CMSWindowsSecondaryScreen::postCreateWindow(HWND window)
// hide cursor if this screen isn't active
if (!isActive()) {
showWindow();
SInt32 x, y;
getScreen()->getCursorCenter(x, y);
showWindow(x, y);
}
}
@@ -423,16 +425,16 @@ CMSWindowsSecondaryScreen::destroyWindow()
}
void
CMSWindowsSecondaryScreen::showWindow()
CMSWindowsSecondaryScreen::showWindow(SInt32 x, SInt32 y)
{
// move hider window under the mouse (rather than moving the mouse
// somewhere else on the screen)
SInt32 x, y;
getCursorPos(x, y);
// move hider window under the given position
MoveWindow(m_window, x, y, 1, 1, FALSE);
// raise and show the hider window. take activation.
ShowWindow(m_window, SW_SHOWNORMAL);
// raise and show the hider window
ShowWindow(m_window, SW_SHOWNA);
// now warp the mouse
warpCursor(x, y);
}
void