diff --git a/Settings.ui b/Settings.ui index 052397f..beb2a8d 100644 --- a/Settings.ui +++ b/Settings.ui @@ -2096,6 +2096,12 @@ 1 100 + + 8 + 48 + 1 + 100 + True True @@ -2747,6 +2753,92 @@ 0 + + + True + False + 12 + 32 + + + True + False + 8 + + + True + True + end + center + + + False + True + 1 + + + + + True + True + end + 4 + 6 + preview_custom_icon_size_adjustment + True + 6 + + + 1 + 0 + 2 + + + + + 1 + + + + + True + False + True + Icon size (px) of the window preview + True + 0 + + + 0 + 0 + + + + + True + False + True + If disabled, the previews icon size will be based on headerbar size + True + 40 + 0 + + + + 0 + 1 + 2 + + + + + 0 + 1 + 2 + + True @@ -2786,7 +2878,7 @@ 0 - 1 + 2 2 @@ -2831,7 +2923,7 @@ 0 - 2 + 3 2 @@ -2870,7 +2962,7 @@ 0 - 3 + 4 2 diff --git a/prefs.js b/prefs.js index 4eeb162..9e95f80 100644 --- a/prefs.js +++ b/prefs.js @@ -1179,6 +1179,14 @@ const Settings = new Lang.Class({ this._builder.get_object('preview_custom_opacity_spinbutton'), 'sensitive', Gio.SettingsBindFlags.DEFAULT); + this._settings.bind('window-preview-use-custom-icon-size', + this._builder.get_object('preview_custom_icon_size_switch'), + 'active', + Gio.SettingsBindFlags.DEFAULT); + this._settings.bind('window-preview-use-custom-icon-size', + this._builder.get_object('preview_custom_icon_size_spinbutton'), + 'sensitive', + Gio.SettingsBindFlags.DEFAULT); this._builder.get_object('preview_custom_opacity_spinbutton').set_value(this._settings.get_int('preview-custom-opacity')); this._builder.get_object('preview_custom_opacity_spinbutton').connect('value-changed', Lang.bind (this, function(widget) { @@ -1264,6 +1272,11 @@ const Settings = new Lang.Class({ this._builder.get_object('preview_title_size_spinbutton').connect('value-changed', Lang.bind (this, function(widget) { this._settings.set_int('window-preview-title-font-size', widget.get_value()); })); + + this._builder.get_object('preview_custom_icon_size_spinbutton').set_value(this._settings.get_int('window-preview-custom-icon-size')); + this._builder.get_object('preview_custom_icon_size_spinbutton').connect('value-changed', Lang.bind (this, function(widget) { + this._settings.set_int('window-preview-custom-icon-size', widget.get_value()); + })); this._builder.get_object('grid_preview_title_weight_combo').set_active_id(this._settings.get_string('window-preview-title-font-weight')); this._builder.get_object('grid_preview_title_weight_combo').connect('changed', Lang.bind (this, function(widget) { @@ -1291,6 +1304,8 @@ const Settings = new Lang.Class({ this._builder.get_object('animation_time_spinbutton').set_value(this._settings.get_int('window-preview-animation-time')); this._settings.set_value('preview-use-custom-opacity', this._settings.get_default_value('preview-use-custom-opacity')); + + this._settings.set_value('window-preview-use-custom-icon-size', this._settings.get_default_value('window-preview-use-custom-icon-size')); this._settings.set_value('preview-custom-opacity', this._settings.get_default_value('preview-custom-opacity')); this._builder.get_object('preview_custom_opacity_spinbutton').set_value(this._settings.get_int('preview-custom-opacity')); @@ -1324,6 +1339,9 @@ const Settings = new Lang.Class({ this._settings.set_value('window-preview-title-font-size', this._settings.get_default_value('window-preview-title-font-size')); this._builder.get_object('preview_title_size_spinbutton').set_value(this._settings.get_int('window-preview-title-font-size')); + + this._settings.set_value('window-preview-custom-icon-size', this._settings.get_default_value('window-preview-custom-icon-size')); + this._builder.get_object('preview_custom_icon_size_spinbutton').set_value(this._settings.get_int('window-preview-custom-icon-size')); this._settings.set_value('window-preview-title-font-weight', this._settings.get_default_value('window-preview-title-font-weight')); this._builder.get_object('grid_preview_title_weight_combo').set_active_id(this._settings.get_string('window-preview-title-font-weight')); diff --git a/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml b/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml index c832084..8c226f8 100644 --- a/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml +++ b/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml @@ -477,6 +477,16 @@ Window previews title font size This defines the window preview titles font size. + + false + Window previews use custom icon size + Window previews use custom application icon size. + + + 16 + Window previews custom icon size + Window previews custom application icon size. + 260 Window previews animation time diff --git a/windowPreview.js b/windowPreview.js index 71f380d..44baf63 100644 --- a/windowPreview.js +++ b/windowPreview.js @@ -822,7 +822,12 @@ var Preview = Utils.defineClass({ this._removeWindowSignals(); this.window = window; this._needsCloseButton = window.can_close() && !Utils.checkIfWindowHasTransient(window); - this._updateHeader(); + + if (Me.settings.get_boolean('window-preview-use-custom-icon-size')){ + this._updateHeader(Me.settings.get_int('window-preview-custom-icon-size')); + } else { + this._updateHeader(headerHeight / scaleFactor * .6); + } }, animateOut: function() { @@ -946,9 +951,8 @@ var Preview = Utils.defineClass({ } }, - _updateHeader: function() { + _updateHeader: function(iconTextureSize) { if (headerHeight) { - let iconTextureSize = headerHeight / scaleFactor * .6; let icon = this._previewMenu.getCurrentAppIcon().app.create_icon_texture(iconTextureSize); let workspaceIndex = ''; let workspaceStyle = null; @@ -1142,4 +1146,4 @@ function getTweenOpts(opts) { }; return Utils.mergeObjects(opts || {}, defaults); -} \ No newline at end of file +}