www.cendio.com
Bug 5020 - rdesktop does not support mouse cursor themes using alpha or colors
: rdesktop does not support mouse cursor themes using alpha or colors
Status: CLOSED FIXED
: ThinLinc
| rdesktop (deprecated)
: 4.1.1
: PC Unknown
: P2 Normal
: 4.9.0
Assigned To:
:
:
:
: 6096
  Show dependency treegraph
 
Reported: 2014-03-12 07:38 by
Modified: 2017-11-30 15:30 (History)
Acceptance Criteria:


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From cendio 2014-03-12 07:38:51
This is the real problem of that origins from bug #4075.
------- Comment #1 From cendio 2014-03-12 07:47:36 -------
As we currently know, this only affects Windows 7 / 8 which uses a alpha cursor
theme for a RPD session.

Cursors are rendered but no alpha seems to be handled and the cursors looks
bloated and ugly.
------- Comment #2 From cendio 2017-09-05 07:34:46 -------
On bug #4075 the conclusion was that 2012r2 does not enable alpha cursor theme
by default however 2012 did. And now we also discovered that Windows 2016 does
use a alpha cursor theme by default.

The fix in #4075 was to add no_cursor_shadow flag to rdesktop default
performance flags, however, this doesn't seem to work with Windows 2016.
------- Comment #3 From cendio 2017-09-05 09:10:07 -------
(In reply to comment #2)
>
> The fix in #4075 was to add no_cursor_shadow flag to rdesktop default
> performance flags, however, this doesn't seem to work with Windows 2016.
>

This is a potential bug where performance flags does not work as expected.
------- Comment #4 From cendio 2017-09-21 16:05:18 -------
Fixed upstream in commit 6dd85edc6f82 [1]


[1]
https://github.com/rdesktop/rdesktop/commit/6dd85edc6f8293acd100b34add1405ea5a744111
------- Comment #5 From cendio 2017-09-21 16:12:46 -------
(In reply to comment #3)
> (In reply to comment #2)
> >
> > The fix in #4075 was to add no_cursor_shadow flag to rdesktop default
> > performance flags, however, this doesn't seem to work with Windows 2016.
> >
> 
> This is a potential bug where performance flags does not work as expected.

Its not a bug in performance flags, which is respected by 2016.

The following describes the main problem:

"I have dug inte the cursor issue in rdesktop. The thing is that rdesktop have
code to parse cursor sent from server, however rdesktop uses
XCreatePixmapCursor which only support 2 colors cursors fg and bg color and a
mask. Due to this restriction in XCreatePixmapCursor, there is code that
converts the cursor into 2 colors cursors. This is the reason for all the
cursors problems in rdesktop, I have a lab branch offline which uses XRender
extension which support RGBA cursors which fixes this cursor problem but raises
the requirments of XRender."
------- Comment #6 From cendio 2017-09-21 16:14:02 -------
(In reply to comment #4)
> Fixed upstream in commit 6dd85edc6f82 [1]
> 
> 
> [1]
> https://github.com/rdesktop/rdesktop/commit/6dd85edc6f8293acd100b34add1405ea5a744111

This is an rewrite of cursor rendering code using libXcursor and fixes the
problem described subject and comment #5.
------- Comment #7 From cendio 2017-09-21 16:53:04 -------
Vendordrop with fix in commit r32760
------- Comment #10 From cendio 2017-09-27 09:44:39 -------
Running rdesktop directly works well. However, when running rdesktop inside a
VNC session, the caret cursor displays incorrectly. I get two black boxes next
to eachother.
------- Comment #12 From cendio 2017-09-29 13:25:58 -------
(In reply to comment #10)
> Running rdesktop directly works well. However, when running rdesktop inside a
> VNC session, the caret cursor displays incorrectly. I get two black boxes next
> to eachother.

This issue remains even after the vendor drop. Tests seem to suggest it's
limited to when running rdesktop inside a VNC session on wayland.
------- Comment #13 From cendio 2017-09-29 14:07:58 -------
(In reply to comment #12)
> (In reply to comment #10)
> > Running rdesktop directly works well. However, when running rdesktop inside a
> > VNC session, the caret cursor displays incorrectly. I get two black boxes next
> > to eachother.
> 
> This issue remains even after the vendor drop. Tests seem to suggest it's
> limited to when running rdesktop inside a VNC session on wayland.

Bug 7058.
------- Comment #14 From cendio 2017-10-03 12:47:33 -------
We're seeing problems with the mouse cursor being missing sometimes during
failed logins. More info will follow.
------- Comment #15 From cendio 2017-10-05 10:10:50 -------
(In reply to comment #14)
> We're seeing problems with the mouse cursor being missing sometimes during
> failed logins. More info will follow.

This is not a regression with the changes made for supporting alpha cursors.
What I have seen is that there is no cursors sent from server. This is also the
same case when server is using LARGE_POINTER_CURSORS (96x96) eg. pointers
bigger then 32x32, for example when a high DPI is used, which is a capability
that rdesktop does not implement.

This absence of LARGE_POINTER capability could also be the the reason we do not
get cursors from server when cursor shadow is enabled. Based on the assumption
that adding shadows to a cursors 32x32 cursor would probably requires a bigger
cursor than 32x32 cursors.
------- Comment #16 From cendio 2017-10-09 14:10:43 -------
Works well on Windows 2008, 2012 and 2016. The I-beam cursor now gets a nice
outline making it easy to see no matter the background.

Also checked the release notes and they look good.
------- Comment #18 From cendio 2017-11-30 15:30:51 -------
One important but sad note here is bug 1122. People running rdesktop inside
ThinLinc will not get alpha cursors. I updated release notes to reflect this.