Magnifier: Restore crosshairs
This patch is to restore broken crosshairs so they may be used once more https://bugzilla.gnome.org/show_bug.cgi?id=723709 magnifier.js
This commit is contained in:
parent
5451751513
commit
8d8d1cfdd6
@ -57,20 +57,6 @@ const Magnifier = new Lang.Class({
|
|||||||
// Magnifier is a manager of ZoomRegions.
|
// Magnifier is a manager of ZoomRegions.
|
||||||
this._zoomRegions = [];
|
this._zoomRegions = [];
|
||||||
|
|
||||||
// Export to dbus.
|
|
||||||
magDBusService = new MagnifierDBus.ShellMagnifier();
|
|
||||||
|
|
||||||
let showAtLaunch = this._settingsInit();
|
|
||||||
this.setActive(showAtLaunch);
|
|
||||||
},
|
|
||||||
|
|
||||||
_initialize: function() {
|
|
||||||
if (this._initialized)
|
|
||||||
return;
|
|
||||||
this._initialized = true;
|
|
||||||
|
|
||||||
this._settingsInitLate();
|
|
||||||
|
|
||||||
// Create small clutter tree for the magnified mouse.
|
// Create small clutter tree for the magnified mouse.
|
||||||
let cursorTracker = Meta.CursorTracker.get_for_screen(global.screen);
|
let cursorTracker = Meta.CursorTracker.get_for_screen(global.screen);
|
||||||
this._mouseSprite = new Clutter.Texture();
|
this._mouseSprite = new Clutter.Texture();
|
||||||
@ -86,11 +72,15 @@ const Magnifier = new Lang.Class({
|
|||||||
|
|
||||||
let aZoomRegion = new ZoomRegion(this, this._cursorRoot);
|
let aZoomRegion = new ZoomRegion(this, this._cursorRoot);
|
||||||
this._zoomRegions.push(aZoomRegion);
|
this._zoomRegions.push(aZoomRegion);
|
||||||
this._settingsInitRegion(aZoomRegion);
|
let showAtLaunch = this._settingsInit(aZoomRegion);
|
||||||
aZoomRegion.scrollContentsTo(this.xMouse, this.yMouse);
|
aZoomRegion.scrollContentsTo(this.xMouse, this.yMouse);
|
||||||
|
|
||||||
cursorTracker.connect('cursor-changed', Lang.bind(this, this._updateMouseSprite));
|
cursorTracker.connect('cursor-changed', Lang.bind(this, this._updateMouseSprite));
|
||||||
this._cursorTracker = cursorTracker;
|
this._cursorTracker = cursorTracker;
|
||||||
|
|
||||||
|
// Export to dbus.
|
||||||
|
magDBusService = new MagnifierDBus.ShellMagnifier();
|
||||||
|
this.setActive(showAtLaunch);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -115,12 +105,6 @@ const Magnifier = new Lang.Class({
|
|||||||
* @activate: Boolean to activate or de-activate the magnifier.
|
* @activate: Boolean to activate or de-activate the magnifier.
|
||||||
*/
|
*/
|
||||||
setActive: function(activate) {
|
setActive: function(activate) {
|
||||||
if (activate == this.isActive())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (activate)
|
|
||||||
this._initialize();
|
|
||||||
|
|
||||||
this._zoomRegions.forEach (function(zoomRegion, index, array) {
|
this._zoomRegions.forEach (function(zoomRegion, index, array) {
|
||||||
zoomRegion.setActive(activate);
|
zoomRegion.setActive(activate);
|
||||||
});
|
});
|
||||||
@ -452,7 +436,11 @@ const Magnifier = new Lang.Class({
|
|||||||
this._mouseSprite.set_anchor_point(xHot, yHot);
|
this._mouseSprite.set_anchor_point(xHot, yHot);
|
||||||
},
|
},
|
||||||
|
|
||||||
_settingsInitRegion: function(zoomRegion) {
|
_settingsInit: function(zoomRegion) {
|
||||||
|
this._appSettings = new Gio.Settings({ schema: APPLICATIONS_SCHEMA });
|
||||||
|
this._settings = new Gio.Settings({ schema: MAGNIFIER_SCHEMA });
|
||||||
|
|
||||||
|
if (zoomRegion) {
|
||||||
// Mag factor is accurate to two decimal places.
|
// Mag factor is accurate to two decimal places.
|
||||||
let aPref = parseFloat(this._settings.get_double(MAG_FACTOR_KEY).toFixed(2));
|
let aPref = parseFloat(this._settings.get_double(MAG_FACTOR_KEY).toFixed(2));
|
||||||
if (aPref != 0.0)
|
if (aPref != 0.0)
|
||||||
@ -495,25 +483,17 @@ const Magnifier = new Lang.Class({
|
|||||||
bc.g = this._settings.get_double(CONTRAST_GREEN_KEY);
|
bc.g = this._settings.get_double(CONTRAST_GREEN_KEY);
|
||||||
bc.b = this._settings.get_double(CONTRAST_BLUE_KEY);
|
bc.b = this._settings.get_double(CONTRAST_BLUE_KEY);
|
||||||
zoomRegion.setContrast(bc);
|
zoomRegion.setContrast(bc);
|
||||||
},
|
}
|
||||||
|
|
||||||
_settingsInit: function() {
|
|
||||||
this._appSettings = new Gio.Settings({ schema: APPLICATIONS_SCHEMA });
|
|
||||||
this._settings = new Gio.Settings({ schema: MAGNIFIER_SCHEMA });
|
|
||||||
|
|
||||||
this._appSettings.connect('changed::' + SHOW_KEY, Lang.bind(this, function() {
|
|
||||||
let active = this._appSettings.get_boolean(SHOW_KEY);
|
|
||||||
this.setActive(active);
|
|
||||||
}));
|
|
||||||
|
|
||||||
return this._appSettings.get_boolean(SHOW_KEY);
|
|
||||||
},
|
|
||||||
|
|
||||||
_settingsInitLate: function() {
|
|
||||||
let showCrosshairs = this._settings.get_boolean(SHOW_CROSS_HAIRS_KEY);
|
let showCrosshairs = this._settings.get_boolean(SHOW_CROSS_HAIRS_KEY);
|
||||||
this.addCrosshairs();
|
this.addCrosshairs();
|
||||||
this.setCrosshairsVisible(showCrosshairs);
|
this.setCrosshairsVisible(showCrosshairs);
|
||||||
|
|
||||||
|
this._appSettings.connect('changed::' + SHOW_KEY,
|
||||||
|
Lang.bind(this, function() {
|
||||||
|
this.setActive(this._appSettings.get_boolean(SHOW_KEY));
|
||||||
|
}));
|
||||||
|
|
||||||
this._settings.connect('changed::' + SCREEN_POSITION_KEY,
|
this._settings.connect('changed::' + SCREEN_POSITION_KEY,
|
||||||
Lang.bind(this, this._updateScreenPosition));
|
Lang.bind(this, this._updateScreenPosition));
|
||||||
this._settings.connect('changed::' + MAG_FACTOR_KEY,
|
this._settings.connect('changed::' + MAG_FACTOR_KEY,
|
||||||
@ -577,6 +557,7 @@ const Magnifier = new Lang.Class({
|
|||||||
Lang.bind(this, function() {
|
Lang.bind(this, function() {
|
||||||
this.setCrosshairsClip(this._settings.get_boolean(CROSS_HAIRS_CLIP_KEY));
|
this.setCrosshairsClip(this._settings.get_boolean(CROSS_HAIRS_CLIP_KEY));
|
||||||
}));
|
}));
|
||||||
|
return this._appSettings.get_boolean(SHOW_KEY);
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateScreenPosition: function() {
|
_updateScreenPosition: function() {
|
||||||
|
Loading…
Reference in New Issue
Block a user