The same application renders differently with Sierra and Mojave. The same code compiled on Windows 10 gives the same result as Mojave.
After several tests, I can say that the situation is more complex than I initially thought. The behaviour in Mojave of the application compiled with 2.0.8 is not exactly the same as in Windows 10, but very similar and usable.
Lazarus 2.0.8 Mojave - Correctly renders the button as flat (and trasparent), but does not highlight the button when the mouse is over
Lazarus 2.0.8 Sierra - Incorrect rendering of the button (missing transparency?)
Since the bug
https://bugs.freepascal.org/view.php?id=35555 was reported and closed between last year May and June I tried to see what happens using Lazarus 2.0.0.
Lazarus 2.0.0 Mojave - Correctly renders the buttons as flat, does not highiligth the button on mouse over, but has an incorrect rendering when button is released. This happens with the application compiled and launched outside the IDE. If the application is launched inside the IDE with debugger everything is working as expected
Lazarus 2.0.0 Sierra - All correct.
Something definitely changed between Sierra and Mojave and I guess this has been addressed with a patch by Dmitry when closing bug 0035555. But I think the patch has introduced backwards compatibility problems.
I would like to help to try to fix this. I went trough the documentation:
https://wiki.lazarus.freepascal.org/Cocoa_Internals I noticed that here:
https://wiki.lazarus.freepascal.org/Cocoa_Internals/Buttons under TSpeedButton there is a note "This is not an actual control button, it's LCL-drawn button. todo: no themes API customdrawn controls used?".
Any hint on how to be helpful apart from reporting bugs and testing?
Ciao,
Daniele