URI:
       tdevdraw: cocoa: set window title on main thread - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 6a93bd5c92bd2954314f492f10bbcac2c3416da0
   DIR parent 8db40354c5ded13fac5974de4f7cc1b7f0087d67
  HTML Author: sqweek <sqweek@gmail.com>
       Date:   Wed, 11 Nov 2015 21:02:21 +0800
       
       devdraw: cocoa: set window title on main thread
       
       Change-Id: Ie818f9246f749a9d3293019a1e01be4ce7e368b9
       Reviewed-on: https://plan9port-review.googlesource.com/1400
       Reviewed-by: Russ Cox <rsc@swtch.com>
       
       Diffstat:
         M src/cmd/devdraw/cocoa-screen.m      |      14 ++++++++++++--
       
       1 file changed, 12 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/src/cmd/devdraw/cocoa-screen.m b/src/cmd/devdraw/cocoa-screen.m
       t@@ -137,6 +137,7 @@ static void makeicon(void);
        static void makemenu(void);
        static void makewin(char*);
        static void sendmouse(void);
       +static void kicklabel0(char*);
        static void setcursor0(Cursor*);
        static void togglefs(void);
        static void acceptresizing(int);
       t@@ -232,6 +233,7 @@ static NSRect dilate(NSRect);
        + (void)callflushimg:(NSValue*)v{ flushimg([v rectValue]);}
        + (void)callmakewin:(NSValue*)v{ makewin([v pointerValue]);}
        + (void)callsetcursor0:(NSValue*)v{ setcursor0([v pointerValue]);}
       ++ (void)callkicklabel0:(NSValue*)v{ kicklabel0([v pointerValue]);}
        @end
        
        static Memimage* initimg(void);
       t@@ -1358,11 +1360,19 @@ putsnarf(char *s)
        void
        kicklabel(char *label)
        {
       -        NSString *s;
       -
                if(label == nil)
                        return;
        
       +        [appdelegate
       +                performSelectorOnMainThread:@selector(callkicklabel0:)
       +                withObject:[NSValue valueWithPointer:label]
       +                waitUntilDone:YES];
       +}
       +
       +static void
       +kicklabel0(char *label) {
       +        NSString *s;
       +
                s = [[NSString alloc] initWithUTF8String:label];
                [win.ofs[0] setTitle:s];
                [win.ofs[1] setTitle:s];