]> gitweb.michael.orlitzky.com - charm-bypass.git/commitdiff
index.html.in: add workaround for the code-centering issue
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 26 Oct 2023 22:31:17 +0000 (18:31 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 26 Oct 2023 22:31:17 +0000 (18:31 -0400)
index.html.in

index f6d7cceeae17a5c23024d489400225f880e686cd..0ad89dcba4aff71cb3a465d906213e52bbad471d 100644 (file)
         ct.setAttribute("x", parseFloat(ct.getAttribute("x")) + hdelta);
       }
 
+      function center_code_wrapper() {
+        /* Lets us call center_code twice on page load. Why we need to
+        * do this is an interesting (i.e. stupid) conversation. */
+       center_code();
+      }
 
       /*****************************************/
       /* Next, set up the ticket date and time */
       window.addEventListener("load", set_code);
 
       /* Center the security code text when the page has loaded;
-       * in particular, after we set it */
+       * in particular, after we set it. And then center it again.
+       * Why? I'm glad you asked. Because it doesn't actually get
+       * centered the first time; it's off by a few pixels. But then
+       * if we center it _again_, I guess we're so close to begin with
+       * that any errors aren't noticeable. Anyway, just running it
+       * twice in a row avoids a major headache. We need the wrapper
+       * because the spec says that duplicate handlers are discarded. */
       window.addEventListener("load", center_code);
+      window.addEventListener("load", center_code_wrapper);
 
       /* Re-center the security code when the window is resized,
        * and in particular after the ticket is re-centered */