I'm not as familiar with the project code as you are. I commented out SciCall_SetTabIndents() and SciCall_SetUseTabs(), leaving only SciCall_Tab(). It worked fine (in use Tabs mode). Then narrowed down to the handling of Message::SetUseTabs and found that InvalidateStyleRedraw() was unnecessary. After removing it, it did work, so I didn't look into it.
I'm not as familiar with the project code as you are. I commented out SciCall_SetTabIndents() and SciCall_SetUseTabs(), leaving only SciCall_Tab(). It worked fine. Then narrowed down to the handling of Message::SetUseTabs and found that InvalidateStyleRedraw() was unnecessary. After removing it, it did work, so I didn't look into it.
Remove unnecessary `InvalidateStyleRedraw()` for `Message::SetUseTabs`
Isn't atomic commits preferred? This is beyond my knowledge for so many changes, especially during this big-change stage. If there is any contribute from me, it's just the idea. Others are all your efforts. Please commit it at the proper time by your schedule. Many thanks!
I thought it would be in 2 commits. Thanks for your detailed description and codes. Here is the updates. Known issues with legacy GDI: 1. SurfaceGDI::LineDraw and SurfaceGDI::PolyLine for DrawTabArrow don't work well with alpha drawing. Maybe also others. 2. SurfaceGDI::AlphaRectangle is not efficiency enough for "many" tasks.
Update scite_5599_Make-whitespace.fore-accept-rgba.patch, as SetWhitespaceFore calling shouldn't be removed currently.
I totally agree with you that some rendering technologies are really out dated, and new ones should be in priority. It all depends on the minimum OS version that will be supported. Take this ticket as a notice or description on this. Maybe someone who really needs it or has interests will read this and take action ... PS: Nowadays mingw-w64-headers seems support GDI+.
Implement Surface GDIPlus for Windows