[gnome-shell/wip/carlosg/osk-updates: 41/50] keyboard: Always use ratio of visible level




commit 5f38286a83f939c4dfcf20108e5871ea3c0fb547
Author: Carlos Garnacho <carlosg gnome org>
Date:   Mon May 30 23:12:51 2022 +0200

    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.

 js/ui/keyboard.js | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
---
diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
index a52bc0e35d..66166c0069 100644
--- a/js/ui/keyboard.js
+++ b/js/ui/keyboard.js
@@ -127,7 +127,7 @@ class KeyContainer extends St.Widget {
         this._maxCols = Math.max(this._currentCol, this._maxCols);
     }
 
-    layoutButtons(container) {
+    layoutButtons() {
         let nCol = 0, nRow = 0;
 
         for (let i = 0; i < this._rows.length; i++) {
@@ -154,9 +154,10 @@ class KeyContainer extends St.Widget {
             nRow += KEY_SIZE;
             nCol = 0;
         }
+    }
 
-        if (container)
-            container.setRatio(this._maxCols, this._rows.length);
+    getRatio() {
+        return [this._maxCols, this._rows.length];
     }
 });
 
@@ -1470,7 +1471,7 @@ var Keyboard = GObject.registerClass({
             this._loadRows(currentLevel, level, levels.length, layout);
             layers[level] = layout;
             this._aspectContainer.add_child(layout);
-            layout.layoutButtons(this._aspectContainer);
+            layout.layoutButtons();
 
             layout.hide();
         }
@@ -1869,6 +1870,7 @@ var Keyboard = GObject.registerClass({
             this._currentPage = null;
         });
         this._updateCurrentPageVisible();
+        this._aspectContainer.setRatio(...this._currentPage.getRatio());
     }
 
     _clearKeyboardRestTimer() {


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