Cygwin X server accepts xfixes version 5.0 but doesn't handle xcb_xfixes_hide_cursor

Jon Turney
Sun Oct 25 16:20:57 GMT 2020

On 15/10/2020 20:31, Frank Eske via Cygwin wrote:
> I'm building an XCB-based application that uses xcb_xfixes_hide_cursor. The
> X server reports back version 5.0 in xcb_fixes_query_version_reply and
> accepts xcb_xfixes_hide_cursor requests, but does not hide the cursor. When
> omitting the xcb_fixes_query_version operation, the xcb_xfixes_hide_cursor
> is (properly) rejected. Compiling and running the same program under
> Fedora, the cursor is hidden when running natively. When running an ssh
> remote xterm to Fedora, the hide_cursor again does nothing.
> The associated X11/extensions/Xfixes.h XFixesHideCursor() works
> identically. It fails to do anything but does not report any error
> indication.
> When testing this on Fedora, I also noticed that xterm hides the cursor in
> exactly the same manner I want for my application, and doesn't on Cygwin
> (where it always remains visible.) That is, typing hides the cursor and
> cursor movement shows it again. This should eliminate the need for a test
> case which, because of all the ancillary setup needed, would be quite large.
> Possibly the simplest fix would be to properly report back the version of
> Xfixes you actually support, document that restriction at least in the
> include file, and reject the Xfixes extension requests you don't handle. As
> an aside, almost every other X feature I've tried to use has worked
> identically on Cygwin and Fedora, usage bugs included.

There is Windows-specific code in the X server which is supposed to 
handle cursor hiding, and it's a bug that it doesn't work.

Thanks for reporting this problem.

> Note that there is probably a work-around for this missing function by
> creating a blank cursor and using that instead of hide_cursor.

You can probably also work around this by using the XWin option 
'-swcursor' (requires '-nocompositewm').

More information about the Cygwin mailing list