Replacement of Alt-Tab, iterates through windows in a cover-flow manner.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
Version | Status |
---|---|
76 | Active |
75 | Inactive |
74 | Rejected |
73 | Inactive |
72 | Active |
71 | Active |
70 | Active |
69 | Active |
68 | Active |
67 | Rejected |
66 | Rejected |
65 | Active |
64 | Inactive |
63 | Inactive |
62 | Inactive |
61 | Active |
60 | Active |
59 | Active |
58 | Active |
57 | Active |
56 | Rejected |
55 | Active |
54 | Active |
53 | Active |
52 | Active |
51 | Active |
50 | Rejected |
49 | Active |
48 | Active |
47 | Active |
46 | Active |
45 | Active |
44 | Active |
43 | Rejected |
42 | Active |
41 | Active |
40 | Active |
39 | Rejected |
38 | Active |
37 | Active |
36 | Active |
35 | Rejected |
34 | Rejected |
33 | Active |
32 | Active |
31 | Active |
30 | Active |
29 | Active |
28 | Active |
27 | Rejected |
26 | Active |
25 | Active |
24 | Active |
23 | Rejected |
22 | Active |
21 | Active |
20 | Active |
19 | Active |
18 | Active |
17 | Active |
16 | Active |
15 | Active |
14 | Active |
13 | Active |
12 | Active |
11 | Active |
10 | Rejected |
9 | Rejected |
8 | Active |
7 | Active |
6 | Inactive |
5 | Inactive |
4 | Rejected |
3 | Inactive |
2 | Inactive |
1 | Rejected |
You cannot create objects in global scope which is the same as init (line 110 prefs.js): https://gjs.guide/extensions/review-guidelines/review-guidelines.html#only-use-init-for-initialization
Would it be okay to declare and initialize that variable in a const global statement instead of in init?
No, create it as local in `fillPreferencesWindow()` and send it as dependency injection to the functions they need it. The reason we are against global variables is that they won't get garbage collected after prefs window close. You can also attach it to the `window` to avoid garbage collecting before window close.
Gotcha about the globals and GC. Thanks for the explanation! And by 'send it as dependency injection to the functions they need it,' you mean pass as arguments, or something fancier?
You can use that as argument for those functions or you can move those functions to a class and use dependency injection like this: ```js class Prefs { constructor(settings) { this._settings = settings; } doSomething() { // use `this._settings` here } fillWindow(window) { // to avoid garbage collecting before close this._window._prefsSettings = this._settings; // ... } } function fillPreferencesWindow(window) { // .. let settings = Lib.getSettings(SCHEMA); let prefs = new Prefs(settings); prefs.fillWindow(window); } ```