[gnome-shell/wip/carlosg/check-delete-surrounding: 3/3] inputMethod: Protect for running with older mutter versions



commit 8378c9c9e03e7a8d0fdb382c473f0d18da02d1f5
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sat Mar 28 17:26:39 2020 +0100

    inputMethod: Protect for running with older mutter versions
    
    The offset argument is changing from uint to int. Which means we
    might would pass a negative offset and trigger an "out of bounds"
    error. Make it work more or less alright with older mutters, by
    clamping the offset to 0.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1146

 js/misc/inputMethod.js | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
---
diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
index 386c07a75a..a3c6bb084e 100644
--- a/js/misc/inputMethod.js
+++ b/js/misc/inputMethod.js
@@ -98,7 +98,12 @@ class InputMethod extends Clutter.InputMethod {
     }
 
     _onDeleteSurroundingText(_context, offset, nchars) {
-        this.delete_surrounding(offset, nchars);
+        try {
+            this.delete_surrounding(offset, nchars);
+        } catch (e) {
+            // We may get out of bounds for negative offset on older mutter
+            this.delete_surrounding(0, nchars + offset);
+        }
     }
 
     _onUpdatePreeditText(_context, text, pos, visible) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]