This is the mail archive of the
cygwin-xfree
mailing list for the Cygwin XFree86 project.
Re: XWin cursor huge on one computer but normal on another
- From: Jon TURNEY <jon dot turney at dronecode dot org dot uk>
- To: cygwin-xfree at cygwin dot com
- Cc: matt at codespunk dot com
- Date: Mon, 04 Aug 2014 16:30:36 +0100
- Subject: Re: XWin cursor huge on one computer but normal on another
- Authentication-results: sourceware.org; auth=none
- References: <53DE4801 dot 3040209 at codespunk dot com>
- Reply-to: cygwin-xfree at cygwin dot com
- Reply-to: cygwin-xfree at cygwin dot com
On 03/08/2014 15:32, Matt D. wrote:
I primarily work on my workstation which has four 1080p monitors (three
on the bottom with the fourth at center top) and for the longest time I
thought that it this was a configuration error on my part; and perhaps
it still it.
The issue is that on my worksation, the cursor is huge and is sometimes
even cropped for being too large. This is especially noticeable for
applications like xterm and gedit.
I think it might be a DPI or scaling issue due to my large screen size,
however I've always explicitly defined "-dpi 96" in my xinit.
I had thought that this was a known bug and hadn't thought much about it
until I pulled up gedit on my laptop where I saw that the cursors were
all fine. I thought that maybe I had different packages but even after
copying my entire cygwin directory and startup scripts over, on my
laptop it still shows cursors no larger than the default Windows size.
Has anyone experienced this before?
This is pretty odd. Not a known bug, or one that I think we have a had
reported before.
I guess what you are seeing when you say the cursor is 'cropped' is the
X cursor being truncated to fit in the Windows cursor size of
GetSystemMetrics(SM_CXCURSOR) by GetSystemMetrics(SM_CYCURSOR)
The libXcursor checks various things [1] when choosing a cursor size,
falling back to (smallest screen dimension/48), so I guess it's your
large display causing this issue.
I'm not sure about the best way to fix this, but as a workaround for the
moment, you might try setting the XCURSOR_SIZE env var to something
reasonable.
You might like to try this small test program to confirm what's going on:
$ cat cursor.c
#include <X11/Xwindows.h>
#include <X11/Xcursor/Xcursor.h>
int main()
{
Display *dpy = XOpenDisplay(NULL);
int c = XcursorGetDefaultSize(dpy);
printf("XcursorGetDefaultSize = %d\n", c);
printf("GetSystemMetrics(SM_CXCURSOR) = %d\n",
GetSystemMetrics(SM_CXCURSOR));
printf("GetSystemMetrics(SM_CYCURSOR) = %d\n",
GetSystemMetrics(SM_CYCURSOR));
}
$ gcc cursor.c -o cursor -lXcursor -lX11
$ ./cursor
XcursorGetDefaultSize = 22
GetSystemMetrics(SM_CXCURSOR) = 32
GetSystemMetrics(SM_CYCURSOR) = 32
[1] http://cgit.freedesktop.org/xorg/lib/libXcursor/tree/src/display.c#n168
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://x.cygwin.com/docs/
FAQ: http://x.cygwin.com/docs/faq/