From ff66cdd830fefa460319aceb54bf07574383a985 Mon Sep 17 00:00:00 2001
From: Guillem <guillembartrina@gmail.com>
Date: Fri, 17 Jul 2020 13:55:12 +0200
Subject: [PATCH] fix text slice start and end point passing to cover all cases

---
 pd/nw/pdgui.js | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pd/nw/pdgui.js b/pd/nw/pdgui.js
index 2792b861f..07f3ff80c 100644
--- a/pd/nw/pdgui.js
+++ b/pd/nw/pdgui.js
@@ -5565,9 +5565,9 @@ function select_text(cid, elem, state) {
     if (win.document.selection) {
         range = win.document.body.createTextRange();
         range.moveToElementText(elem);
-        if(state > 2)
+        if(state & (0b1 << 31))
         {
-            var b = state & 0xFFFF, e = state >>> 16, l = elem.textContent.length;
+            var e = state & 0xFFFF, b = (state >>> 16) & 0x7FFF, l = elem.textContent.length;
             var ms = Math.max(Math.min(b, l), 0);
             var me = Math.max(Math.min(e, l), ms);
             range.moveStart("character", ms);
@@ -5577,9 +5577,9 @@ function select_text(cid, elem, state) {
     } else if (win.getSelection) {
         range = win.document.createRange();
         range.selectNodeContents(elem);
-        if(state > 2)
+        if(state & (0b1 << 31))
         {
-            var b = state & 0xFFFF, e = state >>> 16, l = elem.textContent.length;
+            var e = state & 0xFFFF, b = (state >>> 16) & 0x7FFF, l = elem.textContent.length;
             var ms = Math.max(Math.min(b, l), 0);
             var me = Math.max(Math.min(e, l), ms);
             range.setStart(elem.firstChild, ms);
-- 
GitLab