From 482e62cb75e96a4c6fe14c74a4990cff24f10cee Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 20 Apr 2022 23:16:38 +0200 Subject: [PATCH] inputMethod: Add signal/getter for surrounding text updates We need to keep track of those at places, add a signal and getter so that this information can be accessed from the OSK. Part-of: --- js/misc/inputMethod.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js index fba2730bd..1abe20ec2 100644 --- a/js/misc/inputMethod.js +++ b/js/misc/inputMethod.js @@ -10,8 +10,11 @@ Gio._promisify(IBus.Bus.prototype, var HIDE_PANEL_TIME = 50; -var InputMethod = GObject.registerClass( -class InputMethod extends Clutter.InputMethod { +var InputMethod = GObject.registerClass({ + Signals: { + 'surrounding-text-set': {}, + }, +}, class InputMethod extends Clutter.InputMethod { _init() { super._init(); this._hints = 0; @@ -202,6 +205,8 @@ class InputMethod extends Clutter.InputMethod { this._emitRequestSurrounding(); } + this._surroundingText = null; + this._surroundingTextCursor = null; this._preeditStr = null; } @@ -214,6 +219,10 @@ class InputMethod extends Clutter.InputMethod { } vfunc_set_surrounding(text, cursor, anchor) { + this._surroundingText = text; + this._surroundingTextCursor = cursor; + this.emit('surrounding-text-set'); + if (!this._context || !text) return; @@ -298,4 +307,8 @@ class InputMethod extends Clutter.InputMethod { }); return true; } + + getSurroundingText() { + return [this._surroundingText, this._surroundingTextCursor]; + } });