mirror of
https://github.com/BreizhHardware/multi-monitors-add-on.git
synced 2026-01-18 16:47:26 +01:00
Merge branch 'axxapy-three_monitors'
This commit is contained in:
@@ -36,7 +36,7 @@ const MUTTER_SCHEMA = 'org.gnome.mutter';
|
||||
const WORKSPACES_ONLY_ON_PRIMARY_ID = 'workspaces-only-on-primary';
|
||||
|
||||
const SHOW_INDICATOR_ID = 'show-indicator';
|
||||
const SHOW_THUMBNAILS_SLIDER_ID = 'show-thumbnails-slider';
|
||||
const THUMBNAILS_SLIDER_POSITION_ID = 'thumbnails-slider-position';
|
||||
|
||||
function copyClass (s, d) {
|
||||
// global.log(s.name +" > "+ d.name);
|
||||
@@ -94,57 +94,57 @@ class MultiMonitorsAddOn {
|
||||
}
|
||||
|
||||
_showThumbnailsSlider() {
|
||||
if (this._settings.get_boolean(SHOW_THUMBNAILS_SLIDER_ID)) {
|
||||
if(this._ov_settings.get_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID))
|
||||
this._ov_settings.set_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID, false);
|
||||
if(this._mu_settings.get_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID))
|
||||
this._mu_settings.set_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID, false);
|
||||
if (this._settings.get_string(THUMBNAILS_SLIDER_POSITION_ID) === 'none') {
|
||||
this._hideThumbnailsSlider();
|
||||
return;
|
||||
}
|
||||
|
||||
if (Main.mmOverview)
|
||||
return;
|
||||
if(this._ov_settings.get_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID))
|
||||
this._ov_settings.set_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID, false);
|
||||
if(this._mu_settings.get_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID))
|
||||
this._mu_settings.set_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID, false);
|
||||
|
||||
Main.mmOverview = [];
|
||||
for (let idx = 0; idx < Main.layoutManager.monitors.length; idx++) {
|
||||
if (idx != Main.layoutManager.primaryIndex) {
|
||||
Main.mmOverview[idx] = new MMOverview.MultiMonitorsOverview(idx);
|
||||
}
|
||||
}
|
||||
if (Main.mmOverview)
|
||||
return;
|
||||
|
||||
this.syncWorkspacesActualGeometry = Main.overview.viewSelector._workspacesDisplay._syncWorkspacesActualGeometry;
|
||||
Main.overview.viewSelector._workspacesDisplay._syncWorkspacesActualGeometry = function() {
|
||||
if (this._inWindowFade)
|
||||
return;
|
||||
Main.mmOverview = [];
|
||||
for (let idx = 0; idx < Main.layoutManager.monitors.length; idx++) {
|
||||
if (idx != Main.layoutManager.primaryIndex) {
|
||||
Main.mmOverview[idx] = new MMOverview.MultiMonitorsOverview(idx);
|
||||
}
|
||||
}
|
||||
|
||||
const primaryView = this._getPrimaryView();
|
||||
if (primaryView) {
|
||||
primaryView.ease({
|
||||
...this._actualGeometry,
|
||||
duration: Main.overview.animationInProgress ? ANIMATION_TIME : 0,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
});
|
||||
}
|
||||
this.syncWorkspacesActualGeometry = Main.overview.viewSelector._workspacesDisplay._syncWorkspacesActualGeometry;
|
||||
Main.overview.viewSelector._workspacesDisplay._syncWorkspacesActualGeometry = function() {
|
||||
if (this._inWindowFade)
|
||||
return;
|
||||
|
||||
for (let idx = 0; idx < Main.mmOverview.length; idx++) {
|
||||
if (!Main.mmOverview[idx])
|
||||
continue;
|
||||
if (!Main.mmOverview[idx]._overview)
|
||||
continue;
|
||||
const mmView = Main.mmOverview[idx]._overview._controls._workspacesViews;
|
||||
if (!mmView)
|
||||
continue;
|
||||
const primaryView = this._getPrimaryView();
|
||||
if (primaryView) {
|
||||
primaryView.ease({
|
||||
...this._actualGeometry,
|
||||
duration: Main.overview.animationInProgress ? ANIMATION_TIME : 0,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
});
|
||||
}
|
||||
|
||||
const mmGeometry = Main.mmOverview[idx].getWorkspacesActualGeometry();
|
||||
mmView.ease({
|
||||
...mmGeometry,
|
||||
duration: Main.overview.animationInProgress ? ANIMATION_TIME : 0,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
this._hideThumbnailsSlider();
|
||||
}
|
||||
for (let idx = 0; idx < Main.mmOverview.length; idx++) {
|
||||
if (!Main.mmOverview[idx])
|
||||
continue;
|
||||
if (!Main.mmOverview[idx]._overview)
|
||||
continue;
|
||||
const mmView = Main.mmOverview[idx]._overview._controls._workspacesViews;
|
||||
if (!mmView)
|
||||
continue;
|
||||
|
||||
const mmGeometry = Main.mmOverview[idx].getWorkspacesActualGeometry();
|
||||
mmView.ease({
|
||||
...mmGeometry,
|
||||
duration: Main.overview.animationInProgress ? ANIMATION_TIME : 0,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_hideThumbnailsSlider() {
|
||||
@@ -173,10 +173,9 @@ class MultiMonitorsAddOn {
|
||||
}
|
||||
|
||||
_switchOffThumbnails() {
|
||||
if(this._ov_settings.get_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID))
|
||||
this._settings.set_boolean(SHOW_THUMBNAILS_SLIDER_ID, false);
|
||||
if(this._mu_settings.get_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID))
|
||||
this._settings.set_boolean(SHOW_THUMBNAILS_SLIDER_ID, false);
|
||||
if (this._ov_settings.get_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID) || this._mu_settings.get_boolean(WORKSPACES_ONLY_ON_PRIMARY_ID)) {
|
||||
this._settings.set_string(THUMBNAILS_SLIDER_POSITION_ID, 'none');
|
||||
}
|
||||
}
|
||||
|
||||
enable(version) {
|
||||
@@ -199,7 +198,7 @@ class MultiMonitorsAddOn {
|
||||
this._showPanelId = this._settings.connect('changed::'+MMLayout.SHOW_PANEL_ID, Main.mmLayoutManager.showPanel.bind(Main.mmLayoutManager));
|
||||
Main.mmLayoutManager.showPanel();
|
||||
|
||||
this._showThumbnailsSliderId = this._settings.connect('changed::'+SHOW_THUMBNAILS_SLIDER_ID, this._showThumbnailsSlider.bind(this));
|
||||
this._thumbnailsSliderPositionId = this._settings.connect('changed::'+THUMBNAILS_SLIDER_POSITION_ID, this._showThumbnailsSlider.bind(this));
|
||||
this._relayoutId = Main.layoutManager.connect('monitors-changed', this._relayout.bind(this));
|
||||
this._relayout();
|
||||
}
|
||||
@@ -210,7 +209,7 @@ class MultiMonitorsAddOn {
|
||||
this._mu_settings.disconnect(this._switchOffThumbnailsMuId);
|
||||
|
||||
this._settings.disconnect(this._showPanelId);
|
||||
this._settings.disconnect(this._showThumbnailsSliderId);
|
||||
this._settings.disconnect(this._thumbnailsSliderPositionId);
|
||||
this._settings.disconnect(this._showIndicatorId);
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -65,10 +65,6 @@ msgstr "Anwendungsmenü auf zusätzlichen Monitoren anzeigen"
|
||||
msgid "Show DateTime-Button on additional monitors."
|
||||
msgstr "Datum-Zeit auf zusätzlichen Monitoren anzeigen."
|
||||
|
||||
#: prefs.js:68
|
||||
msgid "Show Thumbnails-Slider on left side of additional monitors."
|
||||
msgstr "Arbeitsflächenübersicht bei zusätzlichen Monitoren links anzeigen"
|
||||
|
||||
#: prefs.js:71
|
||||
msgid "Enable hot corners."
|
||||
msgstr ""
|
||||
|
||||
Binary file not shown.
@@ -63,11 +63,6 @@ msgstr "Mostrar el menú de aplicaciones en los monitores adicionales."
|
||||
msgid "Show DateTime-Button on additional monitors."
|
||||
msgstr "Mostrar la fecha en los monitores adicionales."
|
||||
|
||||
#: prefs.js:68
|
||||
msgid "Show Thumbnails-Slider on left side of additional monitors."
|
||||
msgstr ""
|
||||
"Mostrar las miniaturas en el lado izquierdo de los monitores adicionales."
|
||||
|
||||
#: prefs.js:71
|
||||
msgid "Enable hot corners."
|
||||
msgstr ""
|
||||
|
||||
Binary file not shown.
@@ -66,12 +66,6 @@ msgstr "Afficher le bouton du menu Applications sur les moniteurs secondaires"
|
||||
msgid "Show DateTime-Button on additional monitors."
|
||||
msgstr "Afficher le bouton Date-Heure sur les moniteurs secondaires."
|
||||
|
||||
#: prefs.js:68
|
||||
msgid "Show Thumbnails-Slider on left side of additional monitors."
|
||||
msgstr ""
|
||||
"Afficher le dock listant les espaces de travail, sur la gauche pour les "
|
||||
"moniteurs secondaires"
|
||||
|
||||
#: prefs.js:71
|
||||
msgid "Enable hot corners."
|
||||
msgstr ""
|
||||
|
||||
Binary file not shown.
@@ -65,11 +65,6 @@ msgstr "Visualizza il pulsante del menu Applicazioni sui monitor secondari."
|
||||
msgid "Show DateTime-Button on additional monitors."
|
||||
msgstr "Mostra il Bottone Data/Ora sui monitor secondari."
|
||||
|
||||
#: prefs.js:68
|
||||
msgid "Show Thumbnails-Slider on left side of additional monitors."
|
||||
msgstr "Visualizza lo slider delle anteprime a sul lato sinistro per i monitor "
|
||||
"secondari."
|
||||
|
||||
#: prefs.js:71
|
||||
msgid "Enable hot corners."
|
||||
msgstr ""
|
||||
|
||||
Binary file not shown.
@@ -66,10 +66,6 @@ msgstr "Wyświetl przycisk aplikacji na dodatkowych monitorach."
|
||||
msgid "Show DateTime-Button on additional monitors."
|
||||
msgstr "Wyświetl przycisk daty i czasu na dodatkowych monitorach."
|
||||
|
||||
#: prefs.js:68
|
||||
msgid "Show Thumbnails-Slider on left side of additional monitors."
|
||||
msgstr "Wyświetl pasek miniatur po lewej stronie dla dodatkowych monitorów."
|
||||
|
||||
#: prefs.js:71
|
||||
msgid "Enable hot corners."
|
||||
msgstr "Włączenie podglądu po najechaniu rogu ekranu."
|
||||
|
||||
Binary file not shown.
@@ -39,11 +39,6 @@ msgstr "Mostrar botão de Atividades em monitores adicionais"
|
||||
msgid "Show AppMenu-Button on additional monitors."
|
||||
msgstr "Mostrar botão de menu de aplicativos em monitores adicionais"
|
||||
|
||||
#: prefs.js:66
|
||||
msgid "Show Thumbnails-Slider on left side of additional monitors."
|
||||
msgstr ""
|
||||
"Mostrar controle deslizante de miniaturas à esquerda de monitores adicionais"
|
||||
|
||||
#: prefs.js:67
|
||||
msgid "Show DateTime-Button on additional monitors."
|
||||
msgstr "Mostrar o botão de data e hora em monitores adicionais"
|
||||
|
||||
@@ -32,7 +32,7 @@ const CE = ExtensionUtils.getCurrentExtension();
|
||||
const MultiMonitors = CE.imports.extension;
|
||||
const Convenience = CE.imports.convenience;
|
||||
|
||||
const THUMBNAILS_ON_LEFT_SIDE_ID = 'thumbnails-on-left-side';
|
||||
const THUMBNAILS_SLIDER_POSITION_ID = 'thumbnails-slider-position';
|
||||
|
||||
var MultiMonitorsWorkspaceThumbnail = (() => {
|
||||
let MultiMonitorsWorkspaceThumbnail = class MultiMonitorsWorkspaceThumbnail extends St.Widget {
|
||||
@@ -362,6 +362,7 @@ class MultiMonitorsControlsManager extends St.Widget {
|
||||
this._spacer_height = 0;
|
||||
this._fixGeometry = 0;
|
||||
this._visible = false;
|
||||
this._primaryMonitorOnTheLeft = Main.layoutManager.monitors[index].x > Main.layoutManager.primaryMonitor.x;
|
||||
|
||||
let layout = new OverviewControls.ControlsLayout();
|
||||
super._init({
|
||||
@@ -389,9 +390,9 @@ class MultiMonitorsControlsManager extends St.Widget {
|
||||
this._group.add_actor(this._thumbnailsSlider);
|
||||
|
||||
this._settings = Convenience.getSettings();
|
||||
this._thumbnailsOnLeftSideId = this._settings.connect('changed::'+THUMBNAILS_ON_LEFT_SIDE_ID,
|
||||
this._thumbnailsOnLeftSide.bind(this));
|
||||
this._thumbnailsOnLeftSide();
|
||||
this._thumbnailsSelectSideId = this._settings.connect('changed::'+THUMBNAILS_SLIDER_POSITION_ID,
|
||||
this._thumbnailsSelectSide.bind(this));
|
||||
this._thumbnailsSelectSide();
|
||||
this._thumbnailsSlider.slideOut();
|
||||
this._thumbnailsBox._updatePorthole();
|
||||
|
||||
@@ -402,14 +403,17 @@ class MultiMonitorsControlsManager extends St.Widget {
|
||||
_onDestroy() {
|
||||
Main.overview.viewSelector.disconnect(this._pageChangedId);
|
||||
Main.overview.viewSelector.disconnect(this._pageEmptyId);
|
||||
this._settings.disconnect(this._thumbnailsOnLeftSideId);
|
||||
this._settings.disconnect(this._thumbnailsSelectSideId);
|
||||
}
|
||||
|
||||
_thumbnailsOnLeftSide() {
|
||||
_thumbnailsSelectSide() {
|
||||
let thumbnailsSlider;
|
||||
thumbnailsSlider = this._thumbnailsSlider;
|
||||
|
||||
if (this._settings.get_boolean(THUMBNAILS_ON_LEFT_SIDE_ID)) {
|
||||
let sett = this._settings.get_string(THUMBNAILS_SLIDER_POSITION_ID);
|
||||
let onLeftSide = sett === 'left' || (sett === 'auto' && this._primaryMonitorOnTheLeft);
|
||||
|
||||
if (onLeftSide) {
|
||||
let first = this._group.get_first_child();
|
||||
if (first != thumbnailsSlider) {
|
||||
this._thumbnailsSlider.layout.slideDirection = OverviewControls.SlideDirection.LEFT;
|
||||
|
||||
@@ -32,11 +32,10 @@ const Convenience = MultiMonitors.imports.convenience;
|
||||
|
||||
const SHOW_INDICATOR_ID = 'show-indicator';
|
||||
const SHOW_PANEL_ID = 'show-panel';
|
||||
const SHOW_THUMBNAILS_SLIDER_ID = 'show-thumbnails-slider';
|
||||
const SHOW_ACTIVITIES_ID = 'show-activities';
|
||||
const SHOW_APP_MENU_ID = 'show-app-menu';
|
||||
const SHOW_DATE_TIME_ID = 'show-date-time';
|
||||
const THUMBNAILS_ON_LEFT_SIDE_ID = 'thumbnails-on-left-side';
|
||||
const THUMBNAILS_SLIDER_POSITION_ID = 'thumbnails-slider-position';
|
||||
const AVAILABLE_INDICATORS_ID = 'available-indicators';
|
||||
const TRANSFER_INDICATORS_ID = 'transfer-indicators';
|
||||
const ENABLE_HOT_CORNERS = 'enable-hot-corners';
|
||||
@@ -63,11 +62,15 @@ class MultiMonitorsPrefsWidget extends Gtk.Grid {
|
||||
|
||||
this._addBooleanSwitch(_('Show Multi Monitors indicator on Top Panel.'), SHOW_INDICATOR_ID);
|
||||
this._addBooleanSwitch(_('Show Panel on additional monitors.'), SHOW_PANEL_ID);
|
||||
this._addBooleanSwitch(_('Show Thumbnails-Slider on additional monitors.'), SHOW_THUMBNAILS_SLIDER_ID);
|
||||
this._addBooleanSwitch(_('Show Activities-Button on additional monitors.'), SHOW_ACTIVITIES_ID);
|
||||
this._addBooleanSwitch(_('Show AppMenu-Button on additional monitors.'), SHOW_APP_MENU_ID);
|
||||
this._addBooleanSwitch(_('Show DateTime-Button on additional monitors.'), SHOW_DATE_TIME_ID);
|
||||
this._addBooleanSwitch(_('Show Thumbnails-Slider on left side of additional monitors.'), THUMBNAILS_ON_LEFT_SIDE_ID);
|
||||
this._addComboBoxSwitch(_('Show Thumbnails-Slider on additional monitors.'), THUMBNAILS_SLIDER_POSITION_ID, {
|
||||
none: _('No'),
|
||||
right: _('On the right'),
|
||||
left: _('On the left'),
|
||||
auto: _('Auto')
|
||||
});
|
||||
this._addSettingsBooleanSwitch(_('Enable hot corners.'), this._desktopSettings, ENABLE_HOT_CORNERS);
|
||||
|
||||
this._store = new Gtk.ListStore();
|
||||
@@ -227,6 +230,27 @@ class MultiMonitorsPrefsWidget extends Gtk.Grid {
|
||||
}
|
||||
}
|
||||
|
||||
_addComboBoxSwitch(label, schema_id, options) {
|
||||
this._addSettingsComboBoxSwitch(label, this._settings, schema_id, options)
|
||||
}
|
||||
|
||||
_addSettingsComboBoxSwitch(label, settings, schema_id, options) {
|
||||
let gHBox = new Gtk.HBox({margin: 10, spacing: 20, hexpand: true});
|
||||
let gLabel = new Gtk.Label({label: _(label), halign: Gtk.Align.START});
|
||||
gHBox.add(gLabel);
|
||||
|
||||
let gCBox = new Gtk.ComboBoxText({halign: Gtk.Align.END});
|
||||
Object.entries(options).forEach(function(entry) {
|
||||
const [key, val] = entry;
|
||||
gCBox.append(key, val);
|
||||
});
|
||||
gHBox.add(gCBox);
|
||||
|
||||
this.add(gHBox);
|
||||
|
||||
settings.bind(schema_id, gCBox, 'active-id', Gio.SettingsBindFlags.DEFAULT);
|
||||
}
|
||||
|
||||
_addBooleanSwitch(label, schema_id) {
|
||||
this._addSettingsBooleanSwitch(label, this._settings, schema_id);
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -12,12 +12,6 @@
|
||||
<summary>Show Panel on additional monitors.</summary>
|
||||
<description>Add or remove Panel from additional monitors.</description>
|
||||
</key>
|
||||
|
||||
<key name="show-thumbnails-slider" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show Thumbnails-Slider on additional monitors.</summary>
|
||||
<description>Add or remove Thumbnails-Slider from additional monitors.</description>
|
||||
</key>
|
||||
|
||||
<key name="show-activities" type="b">
|
||||
<default>true</default>
|
||||
@@ -36,11 +30,17 @@
|
||||
<summary>Show DateTime-Button on additional monitors.</summary>
|
||||
<description>Change visibility of DateTime-Button on additional monitors.</description>
|
||||
</key>
|
||||
|
||||
<key name="thumbnails-on-left-side" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show Thumbnails-Slider on left side of additional monitors.</summary>
|
||||
<description>Toggle position of Thumbnails-Slider from right to left on additional monitors.</description>
|
||||
|
||||
<key name="thumbnails-slider-position" type="s">
|
||||
<choices>
|
||||
<choice value='none'/>
|
||||
<choice value='right'/>
|
||||
<choice value='left'/>
|
||||
<choice value='auto'/>
|
||||
</choices>
|
||||
<default>'auto'</default>
|
||||
<summary>Show Thumbnails-Slider on additional monitors.</summary>
|
||||
<description>Select position of Thumbnails-Slider on additional monitors.</description>
|
||||
</key>
|
||||
|
||||
<key name="available-indicators" type="as">
|
||||
|
||||
Reference in New Issue
Block a user