]> gitweb.factorcode.org Git - factor.git/commitdiff
ui.backend.cocoa.views: fix retina in deploy images
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 4 Jan 2022 23:08:59 +0000 (15:08 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 4 Jan 2022 23:08:59 +0000 (15:08 -0800)
this is a workaround for some kind of issue using globals
in the objc alien callbacks inside of deployed images.

basis/ui/backend/cocoa/views/views.factor

index 4eb4c13f0905b1d993c6febb263c04029f1771ed..89b2f2d7afe75143b679d2716b21cbdb9b39814c 100644 (file)
@@ -271,21 +271,15 @@ IMPORT: NSAttributedString
         gadget remove-preedit-info 
     ] when ;
 
+: set-scale-factor ( n -- )
+    [ 1.0 > ] keep f ? gl-scale-factor set-global
+    cached-lines get-global clear-assoc ;
+
 PRIVATE>
 
 <CLASS: FactorView < NSOpenGLView
     COCOA-PROTOCOL: NSTextInputClient
 
-    METHOD: void prepareOpenGL [
-
-        self -> backingScaleFactor
-        [ 1.0 > ] keep f ? gl-scale-factor set-global
-
-        cached-lines get-global clear-assoc
-
-        self -> update
-    ] ;
-
     METHOD: void reshape [
         self window :> window
         window [
@@ -658,7 +652,9 @@ PRIVATE>
     CGLSetParameter drop ;
 
 : <FactorView> ( dim pixel-format -- view )
-    [ FactorView ] 2dip <GLView> [ sync-refresh-to-screen ] keep ;
+    [ FactorView ] 2dip <GLView>
+    [ -> backingScaleFactor set-scale-factor ] keep
+    [ sync-refresh-to-screen ] keep ;
 
 : save-position ( world window -- )
     -> frame CGRect-top-left 2array >>window-loc drop ;
@@ -698,10 +694,7 @@ PRIVATE>
 
     METHOD: void windowDidChangeBackingProperties: id notification
     [
-        notification -> object -> backingScaleFactor
-        [ 1.0 > ] keep f ? gl-scale-factor set-global
-
-        cached-lines get-global clear-assoc
+        notification -> object -> backingScaleFactor set-scale-factor
     ] ;
 ;CLASS>