layout: Set high dpi scaling factor
Set the scaling factor when the dpi is above the hidpi threshold. https://bugzilla.gnome.org/show_bug.cgi?id=705410
This commit is contained in:
parent
6f87b01c47
commit
0f3c129b95
@ -31,6 +31,9 @@ const MESSAGE_TRAY_PRESSURE_TIMEOUT = 1000; // ms
|
|||||||
const HOT_CORNER_PRESSURE_THRESHOLD = 100; // pixels
|
const HOT_CORNER_PRESSURE_THRESHOLD = 100; // pixels
|
||||||
const HOT_CORNER_PRESSURE_TIMEOUT = 1000; // ms
|
const HOT_CORNER_PRESSURE_TIMEOUT = 1000; // ms
|
||||||
|
|
||||||
|
// We scale up when the dpi is higher then this (same value used by gsd)
|
||||||
|
const HIGH_DPI_LIMIT = 192;
|
||||||
|
|
||||||
function isPopupMetaWindow(actor) {
|
function isPopupMetaWindow(actor) {
|
||||||
switch(actor.meta_window.get_window_type()) {
|
switch(actor.meta_window.get_window_type()) {
|
||||||
case Meta.WindowType.DROPDOWN_MENU:
|
case Meta.WindowType.DROPDOWN_MENU:
|
||||||
@ -486,8 +489,19 @@ const LayoutManager = new Lang.Class({
|
|||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_updateScaling: function() {
|
||||||
|
let primary = this.monitors[this.primaryIndex];
|
||||||
|
let dpi_x = primary.width / (global.gdk_screen.get_monitor_width_mm(this.primaryIndex) / 25.4);
|
||||||
|
let dpi_y = primary.height / (global.gdk_screen.get_monitor_height_mm(this.primaryIndex) / 25.4);
|
||||||
|
if (dpi_x > HIGH_DPI_LIMIT && dpi_y > HIGH_DPI_LIMIT)
|
||||||
|
St.ThemeContext.get_for_stage(global.stage).scale_factor = 2;
|
||||||
|
else
|
||||||
|
St.ThemeContext.get_for_stage(global.stage).scale_factor = 1;
|
||||||
|
},
|
||||||
|
|
||||||
_monitorsChanged: function() {
|
_monitorsChanged: function() {
|
||||||
this._updateMonitors();
|
this._updateMonitors();
|
||||||
|
this._updateScaling();
|
||||||
this._updateBoxes();
|
this._updateBoxes();
|
||||||
this._updateTrayBarrier();
|
this._updateTrayBarrier();
|
||||||
this._updateHotCorners();
|
this._updateHotCorners();
|
||||||
|
Loading…
Reference in New Issue
Block a user