wxWidgets / wxWidgets

Cross-Platform C++ GUI Library
https://www.wxwidgets.org/
6.17k stars 1.77k forks source link

Request to merge a set of fix and improvements (done for our application) #24520

Open JCYang opened 6 months ago

JCYang commented 6 months ago

Hi, there. We've developed a commercial cross-platform app using wxWidgets framework for windows/mac/linux, all three mainstream OS are targeted. And it's a non-trivial app that utilize many features of the framework, we may be one of the most heavy users. So on the way, we found so many bugs. We were on rapid development cycles and didn't have the resources to share our fixes to the upstream project on a regular basis, but now we find that we can no longer maintain the fixes, considering the framework is far from mature enough to allow us to stay on one LTS like version, we'd like to request you, the project maintainers to merge in most of our fixes/improvements.

Because there's too many, and in the foreseeable future, more fixes are expected and coming, we'd like to unify the set of works here for the maintainers to review.

Each of the fixes are now in their own branch, created for the sake of the pull request.

  1. Fix wxRibbonButtonBar's layout overall size computation. https://github.com/JCYang/wxWidgets/commit/a28b8db720cba565c3a5143462832f419456c5d8
  2. wxGTK: Fix UI refreshing delay when dragging the header border of generic wxDataViewCtrl to resize column. https://github.com/JCYang/wxWidgets/commit/381c608eaf7f432429165bb24e802ba8c0903857
  3. wxGTK: Fix improper wxEVT_LEAVE_WINDOW event https://github.com/JCYang/wxWidgets/commit/92868899c833261c728d3edf191031de71e04b3a
  4. MacOSX: Change the two dummy messages to use systemUpTime as timestamp to fix CEF renderer process crash. https://github.com/JCYang/wxWidgets/commit/af1f103cf8d10fa43e77da8d16f8091ddb6cacbb
  5. MacOSX: Keep DoDragDrop() from re-entering to enable a proper working CEF. https://github.com/JCYang/wxWidgets/commit/e998db7cea963d9f2cc4d19057e48a87a01a3973
  6. wxOSX: Fix wxPopupTransientWindow's mouse event handling. https://github.com/JCYang/wxWidgets/commit/8d2ddec05c3149f60f46ba303d9cec6b3843fa43
  7. MacOSX: Make wxWebviewWebkit capture hotkeys less eagerly. https://github.com/JCYang/wxWidgets/commit/f4eb6c3b041056355b41f634dc4c055860f0ff7a
  8. wxOSX: Add support for wxDropSource icons. https://github.com/JCYang/wxWidgets/commit/dca4ca30ec833de15bf47e6535800b48df4c7cd9
  9. wxOSX: Relax DoDragDrop() constraints. https://github.com/JCYang/wxWidgets/commit/71bf9d8eda0fc407d4e2f496a39127e2b2035f7d

The 9 fixes/improvements mentioned above are meant to be merged into the master branch. And the following is one optimization that seems work well in our app,

  1. wxMSW: Optimize AlphaBlt. https://github.com/JCYang/wxWidgets/commit/78afe184eefa1dbe426cc1cb9d00ceb83fdf4e66
vadz commented 6 months ago

Hello, thanks for the fixes but the usual process would be to open a single PR for each of them, so that they could be tested, discussed and applied independently and I think this would be very much preferable to this "unified" issue. Could you please open separate PRs for your changes?

For the bug fixes, it would be great if you could please explain how exactly the problem fixed by your changes can be reproduced (ideal is to add a test failing without the change and fixed by it, but I realize that this is not always easily possible).

Thanks in advance!