panelMenu: consider scale factor when setting max-height
Since the workarea and margins are both in pysical pixels dimensions (we fetch margins from Clutter, not from the theme), but the CSS expects logical (scaled) pixels, unless we consider the scale factor when setting max-height, it won't work on a HiDpi display. This fixes missing scrollbars when the calendar popup is full on HiDpi displays. https://bugzilla.gnome.org/show_bug.cgi?id=753305
This commit is contained in:
parent
65d93eacd3
commit
cad5e06041
@ -174,8 +174,14 @@ const Button = new Lang.Class({
|
||||
// menu is higher then the screen; it's useful if part of the menu is
|
||||
// scrollable so the minimum height is smaller than the natural height
|
||||
let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
|
||||
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
|
||||
let verticalMargins = this.menu.actor.margin_top + this.menu.actor.margin_bottom;
|
||||
this.menu.actor.style = ('max-height: ' + Math.round(workArea.height - verticalMargins) + 'px;');
|
||||
|
||||
// The workarea and margin dimensions are in physical pixels, but CSS
|
||||
// measures are in logical pixels, so make sure to consider the scale
|
||||
// factor when computing max-height
|
||||
let maxHeight = Math.round((workArea.height - verticalMargins) / scaleFactor);
|
||||
this.menu.actor.style = ('max-height: %spx;').format(maxHeight);
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
|
Loading…
Reference in New Issue
Block a user