[gnome-shell/gnome-41] ibusCandidatePopup: Set OSK candidates list visibility correctly
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gnome-41] ibusCandidatePopup: Set OSK candidates list visibility correctly
- Date: Sun, 3 Jul 2022 12:20:01 +0000 (UTC)
commit b4b9b96b95f1ce0973948fa0a80008e21d331787
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Jun 29 13:06:07 2022 +0200
ibusCandidatePopup: Set OSK candidates list visibility correctly
Right now, we don't pay much attention to visibility hints from IBus
about the candidates list for the OSK suggestions bar. Since some
IMs rely on this visibility being honored, do that.
To fix this, the visibility hints for the lookup table are now
propagated to the keyboard, so the Suggestions actor hides its
internal candidate buttons. Since the Suggestions actor gets its
minimum height from CSS, this does not result in OSK size jumps.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5601
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2347>
(cherry picked from commit 237ba24dbeae5f838b40f8c3d100a09413b96d22)
js/ui/ibusCandidatePopup.js | 3 +++
js/ui/keyboard.js | 9 +++++++++
2 files changed, 12 insertions(+)
---
diff --git a/js/ui/ibusCandidatePopup.js b/js/ui/ibusCandidatePopup.js
index 5a9fe77928..68efa24739 100644
--- a/js/ui/ibusCandidatePopup.js
+++ b/js/ui/ibusCandidatePopup.js
@@ -260,6 +260,7 @@ class IbusCandidatePopup extends BoxPointer.BoxPointer {
indexes.push(indexLabel.get_text());
Main.keyboard.resetSuggestions();
+ Main.keyboard.setSuggestionsVisible(visible);
let candidates = [];
for (let i = startIndex; i < endIndex; ++i) {
@@ -279,10 +280,12 @@ class IbusCandidatePopup extends BoxPointer.BoxPointer {
this._candidateArea.updateButtons(lookupTable.is_round(), page, nPages);
});
panelService.connect('show-lookup-table', () => {
+ Main.keyboard.setSuggestionsVisible(true);
this._candidateArea.show();
this._updateVisibility();
});
panelService.connect('hide-lookup-table', () => {
+ Main.keyboard.setSuggestionsVisible(false);
this._candidateArea.hide();
this._updateVisibility();
});
diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
index be7c9277d1..3858fdfde2 100644
--- a/js/ui/keyboard.js
+++ b/js/ui/keyboard.js
@@ -203,6 +203,11 @@ class Suggestions extends St.BoxLayout {
clear() {
this.remove_all_children();
}
+
+ setVisible(visible) {
+ for (const child of this)
+ child.visible = visible;
+ }
});
var LanguageSelectionPopup = class extends PopupMenu.PopupMenu {
@@ -1935,6 +1940,10 @@ var Keyboard = GObject.registerClass({
this._suggestions.clear();
}
+ setSuggestionsVisible(visible) {
+ this._suggestions?.setVisible(visible);
+ }
+
addSuggestion(text, callback) {
if (!this._suggestions)
return;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]