vlc | branch: master | Marvin Scholz <[email protected]> | Wed Jun 21 02:09:40 
2017 +0200| [d6caef37cd2d337baac599733a9936b5435240e7] | committer: Marvin 
Scholz

macOS: Don't draw custom VLCHUDCheckboxCell on 10.10+

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d6caef37cd2d337baac599733a9936b5435240e7
---

 modules/gui/macosx/VLCHUDCheckboxCell.m | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/modules/gui/macosx/VLCHUDCheckboxCell.m 
b/modules/gui/macosx/VLCHUDCheckboxCell.m
index 93df527d3a..b9e8c93827 100644
--- a/modules/gui/macosx/VLCHUDCheckboxCell.m
+++ b/modules/gui/macosx/VLCHUDCheckboxCell.m
@@ -33,9 +33,26 @@
 //     POSSIBILITY OF SUCH DAMAGE.
 
 #import "VLCHUDCheckboxCell.h"
+#import "CompatibilityFixes.h"
 
 @implementation VLCHUDCheckboxCell
 
++ (void)load
+{
+    /* On 10.10+ we do not want custom drawing, therefore we swap out the 
implementation
+     * of the selectors below with their original implementations.
+     * Just calling super will not work, as the AppKit implementation for the 
NSButton
+     * checkbox checks if the drawing related selectors below are overriden, 
and if
+     * that is the case, will fall back to legacy drawing, without animation,
+     * without vibrancy and non-layer-based.
+     */
+    if (OSX_YOSEMITE_AND_HIGHER) {
+        swapoutOverride([VLCHUDCheckboxCell class], @selector(initWithCoder:));
+        swapoutOverride([VLCHUDCheckboxCell class], 
@selector(drawImage:withFrame:inView:));
+        swapoutOverride([VLCHUDCheckboxCell class], 
@selector(drawTitle:withFrame:inView:));
+    }
+}
+
 - (instancetype)initWithCoder:(NSCoder *)coder
 {
     self = [super initWithCoder:coder];

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to