{"id":1182,"date":"2026-04-22T19:45:37","date_gmt":"2026-04-22T08:45:37","guid":{"rendered":"https:\/\/securelang.net\/cms\/?p=1182"},"modified":"2026-04-22T19:45:37","modified_gmt":"2026-04-22T08:45:37","slug":"performance-improvements-spreadsheet-features","status":"publish","type":"post","link":"https:\/\/securelang.net\/cms\/blog\/2026\/04\/22\/performance-improvements-spreadsheet-features\/","title":{"rendered":"Performance Improvements, Spreadsheet Features"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The desktop input system is now accurate enough to generally capture every keypress up to an internal buffer limit. This behaviour will probably be replicated for mouse input with some changes (e.g. compounding mouse motion events can be added together).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This means that text input feels reasonably fast now without the lagginess, so it can potentially run real text editor &amp; terminal workflows once those apps are fixed up..<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The spreadsheet code is also now mostly functioning to edit &amp; load\/save documents but it&#8217;s just missing any more advanced features. Some of this (&#8220;spreadsheet app&#8221;) functionality will likely be reused in other editing apps to save time on reimplementing binary format stuff.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The desktop input system is now accurate enough to generally capture every keypress up to an internal buffer limit. This behaviour will probably be replicated for mouse input with some changes (e.g. compounding mouse motion events can be added together). This means that text input feels reasonably fast now without the lagginess, so it can [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1182","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts\/1182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/comments?post=1182"}],"version-history":[{"count":1,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts\/1182\/revisions"}],"predecessor-version":[{"id":1183,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/posts\/1182\/revisions\/1183"}],"wp:attachment":[{"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/media?parent=1182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/categories?post=1182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/securelang.net\/cms\/wp-json\/wp\/v2\/tags?post=1182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}