From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 8612 invoked from network); 13 Jul 2021 15:00:46 -0000 Received: from 1ess.inri.net (216.126.196.35) by inbox.vuxu.org with ESMTPUTF8; 13 Jul 2021 15:00:46 -0000 Received: from mail-ej1-f46.google.com ([209.85.218.46]) by 1ess; Tue Jul 13 10:27:15 -0400 2021 Received: by mail-ej1-f46.google.com with SMTP id v20so41826261eji.10 for <9front@9front.org>; Tue, 13 Jul 2021 07:27:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=B3GrL/sRJ0m7Ti/kHQDi+QmxEwzpfqRowDnyXEZ2VRY=; b=lXhHMtVeZEKwIgMo68dzK7qROynPX6lbPaLd1isuMzsf+4p4Qz1AswuxVLf0WAt5U/ yd9/1Lwtm8n+yNdGhAKCIo7YLjghD9YE+0EvR+1nKPdZqZxY2TYHz09eApCMpX0afadR HbkPOTWRZ4x+uu7qsmppDJDftqLHwNcziyTxkJdrP7e7JDpSJZT9pEEHgu9rBwrysrVq 0/AwmoH7uN+92h//QAUn3Q+iPTBbpEKnu4NP18fwdzGNuoVn2LoRcJOjHwbjtox+fIF6 /MWPvuwPh/drOl+WcbjFcsdOuuUmwNw6gr3qk2/utQNA91CCgmQWWvRDfNdmFT4HLlDM btqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=B3GrL/sRJ0m7Ti/kHQDi+QmxEwzpfqRowDnyXEZ2VRY=; b=KwNyNmGs5j+Nq9ZnxTjsTIaALr+VOQJNG+X1szD/7l20Cw9Ix2VRrwoDrBImnzvcqm 6Z60sjt+7Uss09KUKj5dWkaE1Aj4ul2TDLg/pFC+blDR5zm2X5QYTI2pepTK+pea02/P jopaeHZzwwaAseZn42OrhSEbe/rS/9dw5RLMPL9oROCEDeZux5w5sY3loz60PyVl5CMg hnEXYitXkJ7/81Brd/jiAqt5nrcw0Rbj+r3Xk5VY0H8yFmLgWi8psIupMWB75wvZy9a2 VQYRtuJf6x5uTRIPw2JtzO4XQXa9OFURr0M/KoDEMDqn07zwC/JQXO1H0vYT/2nC4fFq zamA== X-Gm-Message-State: AOAM532WCAboPr9cmeIGQghfANxrtRtKtCDPK6TJppFkrnSsl9+1VLlq 4SRvF3O1dO8kqdj2nCeJLmonrMLT24TTyurKCfn5qFgYLSo= X-Google-Smtp-Source: ABdhPJzdtVZP4vDWBThQ2jMhhcVmDhaEwn+gUKHPDhB2FP20T7RlFoihkbg6DmXPmsB1Vj+4GgOdXEFMoyn65UIhoUw= X-Received: by 2002:a17:906:32d5:: with SMTP id k21mr2685230ejk.241.1626186430322; Tue, 13 Jul 2021 07:27:10 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a17:906:76c8:b029:4d9:7711:78cc with HTTP; Tue, 13 Jul 2021 07:27:09 -0700 (PDT) From: Stuart Morrow Date: Tue, 13 Jul 2021 15:27:09 +0100 Message-ID: To: 9front@9front.org Content-Type: multipart/mixed; boundary="00000000000084a5f605c7020818" List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: encrypted webscale XML lifecycle grid Subject: [9front] speaking of screenlock Reply-To: 9front@9front.org Precedence: bulk --00000000000084a5f605c7020818 Content-Type: text/plain; charset="UTF-8" I noticed (i.e. I failed to notice months ago) that my screenlock patch causes rio to redraw the green border. An attempt to getwindow-and-redraw in the topper proc to fix this is attached, but fails because screen image r is malloc'd. But I am asking for :130,142 to be merged as 1. it kind of fixes this anyway (as popups never happen in practice), and 2. it's just more efficient. Further thoughts on screenlock: There's actually no need to discover the screen size using /dev/screen OR /dev/draw - you can just invoke newwindow with constants (e.g. 0 0 10000 10000) and rio forces it to the real screen size. But then you're depending on an unmodded rio with in principle other window managers could exist. --00000000000084a5f605c7020818 Content-Type: text/x-csrc; charset="UTF-8"; name="screenlock.c" Content-Disposition: attachment; filename="screenlock.c" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 Lyogc2NyZWVubG9jayAtIGxvY2sgYSB0ZXJtaW5hbCAqLwojaW5jbHVkZSA8dS5oPgojaW5jbHVk ZSA8bGliYy5oPgojaW5jbHVkZSA8bGlic2VjLmg+CiNpbmNsdWRlIDxkcmF3Lmg+CiNpbmNsdWRl IDx0aHJlYWQuaD4KI2luY2x1ZGUgPGF1dGguaD4KCnZvaWQgcmVkcmF3KHZvaWQpOwp2b2lkIGFw cGVuZGl4KHZvaWQpOwoKY2hhciBwaWNbXSA9ICIvbGliL2J1bm55LmJpdCI7CmNoYXIgbm90aWNl WzI4KzE0XTsgLyogS05BTUVMRU4gKyBsZW5ndGggb2YgYSBzdHJpbmcgKi8KaW50IGRlYnVnOwps b25nIGJsYW5rOwoKdm9pZAp1c2FnZSh2b2lkKQp7CglmcHJpbnQoMiwgInVzYWdlOiAlcyBbLWRd XG4iLCBhcmd2MCk7CglleGl0cygidXNhZ2UiKTsKfQoKLyogXkQsIERlbGV0ZSwgRW50ZXIsIEJh Y2tzcGFjZSwgXlUgKi8Kdm9pZApyZWFkbGluZShjaGFyICpidWYsIGludCBuYnVmKQp7CgljaGFy IGM7CglpbnQgaTsKCglpID0gMDsKCXdoaWxlKGkgPCBuYnVmLTEpewoJCWlmKHJlYWQoMCwgJmMs IDEpICE9IDEgfHwgYyA9PSAnXDA0JyB8fCBjID09ICdcMTc3Jyl7CgkJCWkgPSAwOwoJCQlicmVh azsKCQl9IGVsc2UgaWYoYyA9PSAnXG4nKQoJCQlicmVhazsKCQllbHNlIGlmKGMgPT0gJ1xiJyAm JiBpID4gMCkKCQkJLS1pOwoJCWVsc2UgaWYoYyA9PSAoJ3UnICYgMDM3KSkKCQkJaSA9IDA7CgkJ ZWxzZQoJCQlidWZbaSsrXSA9IGM7CgkJYmxhbmsgPSB0aW1lKDApOwoJfQoJYnVmW2ldID0gJ1ww JzsKfQoKdm9pZApjaGVja3Bhc3N3b3JkKHZvaWQpCnsKCWNoYXIgYnVmWzI1Nl07CglBdXRoSW5m byAqYWk7CgoJZm9yKDs7KXsKCQltZW1zZXQoYnVmLCAwLCBzaXplb2YgYnVmKTsKCQlyZWFkbGlu ZShidWYsIHNpemVvZiBidWYpOwoKCQlib3JkZXIoc2NyZWVuLCBzY3JlZW4tPnIsIDgsIGRpc3Bs YXktPndoaXRlLCBaUCk7CgkJZmx1c2hpbWFnZShkaXNwbGF5LCAxKTsKCgkJLyogYXV0aGVudGlj YXRlICovCgkJYWkgPSBhdXRoX3VzZXJwYXNzd2QoZ2V0dXNlcigpLCBidWYpOwoJCWlmKGFpICE9 IG5pbCAmJiBhaS0+Y2FwICE9IG5pbCkKCQkJYnJlYWs7CgoJCXJlcnJzdHIoYnVmLCBzaXplb2Yg YnVmKTsKCQlpZihzdHJuY21wKGJ1ZiwgIm5lZWRrZXkgIiwgOCkgPT0gMCkKCQkJYnJlYWs7CgoJ CWF1dGhfZnJlZUFJKGFpKTsKCQlib3JkZXIoc2NyZWVuLCBzY3JlZW4tPnIsIDgsIGRpc3BsYXkt PmJsYWNrLCBaUCk7CgkJZmx1c2hpbWFnZShkaXNwbGF5LCAxKTsKCX0KCWF1dGhfZnJlZUFJKGFp KTsKCW1lbXNldChidWYsIDAsIHNpemVvZiBidWYpOwp9Cgp2b2lkCmJsYW5rZXIodm9pZCAqKQp7 CglpbnQgZmQ7CgoJdGhyZWFkc2V0bmFtZSgiYmxhbmtlciIpOwoKCWlmKChmZCA9IG9wZW4oIi9k ZXYvbW91c2VjdGwiLCBPV1JJVEUpKSA8IDApCgkJcmV0dXJuOwoKCWZvcig7Oyl7CgkJaWYoYmxh bmsgIT0gMCAmJiAoKHVsb25nKXRpbWUoMCkgLSAodWxvbmcpYmxhbmspID49IDUpewoJCQlibGFu ayA9IDA7CgkJCXdyaXRlKGZkLCAiYmxhbmsiLCA1KTsKCQl9CgkJc2xlZXAoMTAwMCk7Cgl9Cn0K CnZvaWQKZ3JhYm1vdXNlKHZvaWQqKQp7CglpbnQgZmQsIHgsIHk7CgljaGFyIGlidWZbMjU2XSwg b2J1ZlsyNTZdOwoKCXRocmVhZHNldG5hbWUoImdyYWJtb3VzZSIpOwoKCWlmKChmZCA9IG9wZW4o Ii9kZXYvbW91c2UiLCBPUkRXUikpIDwgMCkKCQlzeXNmYXRhbCgiY2FuJ3Qgb3BlbiAvZGV2L21v dXNlOiAlciIpOwoKCXNucHJpbnQob2J1Ziwgc2l6ZW9mIG9idWYsICJtICVkICVkIiwKCQlzY3Jl ZW4tPnIubWluLnggKyBEeChzY3JlZW4tPnIpLzIsCgkJc2NyZWVuLT5yLm1pbi55ICsgRHkoc2Ny ZWVuLT5yKS8yKTsKCgl3aGlsZShyZWFkKGZkLCBpYnVmLCBzaXplb2YgaWJ1ZikgPiAwKXsKCQlp YnVmWzEyXSA9IDA7CgkJaWJ1ZlsyNF0gPSAwOwoJCXggPSBhdG9pKGlidWYrMSk7CgkJeSA9IGF0 b2koaWJ1ZisxMyk7CgkJaWYoeCAhPSBzY3JlZW4tPnIubWluLnggKyBEeChzY3JlZW4tPnIpLzIg fHwKCQkgICB5ICE9IHNjcmVlbi0+ci5taW4ueSArIER5KHNjcmVlbi0+cikvMil7CgkJCWlmKCFk ZWJ1ZykKCQkJCWZwcmludChmZCwgIiVzIiwgb2J1Zik7CgkJCWJsYW5rID0gdGltZSgwKTsKCQl9 Cgl9Cn0KCnZvaWQKdG9wKHZvaWQqKQp7CglpbnQgZmQsIG47CgljaGFyIGJ1ZlsxMjhdOwoKCXRo cmVhZHNldG5hbWUoInRvcCIpOwoKCWlmKChmZCA9IG9wZW4oIi9kZXYvd2N0bCIsIE9SRFdSKSkg PCAwKQoJCXJldHVybjsKCglmb3IoOzspewoJCW4gPSByZWFkKGZkLCBidWYsIHNpemVvZiBidWYp OwoJCWlmKG4gPiA0OCkKCQkJaWYoc3Ryc3RyKGJ1Zis0OCwgIm5vdGN1cnJlbnQiKSl7CgkJCQl3 cml0ZShmZCwgImN1cnJlbnQiLCA3KTsgLyogcmlvIHJlZHJhd3MgYm9yZGVy4oCmICovCgkJCQln ZXR3aW5kb3coZGlzcGxheSwgMSk7CgkJCQlyZWRyYXcoKTsKCQkJfQoJfQp9Cgp2b2lkCnJlZHJh dyh2b2lkKQp7CglpbnQgZmQsIGR4LCBkeTsKCXN0YXRpYyBJbWFnZSAqaTsKCVBvaW50IHAsIHE7 CglSZWN0YW5nbGUgcjsKCQoJc2NyZWVuID0gX3NjcmVlbi0+aW1hZ2U7CS8qIGZ1bGxzY3JlZW4g Ki8KCglpZihpID09IG5pbCl7CgkJZmQgPSBvcGVuKHBpYywgT1JFQUQpOwoJCWlmKGZkID49IDAp CgkJCWkgPSByZWFkaW1hZ2UoZGlzcGxheSwgZmQsIDApOwoJCWNsb3NlKGZkKTsKCX0KCWlmKGkg IT0gbmlsKXsKZnByaW50KDIsICJfc2NyZWVuIiI6JXBcbiIsIF9zY3JlZW4pOwpmcHJpbnQoMiwg Il9zY3JlZW4gaW1hZ2UiIjolcFxuIiwgX3NjcmVlbi0+aW1hZ2UpOwpmcHJpbnQoMiwgIl9zY3Jl ZW4gaW1hZ2UgciIiOiVwXG4iLCAmX3NjcmVlbi0+aW1hZ2UtPnIpOwogCQlyID0gc2NyZWVuLT5y OwoJCXAgPSBQdChyLm1heC54IC8gMiwgci5tYXgueSAqIDIgLyAzKTsgCgkJZHggPSAoRHgoc2Ny ZWVuLT5yKSAtIER4KGktPnIpKSAvIDI7CgkJci5taW4ueCArPSBkeDsKCQlyLm1heC54IC09IGR4 OwoJCWR5ID0gKER5KHNjcmVlbi0+cikgLSBEeShpLT5yKSkgLyAyOwoJCXIubWluLnkgKz0gZHk7 CgkJci5tYXgueSAtPSBkeTsKCQlkcmF3KHNjcmVlbiwgc2NyZWVuLT5yLCBkaXNwbGF5LT5ibGFj aywgbmlsLCBaUCk7CgkJZHJhdyhzY3JlZW4sIHIsIGksIG5pbCwgaS0+ci5taW4pOwoJfQoKCS8q IGlkZW50aWZ5IHRoZSB1c2VyIG9uIHNjcmVlbiwgY2VudGVyZWQgKi8KCXEgPSBzdHJpbmdzaXpl KGZvbnQsIG5vdGljZSk7CglxLnggLz0gMjsKCXAgPSBzdWJwdChwLCBxKTsKCglzdHJpbmdiZygK CQlzY3JlZW4sIHAsIGRpc3BsYXktPndoaXRlLCBaUCwgZm9udCwgbm90aWNlLAoJCWRpc3BsYXkt PmJsYWNrLCBaUAoJKTsKCglmbHVzaGltYWdlKGRpc3BsYXksIDEpOwp9Cgp2b2lkCmxvY2tzY3Jl ZW4odm9pZCkKewoJZW51bSB7IEN1cnNvcmxlbiA9IDIqNCArIDIqMioxNiB9OwoJY2hhciBuZXdj bWRbMTI4XSwgY2J1ZltDdXJzb3JsZW5dOwoJUmVjdGFuZ2xlIHI7CglpbnQgZmQ7CglUbSAqdG07 CgoJZGlzcGxheSA9IGluaXRkaXNwbGF5KG5pbCwgbmlsLCBuaWwpOwoJaWYoZGlzcGxheSA9PSBu aWwpCgkJc3lzZmF0YWwoImNhbid0IG9wZW4gL2Rldi9kcmF3OiAlciIpOwoJciA9IGRpc3BsYXkt PmltYWdlLT5yOwoJc25wcmludChuZXdjbWQsIHNpemVvZiBuZXdjbWQsICItciAlZCAlZCAlZCAl ZCIsCgkJci5taW4ueCwgci5taW4ueSwgci5tYXgueCwgci5tYXgueSk7CgljbG9zZWRpc3BsYXko ZGlzcGxheSk7CgoJbmV3d2luZG93KG5ld2NtZCk7CgkKCWlmKChmZCA9IG9wZW4oIi9kZXYvY29u c2N0bCIsIE9XUklURSkpID49IDApCgkJd3JpdGUoZmQsICJyYXdvbiIsIDUpOwoKCWlmKChmZCA9 IG9wZW4oIi9kZXYvY29ucyIsIE9SRUFEKSkgPCAwKQoJCXN5c2ZhdGFsKCJjYW4ndCBvcGVuIGNv bnM6ICVyIik7CglkdXAoZmQsIDApOwoKCWlmKChmZCA9IG9wZW4oIi9kZXYvY29ucyIsIE9XUklU RSkpIDwgMCkKCQlzeXNmYXRhbCgiY2FuJ3Qgb3BlbiBjb25zOiAlciIpOwoJZHVwKGZkLCAxKTsK CWR1cChmZCwgMik7CgoJaWYoaW5pdGRyYXcobmlsLCBuaWwsICJzY3JlZW5sb2NrIikgPCAwKQoJ CXN5c2ZhdGFsKCJpbml0ZHJhdyBmYWlsZWQiKTsKCXRtID0gbG9jYWx0aW1lKHRpbWUoJmJsYW5r KSk7CglzcHJpbnQobm90aWNlLCAidXNlciAlcyBhdCAlZDolMDIuMmQiLCBnZXR1c2VyKCksIHRt LT5ob3VyLCB0bS0+bWluKTsKCXJlZHJhdygpOwoKCS8qIHNjcmVlbiBpcyBub3cgb3BlbiBhbmQg Y292ZXJlZC4gIGdyYWIgbW91c2UgYW5kIGhvbGQgb24gdGlnaHQgKi8KCXByb2NyZm9yayh0b3As IG5pbCwgOCoxMDI0LCBSRkZERyk7Cglwcm9jcmZvcmsoZ3JhYm1vdXNlLCBuaWwsIDgqMTAyNCwg UkZGREcpOwoJcHJvY3Jmb3JrKGJsYW5rZXIsIG5pbCwgOCoxMDI0LCBSRkZERyk7CgoJLyogY2xl YXIgdGhlIGN1cnNvciAqLwoJaWYoKGZkID0gb3BlbigiL2Rldi9jdXJzb3IiLCBPV1JJVEUpKSA+ PSAwKXsKCQltZW1zZXQoY2J1ZiwgMCwgc2l6ZW9mIGNidWYpOwoJCXdyaXRlKGZkLCBjYnVmLCBz aXplb2YgY2J1Zik7CgkJLyogbGVhdmUgaXQgb3BlbiAqLwoJfQoKCS8qIGRvIHRoZSB0b3AtZ2V0 d2luZG93LXJlZHJhdyBjeWNsZSAqaGVyZSBpbiB0aGUgbWFpbiBwcm9jKgoJCXRvIHNob3cgdGhh dCBpdCBjYW4gYWN0dWFsbCB3b3JrICovCgkvLyA6MjMyIGFuZCB0aGlzIGNhbGwgY2FuJ3QgYmUg dW5jb21tZW50ZWQgYXQgdGhlIHNhbWUgdGltZSAtIHRoZXJlCgkvLwljYW4gYmUgb25seSBvbmUg d2N0bCByZWFkZXIKCS8vYXBwZW5kaXgoKTsKfQoKdm9pZAp0aHJlYWRtYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pCnsKCUFSR0JFR0lOewoJY2FzZSAnZCc6CgkJZGVidWcrKzsKCQlicmVhazsK CWRlZmF1bHQ6CgkJdXNhZ2UoKTsKCX1BUkdFTkQKCglpZihhcmdjICE9IDApCgkJdXNhZ2UoKTsK Cglsb2Nrc2NyZWVuKCk7CgljaGVja3Bhc3N3b3JkKCk7Cgl0aHJlYWRleGl0c2FsbChuaWwpOwp9 Cgp2b2lkCmFwcGVuZGl4KHZvaWQpCnsKCWludCBmZDsvLywgbjsKLy8JY2hhciBidWZbMTI4XTsK CglpZigoZmQgPSBvcGVuKCIvZGV2L3djdGwiLCBPUkRXUikpIDwgMCkKCQlmcHJpbnQoMiwgIiVy Iik7CgoJc2xlZXAoMTAwMCk7Cgl3cml0ZShmZCwgIm5ldyBlY2hvIiwgOCk7CglzbGVlcCgxMDAw KTsKLy8JaWYoc3Ryc3RyKGJ1Zis0OCwgIm5vdGN1cnJlbnQiKSl7CgkJd3JpdGUoZmQsICJjdXJy ZW50IiwgNyk7IC8qIHJpbyByZWRyYXdzIGJvcmRlcuKApiAqLwoJCWdldHdpbmRvdyhkaXNwbGF5 LCAxKTsKCQlyZWRyYXcoKTsKLy8JfQp9Cg== --00000000000084a5f605c7020818--