Accepting request 539470 from GNOME:Factory
- Move SLE-Classic function to gnome-shell-extensions package (bsc#1065611). + Remove gs-sle-classic-ext.patch + Remove SLEClassicExt.js (forwarded request 539427 from xiaoguang_wang) OBS-URL: https://build.opensuse.org/request/show/539470 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gnome-shell?expand=0&rev=144
This commit is contained in:
commit
24efc2f3d4
298
SLEClassicExt.js
298
SLEClassicExt.js
@ -1,298 +0,0 @@
|
|||||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Extra features needed by SLE Classic mode. A lot of features here are
|
|
||||||
// designed as modular functions or classes, so it's cumbersome to fit in a
|
|
||||||
// patch. However, most functionality requires a patch to the GNOME Shell core
|
|
||||||
// to work. A design principle is to keep this adapter patch as small and clear as possible.
|
|
||||||
//
|
|
||||||
// NOTE This file should be packed into GNOME Shell GResource files, with inner
|
|
||||||
// path "%{_datadir}/gnome-shell/js/ui/" and used by "imports.ui.SLEClassicExt".
|
|
||||||
//
|
|
||||||
// [5-5] Major Update: SLE Classic is no longer a full-fledged GNOME session,
|
|
||||||
// instead it's a runtime modified GNOME Classic.
|
|
||||||
|
|
||||||
const Clutter = imports.gi.Clutter;
|
|
||||||
const GLib = imports.gi.GLib;
|
|
||||||
const Gtk = imports.gi.Gtk;
|
|
||||||
const Gio = imports.gi.Gio;
|
|
||||||
const Lang = imports.lang;
|
|
||||||
const Shell = imports.gi.Shell;
|
|
||||||
const Signals = imports.signals;
|
|
||||||
const St = imports.gi.St;
|
|
||||||
|
|
||||||
const Main = imports.ui.main;
|
|
||||||
|
|
||||||
const GNOME_CLASSIC_SESSION_NAME = "classic";
|
|
||||||
|
|
||||||
// NOTE About `global.session_mode`, which maps
|
|
||||||
// normal GNOME session -> "user"
|
|
||||||
// GNOME classic -> "classic" (i.e. the "gnome-" prefix is stripped)
|
|
||||||
// SLE classic -> "sle-classic" (depreciated)
|
|
||||||
//
|
|
||||||
// This var is defined in the C code and some parts of the Shell use it instead
|
|
||||||
// of `Main.sessionMode.currentMode`, notably `exensionSystem`. An important
|
|
||||||
// difference is that `global.session_mode` is initialized much earlier than
|
|
||||||
// `currentMode` and it does NOT reflect in-Session mode change, e.g. the
|
|
||||||
// lock/unlock screen.
|
|
||||||
|
|
||||||
// NOTE a dedicated env var to mark this classic mode a SLE classic, see
|
|
||||||
// sle-classic.desktop.
|
|
||||||
var isSLEClassicEnv = ( GLib.getenv('SLE_CLASSIC_MODE') !== null );
|
|
||||||
// NOTE: A mode can be verified as SLE classic iff it's GNOME Classic and it has
|
|
||||||
// SLE_CLASSIC_MODE envar set.
|
|
||||||
function isSLEClassicMode() {
|
|
||||||
// NOTE: must check this part so lock screen is not SLE Classic.
|
|
||||||
if ( Main.sessionMode.currentMode !== GNOME_CLASSIC_SESSION_NAME )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return isSLEClassicEnv;
|
|
||||||
}
|
|
||||||
// NOTE: safe to use BEFORE `sessionMode` has been properly initialized
|
|
||||||
function isSLEClassicModeGlobal () {
|
|
||||||
if ( global.session_mode !== GNOME_CLASSIC_SESSION_NAME )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return isSLEClassicEnv;
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE: Originally "sle-classic.json" under "gnome-shell/modes" dir.
|
|
||||||
//
|
|
||||||
// TODO: strip down to differences with "classic.json"
|
|
||||||
var SLE_CLASSIC_JSON = {
|
|
||||||
"parentMode": "user",
|
|
||||||
"stylesheetName": "gnome-classic.css",
|
|
||||||
"enabledExtensions": [
|
|
||||||
"apps-menu@gnome-shell-extensions.gcampax.github.com", "places-menu@gnome-shell-extensions.gcampax.github.com",
|
|
||||||
"alternate-tab@gnome-shell-extensions.gcampax.github.com",
|
|
||||||
"launch-new-instance@gnome-shell-extensions.gcampax.github.com",
|
|
||||||
"window-list@gnome-shell-extensions.gcampax.github.com",
|
|
||||||
"workspace-indicator@gnome-shell-extensions.gcampax.github.com"
|
|
||||||
],
|
|
||||||
"panel": {
|
|
||||||
"left": ["activities"],
|
|
||||||
"center": [],
|
|
||||||
"right": ["a11y", "keyboard", "dateMenu", "aggregateMenu"]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// NOTE: used in "sessionMode.js::_loadMode"
|
|
||||||
//
|
|
||||||
// If the current mode is SLE Classic, return `SLE_CLASSIC_JSON`. O/w no
|
|
||||||
// changes.
|
|
||||||
function convertClassic2SLE(json) {
|
|
||||||
// NOTE: `Main.sessionMode` have not initialized.
|
|
||||||
if ( ! isSLEClassicModeGlobal() )
|
|
||||||
return json;
|
|
||||||
|
|
||||||
return SLE_CLASSIC_JSON;
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE: used in `SLEClassicExt.init`
|
|
||||||
//
|
|
||||||
// NOTE: it's mandatory to disable app menu in SLE Classic but restore the old
|
|
||||||
// settings after switching back. A more proper solution would be to introduce a
|
|
||||||
// dconf overrides key AND change the GSD part to read the overriden value. Too
|
|
||||||
// much work, keep it a hack for now.
|
|
||||||
function toggleAppMenu() {
|
|
||||||
let xsetting = new Gio.Settings({ schema: 'org.gnome.settings-daemon.plugins.xsettings' });
|
|
||||||
let valueObj = xsetting.get_value('overrides').unpack();
|
|
||||||
|
|
||||||
// NOTE: as dictated by the definitions in gschema, the values for the
|
|
||||||
// following flags can NOT be booleans, but instead 0 or 1.
|
|
||||||
|
|
||||||
// NOTE: special handling, as if `Gtk/ShellShowsAppMenu` is NOT set, it's
|
|
||||||
// treated as true by XSettings
|
|
||||||
const showAppMenuKey = 'Gtk/ShellShowsAppMenu';
|
|
||||||
const showAppMenuSLESetKey = 'Gtk/ShellShowsAppMenu/SLESet';
|
|
||||||
// NOTE double `unpack` is needed as 'a{sv}' construction would wrap the value
|
|
||||||
// in an extra Variant container.
|
|
||||||
let showAppMenuP = valueObj[showAppMenuKey]
|
|
||||||
? valueObj[showAppMenuKey].unpack().unpack()
|
|
||||||
: 1;
|
|
||||||
let showAppMenuSLESet = valueObj[showAppMenuSLESetKey]
|
|
||||||
? valueObj[showAppMenuSLESetKey].unpack().unpack()
|
|
||||||
: 0;
|
|
||||||
|
|
||||||
// NOTE extra check to make sure `showAppMenuP` and `showAppMenuSLESet` are
|
|
||||||
// numbers. ('v' can be many other types and it's possible the user sets so)
|
|
||||||
// The fallback value is the same as above defaults.
|
|
||||||
if (typeof showAppMenuP !== 'number') {
|
|
||||||
showAppMenuP = 1;
|
|
||||||
}
|
|
||||||
if (typeof showAppMenuSLESet !== 'number') {
|
|
||||||
showAppMenuSLESet = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE: In SLE Classic mode, if app menu is set to shown, hide it and set a
|
|
||||||
// special flag to mark this change for restoring.
|
|
||||||
if (isSLEClassicModeGlobal() && showAppMenuP) {
|
|
||||||
showAppMenuP = 0;
|
|
||||||
showAppMenuSLESet = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE: in none-SLE Classic mode, if app menu is hidden AND `SLESet` flag
|
|
||||||
// is set, show the app menu and reset the `SLESet` flag.
|
|
||||||
if ( !isSLEClassicModeGlobal() && showAppMenuSLESet) {
|
|
||||||
showAppMenuP = 1;
|
|
||||||
showAppMenuSLESet = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
valueObj[showAppMenuKey] = GLib.Variant.new('i', showAppMenuP);
|
|
||||||
valueObj[showAppMenuSLESetKey] = GLib.Variant.new('i', showAppMenuSLESet);
|
|
||||||
|
|
||||||
xsetting.set_value('overrides', GLib.Variant.new('a{sv}', valueObj));
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE: used in `main.js::start`
|
|
||||||
function init() {
|
|
||||||
toggleAppMenu();
|
|
||||||
}
|
|
||||||
|
|
||||||
var panelPosUpdateId = null;
|
|
||||||
// layout.js: Replace the origin "box.set_position" call
|
|
||||||
function setMainPanelPosition (mainPanel, primaryMonitor) {
|
|
||||||
if ( isSLEClassicMode() ){
|
|
||||||
let mainPanelHeight = mainPanel.height == 0
|
|
||||||
? 28 : mainPanel.height;
|
|
||||||
// Main Panel at the bottom
|
|
||||||
mainPanel.set_position(primaryMonitor.x,
|
|
||||||
primaryMonitor.y + primaryMonitor.height - mainPanelHeight);
|
|
||||||
|
|
||||||
// NOTE: needed s.t. lock screen would have top panel
|
|
||||||
//
|
|
||||||
// TODO use the `updated` signal to change main panel to remove the patch?
|
|
||||||
if ( !panelPosUpdateId ){
|
|
||||||
panelPosUpdateId = Main.sessionMode.connect('updated', function(){
|
|
||||||
setMainPanelPosition(Main.layoutManager.panelBox, Main.layoutManager.primaryMonitor);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
mainPanel.set_position(primaryMonitor.x, primaryMonitor.y);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// panel.js: Replace the original "Panel._allocate".
|
|
||||||
//
|
|
||||||
// The differences are quite subtle but yet pervasive, so despite the
|
|
||||||
// similarity, there will be two versions of allocation functions.
|
|
||||||
//
|
|
||||||
// The main difference is to use the empty(in Classic) _centerBox for window
|
|
||||||
// list.
|
|
||||||
//
|
|
||||||
// NOTE: has to be a *direct* replacement to have proper `this` setup
|
|
||||||
function _allocate (actor, box, flags) {
|
|
||||||
// NOTE: for convenience, the followings are shared. The params of this
|
|
||||||
// function is also shared.
|
|
||||||
let allocWidth = box.x2 - box.x1;
|
|
||||||
let allocHeight = box.y2 - box.y1;
|
|
||||||
let [leftMinWidth, leftNaturalWidth] = this._leftBox.get_preferred_width(-1);
|
|
||||||
let [centerMinWidth, centerNaturalWidth] = this._centerBox.get_preferred_width(-1);
|
|
||||||
let [rightMinWidth, rightNaturalWidth] = this._rightBox.get_preferred_width(-1);
|
|
||||||
|
|
||||||
// bind sub function's `this` to the current `this`, i.e. Main.panel
|
|
||||||
let allocateSC = _allocateSC.bind(this);
|
|
||||||
// For convenience, defined here to allow access to local vars
|
|
||||||
function _allocateSC () {
|
|
||||||
let isTextDirRTL = ( this.actor.get_text_direction() === Clutter.TextDirection.RTL );
|
|
||||||
// A mask to create allocation.
|
|
||||||
let maskBox = new Clutter.ActorBox();
|
|
||||||
|
|
||||||
// NOTE: policy here is to satisfy left&right boxes space needs first with
|
|
||||||
// center box can be shrinked. (This is the opposite of the original
|
|
||||||
// allocator, this idea here is to accomodate SLE-Classic window list within
|
|
||||||
// center box first. )
|
|
||||||
let maxSideWidth = Math.floor( (allocWidth - centerMinWidth) / 2 );
|
|
||||||
let leftWidth = Math.min(maxSideWidth, leftNaturalWidth);
|
|
||||||
let rightWidth = Math.min(maxSideWidth, rightNaturalWidth);
|
|
||||||
// NOTE: in the case, flooring for maxSideWidth does happen, the following equation yields:
|
|
||||||
// : centerWidth = centerMinWidth + 1
|
|
||||||
// this avoids the cumbersome floor/ceil in orginal code.
|
|
||||||
//
|
|
||||||
// `centerWidth` is shrinkable with an lower bound `centerMinWidth` or `centerMinWidth + 1`
|
|
||||||
let centerWidth = allocWidth - leftWidth - rightWidth;
|
|
||||||
|
|
||||||
// Adjust left/center/right boxes start Y position
|
|
||||||
//
|
|
||||||
// After moving the panel to the bottom side, the top border will be
|
|
||||||
// added instead of the bottom border. However all 3 box of the main
|
|
||||||
// panel are absolutely positioned starting from the top edge of the
|
|
||||||
// panel originally, this results that the bottom pixel line is not
|
|
||||||
// clickable. Add a Y offset to fix it.
|
|
||||||
//
|
|
||||||
// NOTE: we can set y1 as (MainLayoutManager.primaryMonitor.height -
|
|
||||||
// allocHeight), which seems to be easier, however the solution below is
|
|
||||||
// more generic and versatile.
|
|
||||||
let node = Main.panel.actor.get_theme_node();
|
|
||||||
let borderTopWidth = node.get_length("border-top");
|
|
||||||
let y_offset = borderTopWidth;
|
|
||||||
|
|
||||||
maskBox.y1 = y_offset;
|
|
||||||
// TODO: in previous version of SLE Classic the following is
|
|
||||||
// `allocHeight + y_offset`, why?
|
|
||||||
maskBox.y2 = allocHeight;
|
|
||||||
|
|
||||||
// Normal order, from left to right
|
|
||||||
if ( ! isTextDirRTL ) {
|
|
||||||
maskBox.x1 = 0;
|
|
||||||
maskBox.x2 = maskBox.x1 + leftWidth;
|
|
||||||
this._leftBox.allocate(maskBox, flags);
|
|
||||||
|
|
||||||
maskBox.x1 = maskBox.x2;
|
|
||||||
maskBox.x2 = maskBox.x1 + centerWidth;
|
|
||||||
this._centerBox.allocate(maskBox, flags);
|
|
||||||
|
|
||||||
maskBox.x1 = maskBox.x2;
|
|
||||||
maskBox.x2 = maskBox.x1 + rightWidth;
|
|
||||||
this._rightBox.allocate(maskBox, flags);
|
|
||||||
}
|
|
||||||
// Right to Left: essentially right box left box are swapped
|
|
||||||
else {
|
|
||||||
maskBox.x2 = allocWidth;
|
|
||||||
maskBox.x1 = maskBox.x2 - leftWidth;
|
|
||||||
this._leftBox.allocate(maskBox, flags);
|
|
||||||
|
|
||||||
maskBox.x2 = maskBox.x1;
|
|
||||||
maskBox.x1 = maskBox.x2 - centerWidth;
|
|
||||||
this._centerBox.allocate(maskBox, flags)
|
|
||||||
|
|
||||||
maskBox.x2 = maskBox.x1;
|
|
||||||
maskBox.x1 = maskBox.x2 - rightWidth;
|
|
||||||
this._rightBox.allocate(maskBox, flags)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Real work...
|
|
||||||
if (isSLEClassicMode()) {
|
|
||||||
// SC: Sle Classic
|
|
||||||
allocateSC();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this._allocateOrigin(actor, box, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: what are these corners for? They are zero on my test machines.
|
|
||||||
// Without proper understanding of their purposes, they are the same for
|
|
||||||
// both original code and SLE Classic.
|
|
||||||
let cornerMinWidth, cornerMinHeight;
|
|
||||||
let cornerWidth, cornerHeight;
|
|
||||||
let childBox = new Clutter.ActorBox();
|
|
||||||
|
|
||||||
[cornerMinWidth, cornerWidth] = this._leftCorner.actor.get_preferred_width(-1);
|
|
||||||
[cornerMinHeight, cornerHeight] = this._leftCorner.actor.get_preferred_height(-1);
|
|
||||||
childBox.x1 = 0;
|
|
||||||
childBox.x2 = cornerWidth;
|
|
||||||
childBox.y1 = allocHeight;
|
|
||||||
childBox.y2 = allocHeight + cornerHeight;
|
|
||||||
this._leftCorner.actor.allocate(childBox, flags);
|
|
||||||
|
|
||||||
[cornerMinWidth, cornerWidth] = this._rightCorner.actor.get_preferred_width(-1);
|
|
||||||
[cornerMinHeight, cornerHeight] = this._rightCorner.actor.get_preferred_height(-1);
|
|
||||||
childBox.x1 = allocWidth - cornerWidth;
|
|
||||||
childBox.x2 = allocWidth;
|
|
||||||
childBox.y1 = allocHeight;
|
|
||||||
childBox.y2 = allocHeight + cornerHeight;
|
|
||||||
this._rightCorner.actor.allocate(childBox, flags);
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:38d98da06eb0118a0226623494b11765b3981414e804e270dc0cf03e37c708b9
|
|
||||||
size 1407912
|
|
3
gnome-shell-3.26.2.tar.xz
Normal file
3
gnome-shell-3.26.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:e5a87f2f838d981db9823352b90b2ce2f40d24d31ed9f062dccfa41b820e0b1c
|
||||||
|
size 1405580
|
@ -141,7 +141,7 @@ diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
|
|||||||
index 771f23dc2..9f1cb56c6 100644
|
index 771f23dc2..9f1cb56c6 100644
|
||||||
--- a/js/ui/keyboard.js
|
--- a/js/ui/keyboard.js
|
||||||
+++ b/js/ui/keyboard.js
|
+++ b/js/ui/keyboard.js
|
||||||
@@ -308,6 +308,7 @@ var Keyboard = new Lang.Class({
|
@@ -306,6 +306,7 @@ var Keyboard = new Lang.Class({
|
||||||
},
|
},
|
||||||
|
|
||||||
_syncEnabled: function () {
|
_syncEnabled: function () {
|
||||||
@ -149,7 +149,7 @@ index 771f23dc2..9f1cb56c6 100644
|
|||||||
this._enableKeyboard = this._a11yApplicationsSettings.get_boolean(SHOW_KEYBOARD);
|
this._enableKeyboard = this._a11yApplicationsSettings.get_boolean(SHOW_KEYBOARD);
|
||||||
this._enabled = this._enableKeyboard || this._lastDeviceIsTouchscreen();
|
this._enabled = this._enableKeyboard || this._lastDeviceIsTouchscreen();
|
||||||
if (!this._enabled && !this._keyboard)
|
if (!this._enabled && !this._keyboard)
|
||||||
@@ -315,14 +316,15 @@ var Keyboard = new Lang.Class({
|
@@ -314,14 +315,15 @@ var Keyboard = new Lang.Class({
|
||||||
|
|
||||||
this._setCaretTrackerEnabled(this._enabled);
|
this._setCaretTrackerEnabled(this._enabled);
|
||||||
|
|
||||||
|
@ -19,14 +19,14 @@ Index: gnome-shell-3.14.0/js/ui/status/network.js
|
|||||||
--- gnome-shell-3.14.0.orig/js/ui/status/network.js
|
--- gnome-shell-3.14.0.orig/js/ui/status/network.js
|
||||||
+++ gnome-shell-3.14.0/js/ui/status/network.js
|
+++ gnome-shell-3.14.0/js/ui/status/network.js
|
||||||
@@ -7,6 +7,7 @@ const Gtk = imports.gi.Gtk;
|
@@ -7,6 +7,7 @@ const Gtk = imports.gi.Gtk;
|
||||||
const Lang = imports.lang;
|
const Mainloop = imports.mainloop;
|
||||||
const NetworkManager = imports.gi.NetworkManager;
|
const NetworkManager = imports.gi.NetworkManager;
|
||||||
const NMClient = imports.gi.NMClient;
|
const NMClient = imports.gi.NMClient;
|
||||||
+const Polkit = imports.gi.Polkit;
|
+const Polkit = imports.gi.Polkit;
|
||||||
const NMGtk = imports.gi.NMGtk;
|
const NMGtk = imports.gi.NMGtk;
|
||||||
const Signals = imports.signals;
|
const Signals = imports.signals;
|
||||||
const Shell = imports.gi.Shell;
|
const Shell = imports.gi.Shell;
|
||||||
@@ -372,6 +373,11 @@ const NMConnectionDevice = new Lang.Clas
|
@@ -369,6 +370,11 @@ const NMConnectionDevice = new Lang.Clas
|
||||||
|
|
||||||
_autoConnect: function() {
|
_autoConnect: function() {
|
||||||
let connection = new NetworkManager.Connection();
|
let connection = new NetworkManager.Connection();
|
||||||
@ -38,7 +38,7 @@ Index: gnome-shell-3.14.0/js/ui/status/network.js
|
|||||||
this._client.add_and_activate_connection(connection, this._device, null, null);
|
this._client.add_and_activate_connection(connection, this._device, null, null);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -618,10 +624,12 @@ const NMDeviceBluetooth = new Lang.Class
|
@@ -627,10 +633,12 @@ const NMDeviceBluetooth = new Lang.Class
|
||||||
Extends: NMConnectionDevice,
|
Extends: NMConnectionDevice,
|
||||||
category: NMConnectionCategory.WWAN,
|
category: NMConnectionCategory.WWAN,
|
||||||
|
|
||||||
@ -47,12 +47,12 @@ Index: gnome-shell-3.14.0/js/ui/status/network.js
|
|||||||
+ _init: function(client, device, settings, privateConnections) {
|
+ _init: function(client, device, settings, privateConnections) {
|
||||||
this.parent(client, device, settings);
|
this.parent(client, device, settings);
|
||||||
|
|
||||||
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device));
|
this.item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-network-panel.desktop');
|
||||||
+ this._privateConnections = privateConnections;
|
+ this._privateConnections = privateConnections;
|
||||||
},
|
},
|
||||||
|
|
||||||
_getDescription: function() {
|
_getDescription: function() {
|
||||||
@@ -716,11 +724,12 @@ const NMWirelessDialog = new Lang.Class(
|
@@ -727,11 +735,12 @@ const NMWirelessDialog = new Lang.Class(
|
||||||
Name: 'NMWirelessDialog',
|
Name: 'NMWirelessDialog',
|
||||||
Extends: ModalDialog.ModalDialog,
|
Extends: ModalDialog.ModalDialog,
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ Index: gnome-shell-3.14.0/js/ui/status/network.js
|
|||||||
|
|
||||||
this._wirelessEnabledChangedId = this._client.connect('notify::wireless-enabled',
|
this._wirelessEnabledChangedId = this._client.connect('notify::wireless-enabled',
|
||||||
Lang.bind(this, this._syncView));
|
Lang.bind(this, this._syncView));
|
||||||
@@ -937,6 +946,11 @@ const NMWirelessDialog = new Lang.Class(
|
@@ -964,6 +973,11 @@ const NMWirelessDialog = new Lang.Class(
|
||||||
this._device.get_path(), accessPoints[0].dbus_path]);
|
this._device.get_path(), accessPoints[0].dbus_path]);
|
||||||
} else {
|
} else {
|
||||||
let connection = new NetworkManager.Connection();
|
let connection = new NetworkManager.Connection();
|
||||||
@ -78,7 +78,7 @@ Index: gnome-shell-3.14.0/js/ui/status/network.js
|
|||||||
this._client.add_and_activate_connection(connection, this._device, accessPoints[0].dbus_path, null)
|
this._client.add_and_activate_connection(connection, this._device, accessPoints[0].dbus_path, null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1162,10 +1176,11 @@ const NMDeviceWireless = new Lang.Class(
|
@@ -1194,10 +1209,11 @@ const NMDeviceWireless = new Lang.Class(
|
||||||
Name: 'NMDeviceWireless',
|
Name: 'NMDeviceWireless',
|
||||||
category: NMConnectionCategory.WIRELESS,
|
category: NMConnectionCategory.WIRELESS,
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ Index: gnome-shell-3.14.0/js/ui/status/network.js
|
|||||||
|
|
||||||
this._description = '';
|
this._description = '';
|
||||||
|
|
||||||
@@ -1247,7 +1262,7 @@ const NMDeviceWireless = new Lang.Class(
|
@@ -1280,7 +1295,7 @@ const NMDeviceWireless = new Lang.Class(
|
||||||
},
|
},
|
||||||
|
|
||||||
_showDialog: function() {
|
_showDialog: function() {
|
||||||
@ -100,7 +100,7 @@ Index: gnome-shell-3.14.0/js/ui/status/network.js
|
|||||||
this._dialog.connect('closed', Lang.bind(this, this._dialogClosed));
|
this._dialog.connect('closed', Lang.bind(this, this._dialogClosed));
|
||||||
this._dialog.open();
|
this._dialog.open();
|
||||||
},
|
},
|
||||||
@@ -1606,6 +1621,19 @@ const NMApplet = new Lang.Class({
|
@@ -1678,6 +1693,19 @@ const NMApplet = new Lang.Class({
|
||||||
if (!this._client || !this._settings)
|
if (!this._client || !this._settings)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -120,7 +120,7 @@ Index: gnome-shell-3.14.0/js/ui/status/network.js
|
|||||||
this._activeConnections = [ ];
|
this._activeConnections = [ ];
|
||||||
this._connections = [ ];
|
this._connections = [ ];
|
||||||
this._connectivityQueue = [ ];
|
this._connectivityQueue = [ ];
|
||||||
@@ -1715,7 +1743,7 @@ const NMApplet = new Lang.Class({
|
@@ -1807,7 +1835,7 @@ const NMApplet = new Lang.Class({
|
||||||
|
|
||||||
let wrapperClass = this._dtypes[device.get_device_type()];
|
let wrapperClass = this._dtypes[device.get_device_type()];
|
||||||
if (wrapperClass) {
|
if (wrapperClass) {
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
From 78d58deb5afbe4fc06319553d4ed975053589d00 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
|
||||||
Date: Fri, 20 Oct 2017 15:29:07 +0200
|
|
||||||
Subject: network: Spawn wifi panel for further WPA enterprise configuration
|
|
||||||
|
|
||||||
Settings recently split Wi-Fi configuration from the Network panel,
|
|
||||||
so launch that instead.
|
|
||||||
|
|
||||||
https://bugzilla.gnome.org/show_bug.cgi?id=789231
|
|
||||||
---
|
|
||||||
js/ui/status/network.js | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
|
|
||||||
index 02a43c1..9575af7 100644
|
|
||||||
--- a/js/ui/status/network.js
|
|
||||||
+++ b/js/ui/status/network.js
|
|
||||||
@@ -951,7 +951,7 @@ var NMWirelessDialog = new Lang.Class({
|
|
||||||
|| (accessPoints[0]._secType == NMAccessPointSecurity.WPA_ENT)) {
|
|
||||||
// 802.1x-enabled APs require further configuration, so they're
|
|
||||||
// handled in gnome-control-center
|
|
||||||
- Util.spawn(['gnome-control-center', 'network', 'connect-8021x-wifi',
|
|
||||||
+ Util.spawn(['gnome-control-center', 'wifi', 'connect-8021x-wifi',
|
|
||||||
this._device.get_path(), accessPoints[0].dbus_path]);
|
|
||||||
} else {
|
|
||||||
let connection = new NetworkManager.Connection();
|
|
||||||
--
|
|
||||||
cgit v0.12
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
From 5f8a5114833d7d31d4bd64affbd323bb7252c3d0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
|
||||||
Date: Fri, 6 Oct 2017 20:26:24 -0400
|
|
||||||
Subject: [PATCH] layout: Unset primary and bottom monitor when headless
|
|
||||||
|
|
||||||
We were handling being initially headless by only setting the primary
|
|
||||||
and bottom monitor if there was any primary monitor, then checking the
|
|
||||||
primary monitor reference before making calls assuming there was any
|
|
||||||
monitors.
|
|
||||||
|
|
||||||
What we didn't do was unset the primary and bottom monitor when going
|
|
||||||
headless, meaning that temporarly disconnecting a monitor while having
|
|
||||||
windows open caused an assert to be triggered due to various code paths
|
|
||||||
taking the path assuming there are valid monitors.
|
|
||||||
|
|
||||||
Unsetting both the primary and bottom monitor when going headless avoids
|
|
||||||
the code paths in the same way as they were avoided when starting
|
|
||||||
headless.
|
|
||||||
|
|
||||||
https://bugzilla.gnome.org/show_bug.cgi?id=788607
|
|
||||||
---
|
|
||||||
js/ui/layout.js | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/js/ui/layout.js b/js/ui/layout.js
|
|
||||||
index 304c2a152..2f1894775 100644
|
|
||||||
--- a/js/ui/layout.js
|
|
||||||
+++ b/js/ui/layout.js
|
|
||||||
@@ -351,6 +351,9 @@ var LayoutManager = new Lang.Class({
|
|
||||||
this._loadBackground();
|
|
||||||
this._pendingLoadBackground = false;
|
|
||||||
}
|
|
||||||
+ } else {
|
|
||||||
+ this.primaryMonitor = null;
|
|
||||||
+ this.bottomMonitor = null;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
--
|
|
||||||
2.14.2
|
|
||||||
|
|
@ -1,3 +1,29 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Nov 6 01:04:48 UTC 2017 - xwang@suse.com
|
||||||
|
|
||||||
|
- Move SLE-Classic function to gnome-shell-extensions package
|
||||||
|
(bsc#1065611).
|
||||||
|
+ Remove gs-sle-classic-ext.patch
|
||||||
|
+ Remove SLEClassicExt.js
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Nov 4 03:08:24 UTC 2017 - luc14n0@linuxmail.org
|
||||||
|
|
||||||
|
- Update to version 3.26.2:
|
||||||
|
+ Dump javascript stack on aborts, traps and segfaults
|
||||||
|
(bgo#789237).
|
||||||
|
+ Misc. bug fixes: bgo#788607, bgo#789018, bgo#789231.
|
||||||
|
+ Updated translations.
|
||||||
|
- Update Url to https://wiki.gnome.org/Projects/GnomeShell: current
|
||||||
|
GNOME Shell's project web page.
|
||||||
|
- Drop %glib2_gsettings_schema_requires macro: the functionality is
|
||||||
|
covered by file triggers now.
|
||||||
|
- Drop fixed upstream patches:
|
||||||
|
gnome-shell-unset-primary-and-bottom-monitor-when-headless.patch
|
||||||
|
and gnome-shell-spawn-wifi-panel-for-wep-configuration.patch.
|
||||||
|
- Rebase patches: gnome-shell-private-connection.patch and
|
||||||
|
gnome-shell-osk-dont-popup-when-not-needed.patch.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sat Oct 28 15:43:07 UTC 2017 - badshah400@gmail.com
|
Sat Oct 28 15:43:07 UTC 2017 - badshah400@gmail.com
|
||||||
|
|
||||||
|
@ -18,22 +18,20 @@
|
|||||||
|
|
||||||
%global __requires_exclude typelib\\(Meta\\)
|
%global __requires_exclude typelib\\(Meta\\)
|
||||||
Name: gnome-shell
|
Name: gnome-shell
|
||||||
Version: 3.26.1
|
Version: 3.26.2
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: GNOME Shell
|
Summary: GNOME Shell
|
||||||
License: GPL-2.0+
|
License: GPL-2.0+
|
||||||
Group: System/GUI/GNOME
|
Group: System/GUI/GNOME
|
||||||
Url: http://live.gnome.org/GnomeShell
|
Url: https://wiki.gnome.org/Projects/GnomeShell
|
||||||
Source: http://download.gnome.org/sources/gnome-shell/3.26/%{name}-%{version}.tar.xz
|
Source: https://download.gnome.org/sources/gnome-shell/3.26/%{name}-%{version}.tar.xz
|
||||||
# SOURCE-FEATURE-SLE SLE-Classic specific core extension file, see bnc#862615
|
|
||||||
Source1: SLEClassicExt.js
|
|
||||||
# SOURCE-FEATURE-SLE aboutMenu fate#314545 dliang@suse.com -- Add an applet on login UI to display suse icon, product name, hostname.
|
# SOURCE-FEATURE-SLE aboutMenu fate#314545 dliang@suse.com -- Add an applet on login UI to display suse icon, product name, hostname.
|
||||||
Source2: aboutMenu.js
|
Source2: aboutMenu.js
|
||||||
# SOURCE-FEATURE-SLE sle-background bsc#1007468 xwang@suse.com -- Add SUSE logo on lock screen for GNOME theme
|
# SOURCE-FEATURE-SLE sle-background bsc#1007468 xwang@suse.com -- Add SUSE logo on lock screen for GNOME theme
|
||||||
Source3: sle-background.png
|
Source3: sle-background.png
|
||||||
# PATCH-FIX-OPENSUSE gnome-shell-meson.patch dimstar@opensuse.org -- Fix rpath statement for gvc (needs validation, upstream fix)
|
# PATCH-FIX-OPENSUSE gnome-shell-meson.patch dimstar@opensuse.org -- Fix rpath statement for gvc (needs validation, upstream fix)
|
||||||
Patch0: gnome-shell-meson.patch
|
Patch0: gnome-shell-meson.patch
|
||||||
# PATCH-NEEDS-REBASE gnome-shell-private-connection.patch bnc#751211 bgo#646187 dimstar@opensuse.org -- create private connections if the user is not authorized Was PATCH-FIX-UPSTREAM
|
# PATCH-FIX-UPSTREAM gnome-shell-private-connection.patch bnc#751211 bgo#646187 dimstar@opensuse.org -- create private connections if the user is not authorized
|
||||||
Patch1: gnome-shell-private-connection.patch
|
Patch1: gnome-shell-private-connection.patch
|
||||||
# PATCH-FIX-OPENSUSE gnome-shell-disable-ibus-when-not-installed.patch bsc#987360 qzhao@suse.com -- disable ibus start when outof Chinese, Japanese, Korean area.
|
# PATCH-FIX-OPENSUSE gnome-shell-disable-ibus-when-not-installed.patch bsc#987360 qzhao@suse.com -- disable ibus start when outof Chinese, Japanese, Korean area.
|
||||||
Patch2: gnome-shell-disable-ibus-when-not-installed.patch
|
Patch2: gnome-shell-disable-ibus-when-not-installed.patch
|
||||||
@ -41,12 +39,8 @@ Patch2: gnome-shell-disable-ibus-when-not-installed.patch
|
|||||||
Patch3: gnome-shell-Avoid-loginDialog-grab-focus-when-locked.patch
|
Patch3: gnome-shell-Avoid-loginDialog-grab-focus-when-locked.patch
|
||||||
# PATCH-FIX-UPSTREAM gnome-shell-osk-dont-popup-when-not-needed.patch bgo#788188 badshah400@gmail.com -- Stop the on-screen keyboard from showing up when touchscreen use doesn't activate a text field; patch taken from upstream bug report
|
# PATCH-FIX-UPSTREAM gnome-shell-osk-dont-popup-when-not-needed.patch bgo#788188 badshah400@gmail.com -- Stop the on-screen keyboard from showing up when touchscreen use doesn't activate a text field; patch taken from upstream bug report
|
||||||
Patch4: gnome-shell-osk-dont-popup-when-not-needed.patch
|
Patch4: gnome-shell-osk-dont-popup-when-not-needed.patch
|
||||||
# PATCH-FIX-UPSTREAM gnome-shell-unset-primary-and-bottom-monitor-when-headless.patch bgo#788607 mgorse@suse.com -- unset primary and button monitor when headless; fixes a crash.
|
|
||||||
Patch5: gnome-shell-unset-primary-and-bottom-monitor-when-headless.patch
|
|
||||||
# PATCH-FIX-UPSTREAM gnome-shell-spawn-wifi-panel-for-wep-configuration.patch bgo#789231 badshah400@opensuse.org -- network: Spawn wifi panel for further WPA enterprise configuration
|
|
||||||
Patch6: gnome-shell-spawn-wifi-panel-for-wep-configuration.patch
|
|
||||||
|
|
||||||
## NOTE: Keep SLE only patches at bottom (starting on 1000).
|
## NOTE: Keep SLE-only patches at bottom (starting on 1000).
|
||||||
# PATCH-FEATURE-SLE gnome-shell-gdm-login-applet.patch fate#314545 dliang@suse.com -- Add an applet on login UI to display suse icon, product name, hostname.
|
# PATCH-FEATURE-SLE gnome-shell-gdm-login-applet.patch fate#314545 dliang@suse.com -- Add an applet on login UI to display suse icon, product name, hostname.
|
||||||
Patch1001: gnome-shell-gdm-login-applet.patch
|
Patch1001: gnome-shell-gdm-login-applet.patch
|
||||||
# PATCH-FEATURE-SLE gnome-shell-domain.patch fate#307773 dliang@suse.com -- Active Directory Integration
|
# PATCH-FEATURE-SLE gnome-shell-domain.patch fate#307773 dliang@suse.com -- Active Directory Integration
|
||||||
@ -63,9 +57,6 @@ Patch1006: gnome-shell-lock-bg-on-primary.patch
|
|||||||
Patch1007: gs-fate318433-prevent-same-account-multi-logins.patch
|
Patch1007: gs-fate318433-prevent-same-account-multi-logins.patch
|
||||||
# PATCH-FEATURE-SLE gnome-shell-1007468-lock-screen-SUSE-logo-missing.patch xwang@suse.com -- Add SUSE logo on lock screen for GNOME theme.
|
# PATCH-FEATURE-SLE gnome-shell-1007468-lock-screen-SUSE-logo-missing.patch xwang@suse.com -- Add SUSE logo on lock screen for GNOME theme.
|
||||||
Patch1008: gnome-shell-1007468-lock-screen-SUSE-logo-missing.patch
|
Patch1008: gnome-shell-1007468-lock-screen-SUSE-logo-missing.patch
|
||||||
## NOTE: Keep SLE Classic pathes at bottom.
|
|
||||||
# PATCH-FEATURE-SLE gs-sle-classic-ext.patch bnc#862615 cxiong@suse.com -- add SLE Classic support
|
|
||||||
Patch1100: gs-sle-classic-ext.patch
|
|
||||||
|
|
||||||
# needed for directory ownership
|
# needed for directory ownership
|
||||||
BuildRequires: dbus-1
|
BuildRequires: dbus-1
|
||||||
@ -133,7 +124,6 @@ Recommends: gnome-clocks
|
|||||||
Obsoletes: gnome-shell-wayland
|
Obsoletes: gnome-shell-wayland
|
||||||
# gnome-shell implements the dbus interface org.freedesktop.Notifications directly
|
# gnome-shell implements the dbus interface org.freedesktop.Notifications directly
|
||||||
Provides: dbus(org.freedesktop.Notifications)
|
Provides: dbus(org.freedesktop.Notifications)
|
||||||
%glib2_gsettings_schema_requires
|
|
||||||
%if !0%{?is_opensuse}
|
%if !0%{?is_opensuse}
|
||||||
BuildRequires: translation-update-upstream
|
BuildRequires: translation-update-upstream
|
||||||
%endif
|
%endif
|
||||||
@ -189,13 +179,10 @@ into GNOME Shell calendar.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
# Needs rebase
|
%patch1 -p1
|
||||||
#patch1 -p1
|
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
|
||||||
%patch6 -p1
|
|
||||||
|
|
||||||
%if !0%{?is_opensuse}
|
%if !0%{?is_opensuse}
|
||||||
%patch1001 -p1
|
%patch1001 -p1
|
||||||
@ -206,10 +193,8 @@ into GNOME Shell calendar.
|
|||||||
%patch1006 -p1
|
%patch1006 -p1
|
||||||
%patch1007 -p1
|
%patch1007 -p1
|
||||||
%patch1008 -p1
|
%patch1008 -p1
|
||||||
%patch1100 -p1
|
|
||||||
translation-update-upstream
|
translation-update-upstream
|
||||||
%endif
|
%endif
|
||||||
cp %{SOURCE1} js/ui/
|
|
||||||
%if !0%{?is_opensuse}
|
%if !0%{?is_opensuse}
|
||||||
cp %{SOURCE2} js/ui/
|
cp %{SOURCE2} js/ui/
|
||||||
cp %{SOURCE3} data/theme/
|
cp %{SOURCE3} data/theme/
|
||||||
@ -278,7 +263,7 @@ install -d %{buildroot}%{_datadir}/gnome-shell/modes
|
|||||||
%files browser-plugin
|
%files browser-plugin
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%doc browser-plugin/README
|
%doc browser-plugin/README
|
||||||
#%{_libdir}/browser-plugins/libgnome-shell-browser-plugin.*
|
#%%{_libdir}/browser-plugins/libgnome-shell-browser-plugin.*
|
||||||
%dir %{_libdir}/mozilla/plugins/
|
%dir %{_libdir}/mozilla/plugins/
|
||||||
%dir %{_libdir}/mozilla
|
%dir %{_libdir}/mozilla
|
||||||
%{_libdir}/mozilla/plugins/libgnome-shell-browser-plugin.*
|
%{_libdir}/mozilla/plugins/libgnome-shell-browser-plugin.*
|
||||||
|
@ -1,156 +0,0 @@
|
|||||||
Index: gnome-shell-3.26.1/js/js-resources.gresource.xml
|
|
||||||
===================================================================
|
|
||||||
--- gnome-shell-3.26.1.orig/js/js-resources.gresource.xml
|
|
||||||
+++ gnome-shell-3.26.1/js/js-resources.gresource.xml
|
|
||||||
@@ -111,6 +111,7 @@
|
|
||||||
<file>ui/workspaceThumbnail.js</file>
|
|
||||||
<file>ui/workspacesView.js</file>
|
|
||||||
<file>ui/xdndHandler.js</file>
|
|
||||||
+ <file>ui/SLEClassicExt.js</file>
|
|
||||||
|
|
||||||
<file>ui/components/__init__.js</file>
|
|
||||||
<file>ui/components/autorunManager.js</file>
|
|
||||||
Index: gnome-shell-3.26.1/js/ui/layout.js
|
|
||||||
===================================================================
|
|
||||||
--- gnome-shell-3.26.1.orig/js/ui/layout.js
|
|
||||||
+++ gnome-shell-3.26.1/js/ui/layout.js
|
|
||||||
@@ -25,6 +25,8 @@ var BACKGROUND_FADE_ANIMATION_TIME = 1.0
|
|
||||||
var HOT_CORNER_PRESSURE_THRESHOLD = 100; // pixels
|
|
||||||
var HOT_CORNER_PRESSURE_TIMEOUT = 1000; // ms
|
|
||||||
|
|
||||||
+const SLEClassicExt = imports.ui.SLEClassicExt;
|
|
||||||
+
|
|
||||||
function isPopupMetaWindow(actor) {
|
|
||||||
switch(actor.meta_window.get_window_type()) {
|
|
||||||
case Meta.WindowType.DROPDOWN_MENU:
|
|
||||||
@@ -477,7 +479,7 @@ var LayoutManager = new Lang.Class({
|
|
||||||
if (!this.primaryMonitor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- this.panelBox.set_position(this.primaryMonitor.x, this.primaryMonitor.y);
|
|
||||||
+ SLEClassicExt.setMainPanelPosition(this.panelBox, this.primaryMonitor);
|
|
||||||
this.panelBox.set_size(this.primaryMonitor.width, -1);
|
|
||||||
|
|
||||||
this.keyboardIndex = this.primaryIndex;
|
|
||||||
Index: gnome-shell-3.26.1/js/ui/main.js
|
|
||||||
===================================================================
|
|
||||||
--- gnome-shell-3.26.1.orig/js/ui/main.js
|
|
||||||
+++ gnome-shell-3.26.1/js/ui/main.js
|
|
||||||
@@ -45,6 +45,8 @@ const Magnifier = imports.ui.magnifier;
|
|
||||||
const XdndHandler = imports.ui.xdndHandler;
|
|
||||||
const Util = imports.misc.util;
|
|
||||||
|
|
||||||
+const SLEClassicExt = imports.ui.SLEClassicExt;
|
|
||||||
+
|
|
||||||
const A11Y_SCHEMA = 'org.gnome.desktop.a11y.keyboard';
|
|
||||||
const STICKY_KEYS_ENABLE = 'stickykeys-enable';
|
|
||||||
const GNOMESHELL_STARTED_MESSAGE_ID = 'f3ea493c22934e26811cd62abe8e203a';
|
|
||||||
@@ -131,6 +133,8 @@ function start() {
|
|
||||||
shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler();
|
|
||||||
|
|
||||||
_sessionUpdated();
|
|
||||||
+
|
|
||||||
+ SLEClassicExt.init();
|
|
||||||
}
|
|
||||||
|
|
||||||
function _initializeUI() {
|
|
||||||
Index: gnome-shell-3.26.1/js/ui/panel.js
|
|
||||||
===================================================================
|
|
||||||
--- gnome-shell-3.26.1.orig/js/ui/panel.js
|
|
||||||
+++ gnome-shell-3.26.1/js/ui/panel.js
|
|
||||||
@@ -25,6 +25,8 @@ const RemoteMenu = imports.ui.remoteMenu
|
|
||||||
const Main = imports.ui.main;
|
|
||||||
const Tweener = imports.ui.tweener;
|
|
||||||
|
|
||||||
+const SLEClassicExt = imports.ui.SLEClassicExt
|
|
||||||
+
|
|
||||||
var PANEL_ICON_SIZE = 16;
|
|
||||||
var APP_MENU_ICON_MARGIN = 0;
|
|
||||||
|
|
||||||
@@ -856,7 +858,9 @@ var Panel = new Lang.Class({
|
|
||||||
alloc.natural_size = -1;
|
|
||||||
},
|
|
||||||
|
|
||||||
- _allocate: function(actor, box, flags) {
|
|
||||||
+ _allocate: SLEClassicExt._allocate,
|
|
||||||
+
|
|
||||||
+ _allocateOrigin: function(actor, box, flags) {
|
|
||||||
let allocWidth = box.x2 - box.x1;
|
|
||||||
let allocHeight = box.y2 - box.y1;
|
|
||||||
|
|
||||||
Index: gnome-shell-3.26.1/js/ui/sessionMode.js
|
|
||||||
===================================================================
|
|
||||||
--- gnome-shell-3.26.1.orig/js/ui/sessionMode.js
|
|
||||||
+++ gnome-shell-3.26.1/js/ui/sessionMode.js
|
|
||||||
@@ -13,6 +13,8 @@ const Config = imports.misc.config;
|
|
||||||
|
|
||||||
const DEFAULT_MODE = 'restrictive';
|
|
||||||
|
|
||||||
+const SLEClassicExt = imports.ui.SLEClassicExt;
|
|
||||||
+
|
|
||||||
const _modes = {
|
|
||||||
'restrictive': {
|
|
||||||
parentMode: null,
|
|
||||||
@@ -118,6 +120,7 @@ function _loadMode(file, info) {
|
|
||||||
try {
|
|
||||||
[success, fileContent, tag] = file.load_contents(null);
|
|
||||||
newMode = JSON.parse(fileContent);
|
|
||||||
+ newMode = SLEClassicExt.convertClassic2SLE(newMode);
|
|
||||||
} catch(e) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Index: gnome-shell-3.26.1/js/ui/overviewControls.js
|
|
||||||
===================================================================
|
|
||||||
--- gnome-shell-3.26.1.orig/js/ui/overviewControls.js
|
|
||||||
+++ gnome-shell-3.26.1/js/ui/overviewControls.js
|
|
||||||
@@ -13,6 +13,7 @@ const Params = imports.misc.params;
|
|
||||||
const Tweener = imports.ui.tweener;
|
|
||||||
const ViewSelector = imports.ui.viewSelector;
|
|
||||||
const WorkspaceThumbnail = imports.ui.workspaceThumbnail;
|
|
||||||
+const SLEClassicExt = imports.ui.SLEClassicExt;
|
|
||||||
|
|
||||||
var SIDE_CONTROLS_ANIMATION_TIME = 0.16;
|
|
||||||
|
|
||||||
@@ -459,6 +460,9 @@ var ControlsManager = new Lang.Class({
|
|
||||||
geometry.width -= dashWidth;
|
|
||||||
geometry.width -= thumbnailsWidth;
|
|
||||||
|
|
||||||
+ if(SLEClassicExt.isSLEClassicMode())
|
|
||||||
+ geometry.height -= Main.layoutManager.panelBox.height;
|
|
||||||
+
|
|
||||||
if (this.actor.get_text_direction() == Clutter.TextDirection.LTR)
|
|
||||||
geometry.x += dashWidth;
|
|
||||||
else
|
|
||||||
Index: gnome-shell-3.26.1/js/ui/workspace.js
|
|
||||||
===================================================================
|
|
||||||
--- gnome-shell-3.26.1.orig/js/ui/workspace.js
|
|
||||||
+++ gnome-shell-3.26.1/js/ui/workspace.js
|
|
||||||
@@ -17,6 +17,7 @@ const Main = imports.ui.main;
|
|
||||||
const Overview = imports.ui.overview;
|
|
||||||
const Tweener = imports.ui.tweener;
|
|
||||||
const WindowManager = imports.ui.windowManager;
|
|
||||||
+const SLEClassicExt = imports.ui.SLEClassicExt;
|
|
||||||
|
|
||||||
var WINDOW_DND_SIZE = 256;
|
|
||||||
|
|
||||||
@@ -869,6 +870,9 @@ var LayoutStrategy = new Lang.Class({
|
|
||||||
let hspacing = (layout.maxColumns - 1) * this._columnSpacing;
|
|
||||||
let vspacing = (layout.numRows - 1) * this._rowSpacing;
|
|
||||||
|
|
||||||
+ if(SLEClassicExt.isSLEClassicMode())
|
|
||||||
+ vspacing = layout.numRows * this._rowSpacing;
|
|
||||||
+
|
|
||||||
let spacedWidth = area.width - hspacing;
|
|
||||||
let spacedHeight = area.height - vspacing;
|
|
||||||
|
|
||||||
@@ -901,6 +905,10 @@ var LayoutStrategy = new Lang.Class({
|
|
||||||
}
|
|
||||||
|
|
||||||
let verticalSpacing = (rows.length - 1) * this._rowSpacing;
|
|
||||||
+
|
|
||||||
+ if(SLEClassicExt.isSLEClassicMode())
|
|
||||||
+ verticalSpacing = rows.length * this._rowSpacing;
|
|
||||||
+
|
|
||||||
let additionalVerticalScale = Math.min(1, (area.height - verticalSpacing) / heightWithoutSpacing);
|
|
||||||
|
|
||||||
// keep track how much smaller the grid becomes due to scaling
|
|
Loading…
x
Reference in New Issue
Block a user