feat: adding schema

This commit is contained in:
Lucas Oskorep
2024-11-08 03:00:45 -05:00
parent bc51fb2441
commit a2c9319d9e
+19 -9
View File
@@ -1,11 +1,21 @@
import Meta from '@girs/meta-15';
import St from 'gi://St'; import St from 'gi://St';
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js'; import {Extension, ExtensionMetadata} from 'resource:///org/gnome/shell/extensions/extension.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js'; import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import giCairo from "@girs/gjs/cairo";
import Content = giCairo.Content;
import {LayoutManager} from "@girs/gnome-shell/ui/layout";
export default class ActiveBorderExtension extends Extension { export default class ActiveBorderExtension extends Extension {
constructor(metadata) {
borderActor: Widget<LayoutManager, Content> | null;
focusWindowSignals: any[];
lastFocusedWindow: Meta.Window | null;
_focusSignal: number | null;
constructor(metadata: ExtensionMetadata) {
super(metadata); super(metadata);
// Initialize instance variables // Initialize instance variables
this.borderActor = null; this.borderActor = null;
@@ -25,7 +35,7 @@ export default class ActiveBorderExtension extends Extension {
} }
_updateBorder(window) { _updateBorder(window: Meta.Window) {
console.log("UPDATING THE BORDER") console.log("UPDATING THE BORDER")
// Clear the previous border if there's a last focused window // Clear the previous border if there's a last focused window
// if (this.lastFocusedWindow) { // if (this.lastFocusedWindow) {
@@ -39,7 +49,7 @@ export default class ActiveBorderExtension extends Extension {
} }
} }
_setBorder(window) { _setBorder(window: Meta.Window) {
console.log("SETTING THE BORDER") console.log("SETTING THE BORDER")
if (!window) return; if (!window) return;
@@ -61,16 +71,16 @@ export default class ActiveBorderExtension extends Extension {
Main.layoutManager.uiGroup.add_child(this.borderActor); Main.layoutManager.uiGroup.add_child(this.borderActor);
// Listen to window's changes in position and size // Listen to window's changes in position and size
this.focusWindowSignals.push(window.connect('position-changed', () => this._updateBorderPosition(window))); this.focusWindowSignals?.push(window.connect('position-changed', () => this._updateBorderPosition(window)));
this.focusWindowSignals.push(window.connect('size-changed', () => this._updateBorderPosition(window))); this.focusWindowSignals?.push(window.connect('size-changed', () => this._updateBorderPosition(window)));
this.focusWindowSignals.push(window.connect('unmanaged', () => this._clearBorder())); this.focusWindowSignals?.push(window.connect('unmanaged', () => this._clearBorder()));
this._updateBorderPosition(window); this._updateBorderPosition(window);
// Add the effect to the window // Add the effect to the window
// actor.add_effect_with_name('bor/der-effect', borderEffect); // actor.add_effect_with_name('bor/der-effect', borderEffect);
} }
_updateBorderPosition(window) { _updateBorderPosition(window: Meta.Window) {
if (!this.borderActor || !window) return; if (!this.borderActor || !window) return;
const rect = window.get_frame_rect(); const rect = window.get_frame_rect();
@@ -89,7 +99,7 @@ export default class ActiveBorderExtension extends Extension {
// Disconnect any signals connected to the window // Disconnect any signals connected to the window
if (this.lastFocusedWindow && this.focusWindowSignals.length > 0) { if (this.lastFocusedWindow && this.focusWindowSignals.length > 0) {
this.focusWindowSignals.forEach(signal => { this.focusWindowSignals.forEach(signal => {
this.lastFocusedWindow.disconnect(signal); this.lastFocusedWindow?.disconnect(signal);
}); });
this.focusWindowSignals = []; this.focusWindowSignals = [];
} }