[gnome] Update gnome extensions
This commit is contained in:
@ -831,6 +831,7 @@ export class Tree extends Node {
|
||||
|
||||
let metaWindow = next.nodeValue;
|
||||
if (!metaWindow) return null;
|
||||
const previousMetaWindow = this.extWm.focusMetaWindow;
|
||||
if (metaWindow.minimized) {
|
||||
next = this.focus(next, direction);
|
||||
} else {
|
||||
@ -838,14 +839,18 @@ export class Tree extends Node {
|
||||
metaWindow.focus(global.display.get_current_time());
|
||||
metaWindow.activate(global.display.get_current_time());
|
||||
|
||||
const monitorArea = metaWindow.get_work_area_current_monitor();
|
||||
const ptr = this.extWm.getPointer();
|
||||
const pointerInside = Utils.rectContainsPoint(monitorArea, [ptr[0], ptr[1]]);
|
||||
const monitorChanged =
|
||||
!!previousMetaWindow &&
|
||||
previousMetaWindow.get_monitor &&
|
||||
previousMetaWindow.get_monitor() !== metaWindow.get_monitor();
|
||||
|
||||
if (this.settings.get_boolean("move-pointer-focus-enabled")) {
|
||||
this.extWm.movePointerWith(next);
|
||||
} else {
|
||||
let monitorArea = metaWindow.get_work_area_current_monitor();
|
||||
let ptr = this.extWm.getPointer();
|
||||
if (!Utils.rectContainsPoint(monitorArea, [ptr[0], ptr[1]])) {
|
||||
this.extWm.movePointerWith(next);
|
||||
}
|
||||
} else if (!pointerInside) {
|
||||
this.extWm.movePointerWith(next, { force: monitorChanged });
|
||||
}
|
||||
}
|
||||
return next;
|
||||
|
||||
@ -67,8 +67,7 @@ export class WindowManager extends GObject.Object {
|
||||
this.prefsTitle = `Forge ${_("Settings")} - ${
|
||||
!production ? "DEV" : `${PACKAGE_VERSION}-${ext.metadata.version}`
|
||||
}`;
|
||||
this.windowProps = this.ext.configMgr.windowProps;
|
||||
this.windowProps.overrides = this.windowProps.overrides.filter((override) => !override.wmId);
|
||||
this.reloadWindowOverrides();
|
||||
this._kbd = this.ext.keybindings;
|
||||
this._tree = new Tree(this);
|
||||
this.eventQueue = new Queue();
|
||||
@ -98,11 +97,12 @@ export class WindowManager extends GObject.Object {
|
||||
}
|
||||
|
||||
addFloatOverride(metaWindow, withWmId) {
|
||||
let overrides = this.windowProps.overrides;
|
||||
let currentProps = this.ext.configMgr.windowProps;
|
||||
let overrides = currentProps.overrides;
|
||||
let wmClass = metaWindow.get_wm_class();
|
||||
let wmId = metaWindow.get_id();
|
||||
|
||||
for (let override in overrides) {
|
||||
for (let override of overrides) {
|
||||
// if the window is already floating
|
||||
if (override.wmClass === wmClass && override.mode === "float" && !override.wmTitle) return;
|
||||
}
|
||||
@ -111,12 +111,15 @@ export class WindowManager extends GObject.Object {
|
||||
wmId: withWmId ? wmId : undefined,
|
||||
mode: "float",
|
||||
});
|
||||
this.windowProps.overrides = overrides;
|
||||
this.ext.configMgr.windowProps = this.windowProps;
|
||||
|
||||
// Save the updated overrides back to the ConfigManager
|
||||
currentProps.overrides = overrides;
|
||||
this.ext.configMgr.windowProps = currentProps;
|
||||
}
|
||||
|
||||
removeFloatOverride(metaWindow, withWmId) {
|
||||
let overrides = this.windowProps.overrides;
|
||||
let currentProps = this.ext.configMgr.windowProps;
|
||||
let overrides = currentProps.overrides;
|
||||
let wmClass = metaWindow.get_wm_class();
|
||||
let wmId = metaWindow.get_id();
|
||||
overrides = overrides.filter(
|
||||
@ -129,8 +132,9 @@ export class WindowManager extends GObject.Object {
|
||||
)
|
||||
);
|
||||
|
||||
this.windowProps.overrides = overrides;
|
||||
this.ext.configMgr.windowProps = this.windowProps;
|
||||
// Save the updated overrides back to the ConfigManager
|
||||
currentProps.overrides = overrides;
|
||||
this.ext.configMgr.windowProps = currentProps;
|
||||
}
|
||||
|
||||
toggleFloatingMode(action, metaWindow) {
|
||||
@ -285,6 +289,11 @@ export class WindowManager extends GObject.Object {
|
||||
|
||||
settings.connect("changed", (_, settingName) => {
|
||||
switch (settingName) {
|
||||
case "window-overrides-reload-trigger":
|
||||
// Reload window overrides when triggered by preferences
|
||||
// This prevents the main extension from overwriting changes made by preferences
|
||||
this.reloadWindowOverrides();
|
||||
break;
|
||||
case "focus-border-toggle":
|
||||
this.renderTree(settingName);
|
||||
break;
|
||||
@ -951,9 +960,16 @@ export class WindowManager extends GObject.Object {
|
||||
move(metaWindow, rect) {
|
||||
if (!metaWindow) return;
|
||||
if (metaWindow.grabbed) return;
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.HORIZONTAL);
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.VERTICAL);
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.BOTH);
|
||||
try {
|
||||
// GNOME 49+
|
||||
metaWindow.set_unmaximize_flags(Meta.MaximizeFlags.BOTH);
|
||||
metaWindow.unmaximize();
|
||||
} catch (e) {
|
||||
// pre-49 fallback
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.HORIZONTAL);
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.VERTICAL);
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.BOTH);
|
||||
}
|
||||
|
||||
let windowActor = metaWindow.get_compositor_private();
|
||||
if (!windowActor) return;
|
||||
@ -1235,7 +1251,13 @@ export class WindowManager extends GObject.Object {
|
||||
let tilingModeEnabled = this.ext.settings.get_boolean("tiling-mode-enabled");
|
||||
let gap = this.calculateGaps(nodeWindow);
|
||||
let maximized = () => {
|
||||
return metaWindow.get_maximized() === 3 || metaWindow.is_fullscreen() || gap === 0;
|
||||
try {
|
||||
// GNOME 49+
|
||||
return metaWindow.is_maximized() || metaWindow.is_fullscreen() || gap === 0;
|
||||
} catch (e) {
|
||||
// pre-49 fallback
|
||||
return metaWindow.get_maximized() === 3 || metaWindow.is_fullscreen() || gap === 0;
|
||||
}
|
||||
};
|
||||
let monitorCount = global.display.get_n_monitors();
|
||||
let tiledChildren = this.tree.getTiledChildren(nodeWindow.parentNode.childNodes);
|
||||
@ -1287,7 +1309,18 @@ export class WindowManager extends GObject.Object {
|
||||
}
|
||||
}
|
||||
|
||||
if (gap === 0 || metaWindow.get_maximized() === 1 || metaWindow.get_maximized() === 2) {
|
||||
if (
|
||||
gap === 0 ||
|
||||
(() => {
|
||||
try {
|
||||
// GNOME 49+
|
||||
return metaWindow.is_maximized();
|
||||
} catch (e) {
|
||||
// pre-49 fallback
|
||||
return metaWindow.get_maximized() === 1 || metaWindow.get_maximized() === 2;
|
||||
}
|
||||
})()
|
||||
) {
|
||||
inset = 0;
|
||||
}
|
||||
|
||||
@ -1506,9 +1539,16 @@ export class WindowManager extends GObject.Object {
|
||||
{
|
||||
name: "window-create-queue",
|
||||
callback: () => {
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.HORIZONTAL);
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.VERTICAL);
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.BOTH);
|
||||
try {
|
||||
// GNOME 49+
|
||||
metaWindow.set_unmaximize_flags(Meta.MaximizeFlags.BOTH);
|
||||
metaWindow.unmaximize();
|
||||
} catch (e) {
|
||||
// pre-49 fallback
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.HORIZONTAL);
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.VERTICAL);
|
||||
metaWindow.unmaximize(Meta.MaximizeFlags.BOTH);
|
||||
}
|
||||
this.renderTree("window-create", true);
|
||||
},
|
||||
},
|
||||
@ -1727,7 +1767,17 @@ export class WindowManager extends GObject.Object {
|
||||
this._handleMoving(focusNodeWindow);
|
||||
}
|
||||
} else {
|
||||
if (focusMetaWindow.get_maximized() === 0) {
|
||||
if (
|
||||
(() => {
|
||||
try {
|
||||
// GNOME 49+
|
||||
return !focusMetaWindow.is_maximized();
|
||||
} catch (e) {
|
||||
// pre-49 fallback
|
||||
return focusMetaWindow.get_maximized() === 0;
|
||||
}
|
||||
})()
|
||||
) {
|
||||
this.renderTree(from);
|
||||
}
|
||||
}
|
||||
@ -1765,9 +1815,18 @@ export class WindowManager extends GObject.Object {
|
||||
let monWsNoMaxWindows = activeWsNode.getNodeByType(NODE_TYPES.MONITOR).filter((monitor) => {
|
||||
return (
|
||||
monitor.getNodeByType(NODE_TYPES.WINDOW).filter((w) => {
|
||||
return (
|
||||
w.nodeValue.get_maximized() === Meta.MaximizeFlags.BOTH || w.nodeValue.is_fullscreen()
|
||||
);
|
||||
return (() => {
|
||||
try {
|
||||
// GNOME 49+
|
||||
return w.nodeValue.is_maximized() || w.nodeValue.is_fullscreen();
|
||||
} catch (e) {
|
||||
// pre-49 fallback
|
||||
return (
|
||||
w.nodeValue.get_maximized() === Meta.MaximizeFlags.BOTH ||
|
||||
w.nodeValue.is_fullscreen()
|
||||
);
|
||||
}
|
||||
})();
|
||||
}).length === 0
|
||||
);
|
||||
});
|
||||
@ -1814,9 +1873,10 @@ export class WindowManager extends GObject.Object {
|
||||
* This is useful for making sure that Forge calculates the attachNode
|
||||
* properly
|
||||
*/
|
||||
movePointerWith(nodeWindow) {
|
||||
movePointerWith(nodeWindow, { force = false } = {}) {
|
||||
if (!nodeWindow || !nodeWindow._data) return;
|
||||
if (this.ext.settings.get_boolean("move-pointer-focus-enabled")) {
|
||||
const shouldWarp = force || this.ext.settings.get_boolean("move-pointer-focus-enabled");
|
||||
if (shouldWarp) {
|
||||
this.storePointerLastPosition(this.lastFocusedWindow);
|
||||
if (this.canMovePointerInsideNodeWindow(nodeWindow)) {
|
||||
this.warpPointerToNodeWindow(nodeWindow);
|
||||
@ -2410,7 +2470,17 @@ export class WindowManager extends GObject.Object {
|
||||
}
|
||||
this._grabCleanup(focusNodeWindow);
|
||||
|
||||
if (focusMetaWindow.get_maximized() === 0) {
|
||||
if (
|
||||
(() => {
|
||||
try {
|
||||
// GNOME 49+
|
||||
return !focusMetaWindow.is_maximized();
|
||||
} catch (e) {
|
||||
// pre-49 fallback
|
||||
return focusMetaWindow.get_maximized() === 0;
|
||||
}
|
||||
})()
|
||||
) {
|
||||
this.renderTree("grab-op-end");
|
||||
}
|
||||
|
||||
@ -2708,6 +2778,20 @@ export class WindowManager extends GObject.Object {
|
||||
return `mo${display.get_current_monitor()}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reload window overrides from the configuration file
|
||||
* This is called when the preferences page modifies the overrides
|
||||
*/
|
||||
reloadWindowOverrides() {
|
||||
// Get fresh data from the ConfigManager
|
||||
const freshProps = this.ext.configMgr.windowProps;
|
||||
if (freshProps) {
|
||||
this.windowProps = freshProps;
|
||||
this.windowProps.overrides = this.windowProps.overrides.filter((override) => !override.wmId);
|
||||
Logger.info(`Reloaded ${this.windowProps.overrides.length} window overrides from file`);
|
||||
}
|
||||
}
|
||||
|
||||
floatAllWindows() {
|
||||
this.tree.getNodeByType(NODE_TYPES.WINDOW).forEach((w) => {
|
||||
if (w.isFloat()) {
|
||||
|
||||
@ -8,7 +8,6 @@ import { gettext as _ } from "resource:///org/gnome/Shell/Extensions/js/extensio
|
||||
|
||||
// Shared state
|
||||
import { ConfigManager } from "../shared/settings.js";
|
||||
|
||||
import { PrefsThemeManager } from "./prefs-theme-manager.js";
|
||||
|
||||
// Prefs UI
|
||||
@ -42,8 +41,8 @@ export class AppearancePage extends PreferencesPage {
|
||||
constructor({ settings, dir }) {
|
||||
super({ title: _("Appearance"), icon_name: "brush-symbolic" });
|
||||
this.settings = settings;
|
||||
this.configMgr = new ConfigManager({ dir });
|
||||
this.themeMgr = new PrefsThemeManager(this);
|
||||
let configMgr = new ConfigManager({ dir });
|
||||
this.themeMgr = new PrefsThemeManager({ configMgr: configMgr, settings: settings });
|
||||
this.add_group({
|
||||
title: _("Gaps"),
|
||||
description: _("Change the gap size between windows"),
|
||||
|
||||
@ -0,0 +1,82 @@
|
||||
// Gtk imports
|
||||
import Gtk from "gi://Gtk";
|
||||
import GObject from "gi://GObject";
|
||||
|
||||
// Gnome imports
|
||||
import { gettext as _ } from "resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js";
|
||||
|
||||
// Extension imports
|
||||
import { PreferencesPage, RemoveItemRow, ResetButton } from "./widgets.js";
|
||||
import { ConfigManager } from "../shared/settings.js";
|
||||
|
||||
export class FloatingPage extends PreferencesPage {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor({ settings, dir }) {
|
||||
super({ title: _("Windows"), icon_name: "window-symbolic" });
|
||||
|
||||
this.settings = settings;
|
||||
this.configMgr = new ConfigManager({ dir });
|
||||
|
||||
let overrides = this.configMgr.windowProps.overrides;
|
||||
this.rows = this.loadItemsFromConfig(overrides);
|
||||
|
||||
this.floatingWindowGroup = this.add_group({
|
||||
title: _("Floating Windows"),
|
||||
description: _("Windows that will not be tiled"),
|
||||
header_suffix: new ResetButton({ onReset: () => this.onResetHandler() }),
|
||||
children: this.rows,
|
||||
});
|
||||
}
|
||||
|
||||
loadItemsFromConfig(overrides) {
|
||||
let children = [];
|
||||
for (let override of overrides) {
|
||||
if (override.mode === "float") {
|
||||
let itemrow = new RemoveItemRow({
|
||||
title: override.wmTitle ?? override.wmClass,
|
||||
subtitle: override.wmClass,
|
||||
onRemove: (item, parent) => this.onRemoveHandler(item, parent),
|
||||
});
|
||||
children.push(itemrow);
|
||||
}
|
||||
}
|
||||
return children;
|
||||
}
|
||||
|
||||
onRemoveHandler(item, parent) {
|
||||
this.floatingWindowGroup.remove(parent);
|
||||
this.rows = this.rows.filter((row) => row != parent);
|
||||
const existing = this.configMgr.windowProps.overrides;
|
||||
const modified = existing.filter((row) => item != row.wmClass);
|
||||
this.saveOverrides(modified);
|
||||
}
|
||||
|
||||
saveOverrides(modified) {
|
||||
if (modified) {
|
||||
this.configMgr.windowProps = {
|
||||
overrides: modified,
|
||||
};
|
||||
// Signal the main extension to reload floating overrides
|
||||
const changed = Math.floor(Date.now() / 1000);
|
||||
this.settings.set_uint("window-overrides-reload-trigger", changed);
|
||||
}
|
||||
}
|
||||
|
||||
onResetHandler() {
|
||||
const defaultWindowProps = this.configMgr.loadDefaultWindowConfigContents();
|
||||
const original = defaultWindowProps.overrides;
|
||||
this.saveOverrides(original);
|
||||
|
||||
for (const child of this.rows) {
|
||||
this.floatingWindowGroup.remove(child);
|
||||
}
|
||||
|
||||
this.rows = this.loadItemsFromConfig(original);
|
||||
for (const item of this.rows) {
|
||||
this.floatingWindowGroup.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -17,6 +17,7 @@ import { PACKAGE_VERSION } from "resource:///org/gnome/Shell/Extensions/js/misc/
|
||||
import { developers } from "./metadata.js";
|
||||
|
||||
function showAboutWindow(parent, { version, description: comments }) {
|
||||
version = version ?? "development";
|
||||
const abt = new Adw.AboutWindow({
|
||||
...(parent && { transient_for: parent }),
|
||||
// TODO: fetch these from github at build time
|
||||
@ -136,7 +137,7 @@ export class SettingsPage extends PreferencesPage {
|
||||
title: _("Logger"),
|
||||
children: [
|
||||
new DropDownRow({
|
||||
title: _("Logger Level"),
|
||||
title: _("Log level"),
|
||||
settings,
|
||||
bind: "log-level",
|
||||
items: Object.entries(Logger.LOG_LEVELS).map(([name, id]) => ({ id, name })),
|
||||
|
||||
@ -22,6 +22,7 @@ export class PreferencesPage extends Adw.PreferencesPage {
|
||||
for (const child of children) group.add(child);
|
||||
if (header_suffix) group.set_header_suffix(header_suffix);
|
||||
this.add(group);
|
||||
return group;
|
||||
}
|
||||
}
|
||||
|
||||
@ -87,7 +88,7 @@ export class SpinButtonRow extends Adw.ActionRow {
|
||||
}) {
|
||||
super({ title, subtitle });
|
||||
const gspin = Gtk.SpinButton.new_with_range(low, high, step);
|
||||
gspin.valign = Gtk.Align.CENTER;
|
||||
gspin.xalign = 1;
|
||||
if (bind && settings) {
|
||||
settings.bind(bind, gspin, "value", Gio.SettingsBindFlags.DEFAULT);
|
||||
} else if (init) {
|
||||
@ -97,6 +98,7 @@ export class SpinButtonRow extends Adw.ActionRow {
|
||||
});
|
||||
}
|
||||
this.add_suffix(gspin);
|
||||
this.set_css_classes(["spin"]);
|
||||
this.activatable_widget = gspin;
|
||||
}
|
||||
}
|
||||
@ -211,15 +213,32 @@ export class DropDownRow extends Adw.ActionRow {
|
||||
}
|
||||
}
|
||||
|
||||
export class ClearButton extends Gtk.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
constructor({ settings = undefined, bind = undefined, onClear }) {
|
||||
super({
|
||||
icon_name: "edit-clear-symbolic",
|
||||
tooltip_text: _("Clear shortcut"),
|
||||
css_classes: ["flat", "circular"],
|
||||
valign: Gtk.Align.CENTER,
|
||||
});
|
||||
this.connect("clicked", () => {
|
||||
onClear?.();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export class ResetButton extends Gtk.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor({ settings = undefined, bind = undefined, onReset }) {
|
||||
super({
|
||||
icon_name: "edit-undo-symbolic",
|
||||
tooltip_text: _("Reset"),
|
||||
tooltip_text: _("Reset to default"),
|
||||
css_classes: ["flat", "circular"],
|
||||
valign: Gtk.Align.CENTER,
|
||||
});
|
||||
this.connect("clicked", () => {
|
||||
@ -229,6 +248,23 @@ export class ResetButton extends Gtk.Button {
|
||||
}
|
||||
}
|
||||
|
||||
export class RemoveButton extends Gtk.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
constructor({ item, parent, onRemove }) {
|
||||
super({
|
||||
icon_name: "edit-delete-symbolic",
|
||||
tooltip_text: _("Remove Item"),
|
||||
css_classes: ["flat", "circular"],
|
||||
valign: Gtk.Align.CENTER,
|
||||
});
|
||||
this.connect("clicked", () => {
|
||||
onRemove?.(item, parent);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export class EntryRow extends Adw.EntryRow {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
@ -247,6 +283,15 @@ export class EntryRow extends Adw.EntryRow {
|
||||
});
|
||||
const current = map ? map.from(settings, bind) : settings.get_string(bind);
|
||||
this.set_text(current ?? "");
|
||||
this.add_suffix(
|
||||
new ClearButton({
|
||||
settings,
|
||||
bind,
|
||||
onClear: () => {
|
||||
this.set_text("");
|
||||
},
|
||||
})
|
||||
);
|
||||
this.add_suffix(
|
||||
new ResetButton({
|
||||
settings,
|
||||
@ -266,7 +311,7 @@ export class RadioRow extends Adw.ActionRow {
|
||||
|
||||
static orientation = Gtk.Orientation.HORIZONTAL;
|
||||
|
||||
static spacing = 10;
|
||||
static spacing = 3;
|
||||
|
||||
static valign = Gtk.Align.CENTER;
|
||||
|
||||
@ -281,6 +326,7 @@ export class RadioRow extends Adw.ActionRow {
|
||||
const toggle = new Gtk.ToggleButton({ label, ...(group && { group }) });
|
||||
group ||= toggle;
|
||||
toggle.active = key === current;
|
||||
toggle.set_css_classes(["flat"]);
|
||||
toggle.connect("clicked", () => {
|
||||
if (toggle.active) {
|
||||
settings.set_string(bind, labels[toggle.label]);
|
||||
@ -291,3 +337,20 @@ export class RadioRow extends Adw.ActionRow {
|
||||
this.add_suffix(hbox);
|
||||
}
|
||||
}
|
||||
|
||||
export class RemoveItemRow extends Adw.ActionRow {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor({ title, subtitle = "", onRemove = undefined }) {
|
||||
super({ title, subtitle });
|
||||
const rmbutton = new RemoveButton({
|
||||
item: subtitle,
|
||||
parent: this,
|
||||
onRemove: onRemove,
|
||||
});
|
||||
|
||||
this.add_suffix(rmbutton);
|
||||
}
|
||||
}
|
||||
|
||||
@ -51,7 +51,6 @@ export class ConfigManager extends GObject.Object {
|
||||
if (defaultStylesheetFile.query_exists(null)) {
|
||||
return defaultStylesheetFile;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -75,7 +74,17 @@ export class ConfigManager extends GObject.Object {
|
||||
if (defaultWindowConfigFile.query_exists(null)) {
|
||||
return defaultWindowConfigFile;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
loadDefaultWindowConfigContents() {
|
||||
const defaultSettingFile = this.defaultWindowConfigFile;
|
||||
if (defaultSettingFile) {
|
||||
const contents = this.loadFileContents(defaultSettingFile);
|
||||
if (contents) {
|
||||
return JSON.parse(contents);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -119,7 +128,8 @@ export class ConfigManager extends GObject.Object {
|
||||
get windowProps() {
|
||||
let windowConfigFile = this.windowConfigFile;
|
||||
let windowProps = null;
|
||||
if (!windowConfigFile || !production) {
|
||||
// if (!windowConfigFile || !production) {
|
||||
if (!windowConfigFile) {
|
||||
windowConfigFile = this.defaultWindowConfigFile;
|
||||
}
|
||||
|
||||
@ -134,7 +144,8 @@ export class ConfigManager extends GObject.Object {
|
||||
|
||||
set windowProps(props) {
|
||||
let windowConfigFile = this.windowConfigFile;
|
||||
if (!windowConfigFile || !production) {
|
||||
// if (!windowConfigFile || !production) {
|
||||
if (!windowConfigFile) {
|
||||
windowConfigFile = this.defaultWindowConfigFile;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user