]> gitweb.factorcode.org Git - factor.git/commitdiff
ui.backend.cocoa.views: more robust respondsToSelector: (thanks @jckarter).
authorJohn Benediktsson <mrjbq7@gmail.com>
Sat, 30 Mar 2013 03:33:42 +0000 (20:33 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sat, 30 Mar 2013 03:34:24 +0000 (20:34 -0700)
basis/cocoa/messages/messages.factor
basis/ui/backend/cocoa/views/views.factor

index f6c9eb8a058e579c130e0a06cedf6798c487635d..bc678b76a8b6386b5d0a2027fc3983f7ab1f01a4 100644 (file)
@@ -49,6 +49,9 @@ MEMO: <selector> ( name -- sel ) f \ selector-tuple boa ;
         object>>
     ] if ;
 
+: lookup-selector ( name -- alien )
+    <selector> selector ;
+
 SYMBOL: objc-methods
 
 objc-methods [ H{ } clone ] initialize
@@ -62,7 +65,7 @@ ERROR: no-objc-method name ;
     dup ?lookup-method [ ] [ no-objc-method ] ?if ;
 
 : (selector/sender) ( selector super? -- alien word )
-    [ [ <selector> selector ] [ lookup-method ] bi ]
+    [ [ lookup-selector ] [ lookup-method ] bi ]
     [ super-message-senders message-senders ? get at ] bi* ; inline
 
 : selector/sender ( selector -- alien word )
@@ -73,8 +76,7 @@ ERROR: no-objc-method name ;
 
 MEMO: make-prepare-send ( selector method super? -- quot )
     [
-        [ \ <super> , ] when
-        swap <selector> , \ selector ,
+        [ \ <super> , ] when swap lookup-selector ,
     ] [ ] make
     swap second length 2 - '[ _ _ ndip ] ;
 
index f22f9ccb50aa1408e3c3e391ab6a0e52d9cc9f9d..6a190930687491ba3fccfd99267fd87c8b5b1635 100644 (file)
@@ -5,9 +5,9 @@ arrays assocs cocoa cocoa.application cocoa.classes
 cocoa.messages cocoa.pasteboard cocoa.runtime cocoa.subclassing
 cocoa.types cocoa.views combinators core-foundation.strings
 core-graphics core-graphics.types core-text io.encodings.utf8
-kernel locals math math.order math.rectangles namespaces opengl
-sequences system-info threads ui.gadgets ui.gadgets.private
-ui.gadgets.worlds ui.gestures ui.private vocabs vocabs.parser ;
+kernel locals math math.rectangles namespaces opengl sequences
+threads ui.gadgets ui.gadgets.private ui.gadgets.worlds
+ui.gestures ui.private ;
 IN: ui.backend.cocoa.views
 
 : send-mouse-moved ( view event -- )
@@ -151,7 +151,8 @@ CLASS: FactorView < NSOpenGLView NSTextInput
 
     METHOD: void prepareOpenGL [
 
-        os-version { 10 7 0 } after=? [
+        self "setWantsBestResolutionOpenGLSurface:"
+        lookup-selector -> respondsToSelector: c-bool> [
 
             self "setWantsBestResolutionOpenGLSurface:"
             selector/sender 1 swap execute( x x x -- )