In the bad old days of calc, everything was rendered explicitly to the screen, and then the cursor was rendered over the top using XOR rendering. To get this right, before we rendered new things we would need to call:
// do the incremental render
These days, we should never do that - all rendering should be done in response to an idle handler, and should paint from scratch instead of trying to be 'clever' like this (it will increasingly not work & just waste resources on modern systems).
So - we need to audit the code for these Hide/Show pairs. Clearly some instances of hiding the cursor are prolly still applicable, but we should check all of them in sc/ 'git grep -5 HideCursor' - and remove and re-test all instances.
Potentially we want to add some calls to Invalidate() on the cursor region when this causes problems :-)
Deleted "Easyhack" from summary.
Created attachment 62830 [details]
Created attachment 62831 [details]
Proposed patch Part 2
For my understanding CursorSwitcher does the same as Show/HideCursor only in the way that aCursorSwitch gets destructed after the method end (and so hidden).
Created attachment 62832 [details]
Proposed patch Part 3
Looks lovely to me; if you did some testing & things seems to work fine - please do push them to master :-) it is possible that at some sites we might want to queue an idle re-draw of that area but presumably we can add that later if there are issues.
What's the situation with this patch, should it go in, or do you want someone to extra review it, or did something equivalent go in already ?
Caolán: Yes it would be nice if someone else could review it.
caolanm->erack/kohei: one of you guys take this under your wing ?
(In reply to comment #8)
> caolanm->erack/kohei: one of you guys take this under your wing ?
IMO Michael's review in Comment 5 should be more than sufficient (since this is his EasyHack). If Thomas needs extra assurance I can give mine. Thomas, please push your changes to master. Thanks!
Thomas Arnhold committed a patch related to this issue.
It has been pushed to "master":
Resolves: fdo#48256 clean out Hide/Show Cursor
alright, so I pushed it. I'll leave it to the calc guys to fix things up if there's any problems with it :-)
Migrating Whiteboard tags to Keywords: (EasyHack,DifficultyBeginner,SkillCpp,TopicCleanup)