add "Persistent over toggles' setting
* Rename "Persistent" to "Persistent over restarts". * If disabled, "Persistent over toggles" has priority over "Persistent over restarts" and "Drawing on the desktop". Close issue #42.
This commit is contained in:
parent
072adde856
commit
23eea44661
7
area.js
7
area.js
|
|
@ -1064,7 +1064,7 @@ var DrawingArea = new Lang.Class({
|
|||
this.get_parent().set_background_color(this.reactive && this.hasBackground ? this.areaBackgroundColor : null);
|
||||
},
|
||||
|
||||
leaveDrawingMode: function(save) {
|
||||
leaveDrawingMode: function(save, erase) {
|
||||
if (this.stageKeyPressedHandler) {
|
||||
global.stage.disconnect(this.stageKeyPressedHandler);
|
||||
this.stageKeyPressedHandler = null;
|
||||
|
|
@ -1100,7 +1100,10 @@ var DrawingArea = new Lang.Class({
|
|||
|
||||
this.currentElement = null;
|
||||
this._stopTextCursorTimeout();
|
||||
this._redisplay();
|
||||
if (erase)
|
||||
this.erase();
|
||||
else
|
||||
this._redisplay();
|
||||
this.closeMenu();
|
||||
this.get_parent().set_background_color(null);
|
||||
Files.Images.reset();
|
||||
|
|
|
|||
52
extension.js
52
extension.js
|
|
@ -112,21 +112,42 @@ const AreaManager = new Lang.Class({
|
|||
this.indicatorSettingHandler = Me.settings.connect('changed::indicator-disabled', this.updateIndicator.bind(this));
|
||||
|
||||
this.desktopSettingHandler = Me.settings.connect('changed::drawing-on-desktop', this.onDesktopSettingChanged.bind(this));
|
||||
this.persistentSettingHandler = Me.settings.connect('changed::persistent-drawing', this.onPersistentSettingChanged.bind(this));
|
||||
this.persistentOverRestartsSettingHandler = Me.settings.connect('changed::persistent-over-restarts', this.onPersistentOverRestartsSettingChanged.bind(this));
|
||||
this.persistentOverTogglesSettingHandler = Me.settings.connect('changed::persistent-over-toggles', this.onPersistentOverTogglesSettingChanged.bind(this));
|
||||
},
|
||||
|
||||
get persistentOverToggles() {
|
||||
return Me.settings.get_boolean('persistent-over-toggles');
|
||||
},
|
||||
|
||||
get persistentOverRestarts() {
|
||||
return Me.settings.get_boolean('persistent-over-toggles') && Me.settings.get_boolean('persistent-over-restarts');
|
||||
},
|
||||
|
||||
get onDesktop() {
|
||||
return Me.settings.get_boolean('persistent-over-toggles') && Me.settings.get_boolean('drawing-on-desktop');
|
||||
},
|
||||
|
||||
onDesktopSettingChanged: function() {
|
||||
if (Me.settings.get_boolean("drawing-on-desktop"))
|
||||
if (this.onDesktop)
|
||||
this.areas.forEach(area => area.get_parent().show());
|
||||
else
|
||||
this.areas.forEach(area => area.get_parent().hide());
|
||||
},
|
||||
|
||||
onPersistentSettingChanged: function() {
|
||||
if (Me.settings.get_boolean('persistent-drawing'))
|
||||
onPersistentOverRestartsSettingChanged: function() {
|
||||
if (this.persistentOverRestarts)
|
||||
this.areas[Main.layoutManager.primaryIndex].syncPersistent();
|
||||
},
|
||||
|
||||
onPersistentOverTogglesSettingChanged: function() {
|
||||
if (!this.persistentOverToggles && !this.activeArea)
|
||||
this.eraseDrawings();
|
||||
|
||||
this.onPersistentOverRestartsSettingChanged();
|
||||
this.onDesktopSettingChanged();
|
||||
},
|
||||
|
||||
updateIndicator: function() {
|
||||
if (this.indicator) {
|
||||
this.indicator.disable();
|
||||
|
|
@ -147,13 +168,13 @@ const AreaManager = new Lang.Class({
|
|||
let monitor = this.monitors[i];
|
||||
let container = new St.Widget({ name: 'drawOnYourSreenContainer' + i });
|
||||
let helper = new Helper.DrawingHelper({ name: 'drawOnYourSreenHelper' + i }, monitor);
|
||||
let loadPersistent = i == Main.layoutManager.primaryIndex && Me.settings.get_boolean('persistent-drawing');
|
||||
let loadPersistent = i == Main.layoutManager.primaryIndex && this.persistentOverRestarts;
|
||||
let area = new Area.DrawingArea({ name: 'drawOnYourSreenArea' + i }, monitor, helper, loadPersistent);
|
||||
container.add_child(area);
|
||||
container.add_child(helper);
|
||||
|
||||
Main.layoutManager._backgroundGroup.insert_child_above(container, Main.layoutManager._bgManagers[i].backgroundActor);
|
||||
if (!Me.settings.get_boolean("drawing-on-desktop"))
|
||||
if (!this.onDesktop)
|
||||
container.hide();
|
||||
|
||||
container.set_position(monitor.x, monitor.y);
|
||||
|
|
@ -268,7 +289,7 @@ const AreaManager = new Lang.Class({
|
|||
eraseDrawings: function() {
|
||||
for (let i = 0; i < this.areas.length; i++)
|
||||
this.areas[i].erase();
|
||||
if (Me.settings.get_boolean('persistent-drawing'))
|
||||
if (this.persistentOverRestarts)
|
||||
this.areas[Main.layoutManager.primaryIndex].savePersistent();
|
||||
},
|
||||
|
||||
|
|
@ -321,7 +342,7 @@ const AreaManager = new Lang.Class({
|
|||
Main.uiGroup.set_child_at_index(Main.layoutManager.keyboardBox, this.oldKeyboardIndex);
|
||||
Main.uiGroup.remove_actor(activeContainer);
|
||||
Main.layoutManager._backgroundGroup.insert_child_above(activeContainer, Main.layoutManager._bgManagers[activeIndex].backgroundActor);
|
||||
if (!Me.settings.get_boolean("drawing-on-desktop"))
|
||||
if (!this.onDesktop)
|
||||
activeContainer.hide();
|
||||
} else {
|
||||
Main.layoutManager._backgroundGroup.remove_actor(activeContainer);
|
||||
|
|
@ -364,10 +385,11 @@ const AreaManager = new Lang.Class({
|
|||
toggleDrawing: function() {
|
||||
if (this.activeArea) {
|
||||
let activeIndex = this.areas.indexOf(this.activeArea);
|
||||
let save = activeIndex == Main.layoutManager.primaryIndex && Me.settings.get_boolean('persistent-drawing');
|
||||
let save = activeIndex == Main.layoutManager.primaryIndex && this.persistentOverRestarts;
|
||||
let erase = !this.persistentOverToggles;
|
||||
|
||||
this.showOsd(null, Files.Icons.LEAVE, _("Leaving drawing mode"));
|
||||
this.activeArea.leaveDrawingMode(save);
|
||||
this.activeArea.leaveDrawingMode(save, erase);
|
||||
if (this.hiddenList)
|
||||
this.togglePanelAndDockOpacity();
|
||||
|
||||
|
|
@ -513,9 +535,13 @@ const AreaManager = new Lang.Class({
|
|||
Me.settings.disconnect(this.desktopSettingHandler);
|
||||
this.desktopSettingHandler = null;
|
||||
}
|
||||
if (this.persistentSettingHandler) {
|
||||
Me.settings.disconnect(this.persistentSettingHandler);
|
||||
this.persistentSettingHandler = null;
|
||||
if (this.persistentOverTogglesSettingHandler) {
|
||||
Me.settings.disconnect(this.persistentOverTogglesSettingHandler);
|
||||
this.persistentOverTogglesSettingHandler = null;
|
||||
}
|
||||
if (this.persistentOverRestartsSettingHandler) {
|
||||
Me.settings.disconnect(this.persistentOverRestartsSettingHandler);
|
||||
this.persistentOverRestartsSettingHandler = null;
|
||||
}
|
||||
|
||||
if (this.activeArea)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Draw On Your Screen\n"
|
||||
"Report-Msgid-Bugs-To: https://framagit.org/abakkk/DrawOnYourScreen/issues\n"
|
||||
"POT-Creation-Date: 2020-09-16 21:11+0200\n"
|
||||
"POT-Creation-Date: 2020-09-17 13:38+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
@ -441,10 +441,16 @@ msgstr ""
|
|||
msgid "Disable on-screen notifications"
|
||||
msgstr ""
|
||||
|
||||
msgid "Persistent"
|
||||
msgid "Persistent over toggles"
|
||||
msgstr ""
|
||||
|
||||
msgid "Persistent drawing through session restart"
|
||||
msgid "Drawing remains when toggling drawing mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Persistent over restarts"
|
||||
msgstr ""
|
||||
|
||||
msgid "Drawing is automatically saved to a file"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter/leave drawing mode"
|
||||
|
|
|
|||
21
prefs.js
21
prefs.js
|
|
@ -395,18 +395,27 @@ const PrefsPage = new GObject.Class({
|
|||
listBox.add(globalKeybindingsRow);
|
||||
});
|
||||
|
||||
let persistentKey = schema.get_key('persistent-drawing');
|
||||
let persistentRow = new PrefRow({ label: persistentKey.get_summary(), desc: persistentKey.get_description() });
|
||||
let persistentSwitch = new Gtk.Switch();
|
||||
settings.bind('persistent-drawing', persistentSwitch, 'active', 0);
|
||||
persistentRow.addWidget(persistentSwitch, true);
|
||||
listBox.add(persistentRow);
|
||||
let persistentOverTogglesKey = schema.get_key('persistent-over-toggles');
|
||||
let persistentOverTogglesRow = new PrefRow({ label: persistentOverTogglesKey.get_summary(), desc: persistentOverTogglesKey.get_description() });
|
||||
let persistentOverTogglesSwitch = new Gtk.Switch();
|
||||
settings.bind('persistent-over-toggles', persistentOverTogglesSwitch, 'active', 0);
|
||||
persistentOverTogglesRow.addWidget(persistentOverTogglesSwitch, true);
|
||||
listBox.add(persistentOverTogglesRow);
|
||||
|
||||
let persistentOverRestartsKey = schema.get_key('persistent-over-restarts');
|
||||
let persistentOverRestartsRow = new PrefRow({ label: persistentOverRestartsKey.get_summary(), desc: persistentOverRestartsKey.get_description() });
|
||||
let persistentOverRestartsSwitch = new Gtk.Switch();
|
||||
settings.bind('persistent-over-restarts', persistentOverRestartsSwitch, 'active', 0);
|
||||
persistentOverRestartsRow.addWidget(persistentOverRestartsSwitch, true);
|
||||
persistentOverTogglesSwitch.bind_property('active', persistentOverRestartsSwitch, 'sensitive', GObject.BindingFlags.SYNC_CREATE);
|
||||
listBox.add(persistentOverRestartsRow);
|
||||
|
||||
let desktopKey = schema.get_key('drawing-on-desktop');
|
||||
let desktopRow = new PrefRow({ label: desktopKey.get_summary(), desc: desktopKey.get_description() });
|
||||
let desktopSwitch = new Gtk.Switch();
|
||||
settings.bind('drawing-on-desktop', desktopSwitch, 'active', 0);
|
||||
desktopRow.addWidget(desktopSwitch, true);
|
||||
persistentOverTogglesSwitch.bind_property('active', desktopSwitch, 'sensitive', GObject.BindingFlags.SYNC_CREATE);
|
||||
listBox.add(desktopRow);
|
||||
|
||||
let osdKey = schema.get_key('osd-disabled');
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -20,10 +20,15 @@
|
|||
<default>false</default>
|
||||
<summary>Disable on-screen notifications</summary>
|
||||
</key>
|
||||
<key type="b" name="persistent-drawing">
|
||||
<key type="b" name="persistent-over-toggles">
|
||||
<default>true</default>
|
||||
<summary>Persistent over toggles</summary>
|
||||
<description>Drawing remains when toggling drawing mode</description>
|
||||
</key>
|
||||
<key type="b" name="persistent-over-restarts">
|
||||
<default>false</default>
|
||||
<summary>Persistent</summary>
|
||||
<description>Persistent drawing through session restart</description>
|
||||
<summary>Persistent over restarts</summary>
|
||||
<description>Drawing is automatically saved to a file</description>
|
||||
</key>
|
||||
<key type="as" name="toggle-drawing">
|
||||
<default>["<Alt><Super>d"]</default>
|
||||
|
|
|
|||
Loading…
Reference in New Issue