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




commit a95b1b68c6f8e2f92b421b32fa05abe585629728
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 c2ff5a4f0c..de0952de64 100644
--- a/js/ui/keyboard.js
+++ b/js/ui/keyboard.js
@@ -129,7 +129,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++) {
@@ -156,9 +156,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];
     }
 });
 
@@ -1469,7 +1470,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();
         }
@@ -1868,6 +1869,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]