]> gitweb.factorcode.org Git - factor.git/commitdiff
cocoa.touchbar: quick hack to experiment with 10.11 build problem
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 12 Mar 2018 16:38:05 +0000 (09:38 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 12 Mar 2018 16:38:05 +0000 (09:38 -0700)
basis/cocoa/touchbar/touchbar.factor

index e040840b9320289355e7e7d91094c9b9e32f909b..56efe269782317142e6298076193ce17741752b5 100644 (file)
@@ -1,8 +1,8 @@
 ! Copyright (C) 2017 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien.c-types cocoa cocoa.classes cocoa.messages
-cocoa.runtime combinators core-foundation.strings kernel locals
-;
+cocoa.runtime combinators compiler.units core-foundation.strings
+init kernel locals namespaces sequences ;
 IN: cocoa.touchbar
 
 : make-touchbar ( seq self -- touchbar )
@@ -21,3 +21,25 @@ IN: cocoa.touchbar
             action-string lookup-selector { id { id SEL id id SEL } } ?-> buttonWithTitle:target:action: :> button
         item button -> setView:
         item ;
+
+! Temporary hack to support new touchbar API on old macOS build
+! machines by attempting to re-import the objc-class which
+! causes re-registering of the objc-methods which were not
+! present on the macOS 10.11 build machine.  We use a flag
+! to cause this delay only the first time the image is run
+! and then saved.
+<PRIVATE
+SYMBOL: imported?
+PRIVATE>
+[
+    imported? get-global [
+        [
+            {
+                "NSCustomTouchBarItem"
+                "NSTouchBar"
+                "NSTouchBarItem"
+            } [ [ ] import-objc-class ] each
+        ] with-compilation-unit
+        t imported? set-global
+    ] unless
+] "cocoa.touchbar" add-startup-hook