On April 7, 2021 8:47 PM Achim Gratz wrote:
>L A Walsh writes:
>> If I move the windows cursor to another editor window in X11,
>> the blinking cursor moves to the new window, but if I move
>> it to a native window, the blinking doesn't stop.
>>
>> Has this always been this way?
>
>Windows never had "focus follows mouse" in any version I can remember.
>
It has had it since Windows95 or so and it is my default setting on
any PC I use. Attached is a little program I wrote a long time ago that
turns the feature on or off. Compile with `gcc xmouse.c` or mingw.
Something like this was included in the Windows PowerToys as xmouse.exe.
Michael
#define WINVER 0x0500
#include <windows.h>
#include <stdio.h>
/* gcc -mno-cygwin -mwindows ... */
void ErrorExit(LPTSTR lpszFunction, DWORD dw)
{
LPVOID lpMsgBuf;
LPVOID lpDisplayBuf;
//DWORD dw = GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
lpDisplayBuf = LocalAlloc(LMEM_ZEROINIT,
strlen(lpMsgBuf)+strlen(lpszFunction)+40);
wsprintf(lpDisplayBuf,
"%s failed with error %d: %s",
lpszFunction, dw, lpMsgBuf);
MessageBox(NULL, lpDisplayBuf, "Error", MB_OK);
LocalFree(lpMsgBuf);
LocalFree(lpDisplayBuf);
ExitProcess(dw);
}
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow) {
//int main (void) {
BOOL xmouse = FALSE;
DWORD status;
if( !(status=SystemParametersInfo( SPI_GETACTIVEWINDOWTRACKING,
0,
&xmouse,
0
)) ) {
ErrorExit("Get mouse status",status);
}
if( !(status=SystemParametersInfo( SPI_SETACTIVEWNDTRKZORDER,
0,
(PVOID)FALSE,
SPIF_UPDATEINIFILE ||
SPIF_SENDWININICHANGE
)) ) {
ErrorExit("Set mouse status",status);
}
if( !(status=SystemParametersInfo( SPI_SETACTIVEWNDTRKTIMEOUT,
0,
(PVOID)100,
SPIF_UPDATEINIFILE ||
SPIF_SENDWININICHANGE
)) ) {
ErrorExit("Set mouse status",status);
}
xmouse = !xmouse;
if( !(status=SystemParametersInfo( SPI_SETACTIVEWINDOWTRACKING,
0,
(PVOID)xmouse,
SPIF_UPDATEINIFILE ||
SPIF_SENDWININICHANGE
)) ) {
ErrorExit("Set mouse status",status);
}
printf( "X mouse is now %s.\n", xmouse ? "on" : "off" );
return 0;
}
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple