keyboard: Always use ratio of visible level

Since the OSK keymap actors are cached, we no longer update the aspect
container ratio as often as we should. Ensure to update the aspect ratio
with language/level changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2278>
This commit is contained in:
Carlos Garnacho 2022-05-30 23:12:51 +02:00 committed by Florian Müllner
parent 38cae3b919
commit f1fcce66aa

View File

@ -129,7 +129,7 @@ class KeyContainer extends St.Widget {
this._maxCols = Math.max(this._currentCol, this._maxCols); this._maxCols = Math.max(this._currentCol, this._maxCols);
} }
layoutButtons(container) { layoutButtons() {
let nCol = 0, nRow = 0; let nCol = 0, nRow = 0;
for (let i = 0; i < this._rows.length; i++) { for (let i = 0; i < this._rows.length; i++) {
@ -156,9 +156,10 @@ class KeyContainer extends St.Widget {
nRow += KEY_SIZE; nRow += KEY_SIZE;
nCol = 0; nCol = 0;
} }
}
if (container) getRatio() {
container.setRatio(this._maxCols, this._rows.length); return [this._maxCols, this._rows.length];
} }
}); });
@ -1479,7 +1480,7 @@ var Keyboard = GObject.registerClass({
this._loadRows(currentLevel, level, levels.length, layout); this._loadRows(currentLevel, level, levels.length, layout);
layers[level] = layout; layers[level] = layout;
this._aspectContainer.add_child(layout); this._aspectContainer.add_child(layout);
layout.layoutButtons(this._aspectContainer); layout.layoutButtons();
layout.hide(); layout.hide();
} }
@ -1877,6 +1878,7 @@ var Keyboard = GObject.registerClass({
this._currentPage = null; this._currentPage = null;
}); });
this._updateCurrentPageVisible(); this._updateCurrentPageVisible();
this._aspectContainer.setRatio(...this._currentPage.getRatio());
} }
_clearKeyboardRestTimer() { _clearKeyboardRestTimer() {