I would say to update boot.js but also copy the old one to to something
like boot_without_touch_events.js

David Botton


On Tue, May 23, 2017 at 7:08 AM Gautier de Montmollin <gdem...@hotmail.com>
wrote:

> So, the workaround described here:
>
>
> http://stackoverflow.com/questions/1517924/javascript-mapping-touch-events-to-mouse-events
>
> is working :-)
>
> Below, the completed boot.js (also with additional "Gnoga: " message
> prefixes in the logs to js console).
> ---
>
>    var ws;
>    var adr;
>    var reconnects=0;
>    var params={};
>    var gnoga={};
>    var pingerid;
>
>    if (typeof gnoga_debug == 'undefined') {
>       gnoga_debug = false;
>    }
>
>    function Ping_ws() {
>       if (ws.readyState == 1) {
>          ws.send ("0");
>       }
>    }
>
>    function Shutdown_ws() {
>       ws = null;
>       clearInterval (pingerid);
>       if (gnoga['html_on_close'] != "") {
>          $(document.body).html(gnoga['html_on_close']);
>        } else {
>          alert ("Server connection lost " + event.reason);
>        }
>    }
>
>    function Setup_ws() {
>       ws.onmessage = function (event) {
>          try {
>             if (gnoga_debug == true) {
>                console.log ("eval data = " + event.data);
>             }
>             eval (event.data);
>          } catch (e) {
>             console.error (e.message);
>          }
>       }
>
>       ws.onerror = function (event) {
>          console.log ("onerror: reconnect");
>          ws=null;
>          ws = new WebSocket (adr  + "?Old_ID=" + gnoga['Connection_ID']);
>          ws.onopen = function (event) {
>             console.log ("onerror: reconnect successful");
>             Setup_ws();
>          }
>          ws.onclose = function (event) {
>             console.log ("onerror: reconnect failure");
>             Shutdown_ws();
>          }
>       }
>
>       ws.onclose = function (event) {
>          console.log ("onclose: reconnect");
>          ws=null;
>          ws = new WebSocket (adr  + "?Old_ID=" + gnoga['Connection_ID']);
>          ws.onopen = function (event) {
>             console.log ("onclose: reconnect successful");
>             Setup_ws();
>          }
>          ws.onclose = function (event) {
>             console.log ("onclose: reconnect failure");
>             Shutdown_ws();
>          }
>       }
>    }
>
>    function touchHandler(event)
>    {
>        var touches = event.changedTouches,
>            first = touches[0],
>            type = "";
>        switch(event.type)
>        {
>            case "touchstart": type = "mousedown"; break;
>            case "touchmove":  type = "mousemove"; break;
>            case "touchend":   type = "mouseup";   break;
>            default:           return;
>        }
>
>        // initMouseEvent(type, canBubble, cancelable, view, clickCount,
>        //                screenX, screenY, clientX, clientY, ctrlKey,
>        //                altKey, shiftKey, metaKey, button, relatedTarget);
>
>        var simulatedEvent = document.createEvent("MouseEvent");
>        simulatedEvent.initMouseEvent(type, true, true, window, 1,
>                                      first.screenX, first.screenY,
>                                      first.clientX, first.clientY, false,
>                                      false, false, false, 0/*left*/, null);
>
>        first.target.dispatchEvent(simulatedEvent);
>        event.preventDefault();
>    }
>
>    function touch2mouseinit()
>    {
>        document.addEventListener("touchstart", touchHandler, true);
>        document.addEventListener("touchmove", touchHandler, true);
>        document.addEventListener("touchend", touchHandler, true);
>        document.addEventListener("touchcancel", touchHandler, true);
>    }
>
>    $( document ).ready(function() {
>       var s = document.location.search;
>       var tokens;
>       var r = /[?&]?([^=]+)=([^&]*)/g;
>
>       s = s.split("+").join(" ");
>
>       while (tokens = r.exec(s)) {
>          params[decodeURIComponent(tokens[1])]
>             = decodeURIComponent(tokens[2]);
>       }
>
>       if (location.protocol == "https:") {
>          adr = "wss://" + location.hostname;
>       } else {
>          adr = "ws://" + location.hostname;
>       }
>
>       if (location.port != "") { adr = adr + ":" + location.port; }
>       adr = adr + "/gnoga";
>
>       try {
>          console.log ("Gnoga: connecting to " + adr);
>          ws = new WebSocket (adr);
>       } catch (e) {
>          console.log ("Gnoga: trying again, connecting to " + adr);
>          ws = new WebSocket (adr);
>       }
>
>       if (ws != null) {
>          ws.onopen = function (event) {
>             console.log ("Gnoga: connection successful");
>             Setup_ws();
>          }
>          pingerid = setInterval (function () {Ping_ws ();}, 10000);
>       } else {
>          document.writeln ("Gnoga: if you are seeing this your browser
> or your connection to the internet is blocking websockets.");
>       }
>
>       touch2mouseinit();
>
>       console.log ("Gnoga: ready.");
>       });
>
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gnoga-list mailing list
> Gnoga-list@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gnoga-list
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gnoga-list mailing list
Gnoga-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gnoga-list

Reply via email to