Bug 5020 - rdesktop does not support mouse cursor themes using alpha or colors
Summary: rdesktop does not support mouse cursor themes using alpha or colors
Status: CLOSED FIXED
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: | rdesktop (deprecated) (show other bugs)
Version: 4.1.1
Hardware: PC Unknown
: P2 Normal
Target Milestone: 4.9.0
Assignee: Samuel Mannehed
URL:
Keywords: ossman_tester, relnotes
Depends on:
Blocks: 6096
  Show dependency treegraph
 
Reported: 2014-03-12 07:38 CET by Henrik Andersson
Modified: 2017-11-30 15:30 CET (History)
2 users (show)

See Also:
Acceptance Criteria:


Attachments

Description Henrik Andersson cendio 2014-03-12 07:38:51 CET
This is the real problem of that origins from bug #4075.
Comment 1 Henrik Andersson cendio 2014-03-12 07:47:36 CET
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 Henrik Andersson cendio 2017-09-05 07:34:46 CEST
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 Henrik Andersson cendio 2017-09-05 09:10:07 CEST
(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 Henrik Andersson cendio 2017-09-21 16:05:18 CEST
Fixed upstream in commit 6dd85edc6f82 [1]


[1] https://github.com/rdesktop/rdesktop/commit/6dd85edc6f8293acd100b34add1405ea5a744111
Comment 5 Henrik Andersson cendio 2017-09-21 16:12:46 CEST
(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 Henrik Andersson cendio 2017-09-21 16:14:02 CEST
(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 Thomas Nilefalk cendio 2017-09-21 16:53:04 CEST
Vendordrop with fix in commit r32760
Comment 10 Samuel Mannehed cendio 2017-09-27 09:44:39 CEST
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 Samuel Mannehed cendio 2017-09-29 13:25:58 CEST
(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 Samuel Mannehed cendio 2017-09-29 14:07:58 CEST
(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 Pierre Ossman cendio 2017-10-03 12:47:33 CEST
We're seeing problems with the mouse cursor being missing sometimes during failed logins. More info will follow.
Comment 15 Henrik Andersson cendio 2017-10-05 10:10:50 CEST
(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 Pierre Ossman cendio 2017-10-09 14:10:43 CEST
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 Samuel Mannehed cendio 2017-11-30 15:30:51 CET
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.

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