keyboard: Let the OSK take 1/4th of height in portrait mode

And let the keys shrink horizontally to cover the full area.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2278>
This commit is contained in:
Carlos Garnacho 2022-06-01 17:39:57 +02:00 committed by Florian Müllner
parent f1fcce66aa
commit b18ab0086e

View File

@ -68,10 +68,6 @@ class AspectContainer extends St.Widget {
box.x1 += Math.floor(diff / 2); box.x1 += Math.floor(diff / 2);
box.x2 -= Math.ceil(diff / 2); box.x2 -= Math.ceil(diff / 2);
} else {
/* Restrict vertically, align to bottom */
let height = box.get_width() / this._ratio;
box.y1 = box.y2 - Math.floor(height);
} }
} }
@ -1779,22 +1775,12 @@ var Keyboard = GObject.registerClass({
if (!monitor) if (!monitor)
return; return;
let maxHeight = monitor.height / 3;
this.width = monitor.width; this.width = monitor.width;
if (monitor.width > monitor.height) { if (monitor.width > monitor.height)
this.height = maxHeight; this.height = monitor.height / 3;
} else { else
/* In portrait mode, lack of horizontal space means we won't be this.height = monitor.height / 4;
* able to make the OSK that big while keeping size ratio, so
* we allow the OSK being smaller than 1/3rd of the monitor height
* there.
*/
this.height = -1;
const forWidth = this.get_theme_node().adjust_for_width(monitor.width);
const [, natHeight] = this.get_preferred_height(forWidth);
this.height = Math.min(maxHeight, natHeight);
}
} }
_updateKeys() { _updateKeys() {