mirror of
https://github.com/FranP-code/wintile.git
synced 2025-10-13 00:33:46 +00:00
Added config option to disable minimizing windows.
By default, the extension minimizes windows after some down presses. This commit makes this behavior configurable: toggling it off stops windows from being minimized.
This commit is contained in:
25
extension.js
25
extension.js
@@ -26,6 +26,7 @@ var _log = function(str) {
|
||||
let config = {
|
||||
cols: 2,
|
||||
useMaximize: true,
|
||||
useMinimize: true,
|
||||
debug: true,
|
||||
preview: {
|
||||
enabled: true,
|
||||
@@ -51,6 +52,7 @@ function updateSettings() {
|
||||
config.cols = (settings.get_value('cols').deep_unpack())+2;
|
||||
config.preview.doubleWidth = settings.get_value('double-width').deep_unpack();
|
||||
config.useMaximize = settings.get_value('use-maximize').deep_unpack();
|
||||
config.useMinimize = settings.get_value('use-minimize').deep_unpack();
|
||||
config.preview.enabled = settings.get_value('preview').deep_unpack();
|
||||
config.preview.distance = settings.get_value('distance').deep_unpack();
|
||||
config.preview.delay = settings.get_value('delay').deep_unpack();
|
||||
@@ -79,6 +81,17 @@ var oldbindings = {
|
||||
toggle_tiled_right: []
|
||||
}
|
||||
|
||||
// Minimize app if config allows
|
||||
function requestMinimize(app) {
|
||||
_log("useMinimize: "+config.useMinimize);
|
||||
if (config.useMinimize) {
|
||||
_log("Minimize");
|
||||
app.minimize();
|
||||
} else {
|
||||
_log("Not minimizing due to config");
|
||||
}
|
||||
}
|
||||
|
||||
function moveApp(app, loc) {
|
||||
_log("moveApp: " + JSON.stringify(loc));
|
||||
var space = null;
|
||||
@@ -252,7 +265,7 @@ function sendMove(direction) {
|
||||
break;
|
||||
case "down":
|
||||
// Minimize
|
||||
app.minimize();
|
||||
requestMinimize(app);
|
||||
break;
|
||||
}
|
||||
} else if (config.cols == 3) {
|
||||
@@ -275,7 +288,7 @@ function sendMove(direction) {
|
||||
break;
|
||||
case "down":
|
||||
// Minimize
|
||||
app.minimize();
|
||||
requestMinimize(app);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
@@ -298,7 +311,7 @@ function sendMove(direction) {
|
||||
break;
|
||||
case "down":
|
||||
// Minimize
|
||||
app.minimize();
|
||||
requestMinimize(app);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -402,7 +415,7 @@ function sendMove(direction) {
|
||||
} else {
|
||||
// We are bottom half, minimize
|
||||
_log('down - 6')
|
||||
app.minimize();
|
||||
requestMinimize(app);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -494,7 +507,7 @@ function sendMove(direction) {
|
||||
} else {
|
||||
// We are bottom half, minimize
|
||||
_log('down - 6')
|
||||
app.minimize();
|
||||
requestMinimize(app);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -594,7 +607,7 @@ function sendMove(direction) {
|
||||
} else {
|
||||
// We are bottom half, minimize
|
||||
_log('down - 7')
|
||||
app.minimize();
|
||||
requestMinimize(app);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
BIN
gschemas.compiled
Normal file
BIN
gschemas.compiled
Normal file
Binary file not shown.
48
org.gnome.shell.extensions.wintile.gschema.xml
Normal file
48
org.gnome.shell.extensions.wintile.gschema.xml
Normal file
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schemalist>
|
||||
<schema id="org.gnome.shell.extensions.wintile" path="/org/gnome/shell/extensions/wintile/">
|
||||
<key name="cols" type="i">
|
||||
<default>0</default>
|
||||
<summary>Number of columns</summary>
|
||||
<description></description>
|
||||
<range min="0" max="2"/>
|
||||
</key>
|
||||
<key name="use-maximize" type="b">
|
||||
<default>true</default>
|
||||
<summary>Turn on/off use of maximizing windows</summary>
|
||||
<description>When on, certain windows that won't resize full screen like Terminal will, however animations may occur between tile shifts.</description>
|
||||
</key>
|
||||
<key name="use-minimize" type="b">
|
||||
<default>true</default>
|
||||
<summary>Turn use of minimizing windows on/off</summary>
|
||||
<description>When off, windows will never be minimized.</description>
|
||||
</key>
|
||||
<key name="preview" type="b">
|
||||
<default>true</default>
|
||||
<summary>Turn on/off mouse positioning</summary>
|
||||
<description>When on, dragging windows with the mouse will allow placement into the grid.</description>
|
||||
</key>
|
||||
<key name="double-width" type="b">
|
||||
<default>true</default>
|
||||
<summary>Use double width previews on sides in 4 column mode</summary>
|
||||
<description>When on, dragging a window to the side will preview 2 columns wide instead of 1.</description>
|
||||
</key>
|
||||
<key name="distance" type="i">
|
||||
<default>25</default>
|
||||
<summary>Pixels from edge to start preview</summary>
|
||||
<description></description>
|
||||
<range min="0" max="150"/>
|
||||
</key>
|
||||
<key name="delay" type="i">
|
||||
<default>500</default>
|
||||
<summary>Delay in ms before preview displays</summary>
|
||||
<description></description>
|
||||
<range min="25" max="1000"/>
|
||||
</key>
|
||||
<key name="debug" type="b">
|
||||
<default>false</default>
|
||||
<summary>Turn on/off debug output</summary>
|
||||
<description></description>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
16
prefs.js
16
prefs.js
@@ -93,6 +93,21 @@ function buildPrefsWidget() {
|
||||
layout.attach(maximizeLabel, 0, row, 1, 1);
|
||||
layout.attach(maximizeInput, 1, row++, 1, 1);
|
||||
|
||||
// Minimize setting
|
||||
let minimizeLabel = new Gtk.Label({
|
||||
label: _("Allow minimizing of windows"),
|
||||
visible: true,
|
||||
hexpand: true,
|
||||
halign: Gtk.Align.START
|
||||
});
|
||||
let minimizeInput = new Gtk.Switch({
|
||||
active: gsettings.get_boolean ('use-minimize'),
|
||||
halign: Gtk.Align.END,
|
||||
visible: true
|
||||
});
|
||||
layout.attach(minimizeLabel, 0, row, 1, 1);
|
||||
layout.attach(minimizeInput, 1, row++, 1, 1);
|
||||
|
||||
// Preview settings
|
||||
let previewEnabled = gsettings.get_boolean ('preview');
|
||||
let previewLabel = new Gtk.Label({
|
||||
@@ -193,6 +208,7 @@ function buildPrefsWidget() {
|
||||
|
||||
gsettings.bind('cols', colsInput, 'active', Gio.SettingsBindFlags.DEFAULT);
|
||||
gsettings.bind('use-maximize', maximizeInput, 'active', Gio.SettingsBindFlags.DEFAULT);
|
||||
gsettings.bind('use-minimize', minimizeInput, 'active', Gio.SettingsBindFlags.DEFAULT);
|
||||
gsettings.bind('preview', previewInput, 'active', Gio.SettingsBindFlags.DEFAULT);
|
||||
gsettings.bind('double-width', doubleWidthInput, 'active', Gio.SettingsBindFlags.DEFAULT);
|
||||
previewDistanceSettingInt.connect('value-changed', function(entry) {
|
||||
|
||||
Reference in New Issue
Block a user