keyboard: Request a bigger size in portrait orientation
In portrait orientation, we set the height to the preferred height for the monitor width (or, if smaller, a third o the screen height). However as the forWidth currently doesn't make a difference, the height is effectively controlled by the natural height of the keys - which is rather small. Address this by making AspectContainer request an appropriate preferred size based on the fixed ratio. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2349
This commit is contained in:
parent
1e72874192
commit
261d36ba72
@ -61,6 +61,24 @@ class AspectContainer extends St.Widget {
|
|||||||
this.queue_relayout();
|
this.queue_relayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vfunc_get_preferred_width(forHeight) {
|
||||||
|
let [min, nat] = super.vfunc_get_preferred_width(forHeight);
|
||||||
|
|
||||||
|
if (forHeight > 0)
|
||||||
|
nat = forHeight * this._ratio;
|
||||||
|
|
||||||
|
return [min, nat];
|
||||||
|
}
|
||||||
|
|
||||||
|
vfunc_get_preferred_height(forWidth) {
|
||||||
|
let [min, nat] = super.vfunc_get_preferred_height(forWidth);
|
||||||
|
|
||||||
|
if (forWidth > 0)
|
||||||
|
nat = forWidth / this._ratio;
|
||||||
|
|
||||||
|
return [min, nat];
|
||||||
|
}
|
||||||
|
|
||||||
vfunc_allocate(box) {
|
vfunc_allocate(box) {
|
||||||
if (box.get_width() > 0 && box.get_height() > 0) {
|
if (box.get_width() > 0 && box.get_height() > 0) {
|
||||||
let sizeRatio = box.get_width() / box.get_height();
|
let sizeRatio = box.get_width() / box.get_height();
|
||||||
@ -1608,7 +1626,8 @@ class Keyboard extends St.BoxLayout {
|
|||||||
* we allow the OSK being smaller than 1/3rd of the monitor height
|
* we allow the OSK being smaller than 1/3rd of the monitor height
|
||||||
* there.
|
* there.
|
||||||
*/
|
*/
|
||||||
const [, natHeight] = this.get_preferred_height(monitor.width);
|
const forWidth = this.get_theme_node().adjust_for_width(monitor.width);
|
||||||
|
const [, natHeight] = this.get_preferred_height(forWidth);
|
||||||
this.height = Math.min(maxHeight, natHeight);
|
this.height = Math.min(maxHeight, natHeight);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user