pacho 14/04/12 09:35:42
Added: gnome-shell-3.10.4-wired-network.patch
gnome-shell-3.10.4-activate-workspace.patch
gnome-shell-3.10.4-scale-factor.patch
gnome-shell-3.10.4-broken-crosshairs.patch
gnome-shell-3.10.4-restore-pref.patch
Removed: gnome-shell-3.8.3-networkmanager-flag.patch
gnome-shell-3.8.4-revert-async.patch
gnome-shell-3.8.4-nodisplay.patch
gnome-shell-3.8.0-networkmanager-flag-r1.patch
gnome-shell-3.8.3-relock-screen.patch
gnome-shell-3.8.4-events-lock.patch
gnome-shell-3.6.0-networkmanager-flag.patch
gnome-shell-3.8.4-allocate-scrollbars.patch
gnome-shell-3.7.90-bluetooth-flag.patch
gnome-shell-3.8.4-close-rundialog.patch
gnome-shell-3.8.4-reset-opacity.patch
Log:
Apply multiple upstream fixes from 3.10 and master branches (this includes
the re-addition of wired connection indicator, bug #507400 by Alexi
Yelistratov). Drop old.
(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key
A188FBD4)
Revision Changes Path
1.1
gnome-base/gnome-shell/files/gnome-shell-3.10.4-wired-network.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.10.4-wired-network.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.10.4-wired-network.patch?rev=1.1&content-type=text/plain
Index: gnome-shell-3.10.4-wired-network.patch
===================================================================
>From 7051411be7bbfd9e0c2e831762c87872e5bde468 Mon Sep 17 00:00:00 2001
From: "Jasper St. Pierre" <[email protected]>
Date: Thu, 23 Jan 2014 14:25:06 -0500
Subject: network: Add a Wired device
This isn't quite like the design, as we don't show icons for other
devices when wired is in an error state.
https://bugzilla.gnome.org/show_bug.cgi?id=708966
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
index a3de3dd..3dc694e 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -21,6 +21,7 @@ const Util = imports.misc.util;
const NMConnectionCategory = {
INVALID: 'invalid',
+ WIRED: 'wired',
WIRELESS: 'wireless',
WWAN: 'wwan',
VPN: 'vpn'
@@ -296,6 +297,11 @@ const NMConnectionDevice = new Lang.Class({
this._activeConnectionChangedId =
this._device.connect('notify::active-connection', Lang.bind(this,
this._activeConnectionChanged));
},
+ _autoConnect: function() {
+ let connection = new NetworkManager.Connection();
+ this._client.add_and_activate_connection(connection, this._device,
null, null);
+ },
+
destroy: function() {
if (this._stateChangedId) {
GObject.Object.prototype.disconnect.call(this._device,
this._stateChangedId);
@@ -413,6 +419,48 @@ const NMConnectionDevice = new Lang.Class({
},
});
+const NMDeviceWired = new Lang.Class({
+ Name: 'NMDeviceWired',
+ Extends: NMConnectionDevice,
+ category: NMConnectionCategory.WIRED,
+
+ _init: function(client, device, settings) {
+ this.parent(client, device, settings);
+
+ this.item.menu.addMenuItem(createSettingsAction(_("Wired Settings"),
device));
+ },
+
+ _isConnected: function() {
+ if (!this._device.active_connection)
+ return false;
+
+ let state = this._device.active_connection.state;
+ return state >= NetworkManager.ActiveConnectionState.ACTIVATING;
+ },
+
+ _sync: function() {
+ this.item.actor.visible = this._isConnected();
+ this.parent();
+ },
+
+ _getMenuIcon: function() {
+ if (this._device.active_connection)
+ return this.getIndicatorIcon();
+ else
+ return 'network-wired-disconnected-symbolic';
+ },
+
+ getIndicatorIcon: function() {
+ let state = this._device.active_connection.state;
+ if (state == NetworkManager.ActiveConnectionState.ACTIVATING)
+ return 'network-wired-acquiring-symbolic';
+ else if (state == NetworkManager.ActiveConnectionState.ACTIVATED)
+ return 'network-wired-symbolic';
+ else
+ return 'network-wired-disconnected-symbolic';
+ }
+});
+
const NMDeviceModem = new Lang.Class({
Name: 'NMDeviceModem',
Extends: NMConnectionDevice,
@@ -510,18 +558,6 @@ const NMDeviceBluetooth = new Lang.Class({
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband
Settings"), device));
},
- _autoConnect: function() {
- // FIXME: DUN devices are configured like modems, so
- // We need to spawn the mobile wizard
- // but the network panel doesn't support bluetooth at the moment
- // so we just create an empty connection and hope
- // that this phone supports PAN
-
- let connection = new NetworkManager.Connection();
- this._client.add_and_activate_connection(connection, this._device,
null, null);
- return true;
- },
-
_getMenuIcon: function() {
if (this._device.active_connection)
return this.getIndicatorIcon();
@@ -1266,6 +1302,7 @@ const NMApplet = new Lang.Class({
// Device types
this._dtypes = { };
+ this._dtypes[NetworkManager.DeviceType.ETHERNET] = NMDeviceWired;
this._dtypes[NetworkManager.DeviceType.WIFI] = NMDeviceWireless;
this._dtypes[NetworkManager.DeviceType.MODEM] = NMDeviceModem;
this._dtypes[NetworkManager.DeviceType.BT] = NMDeviceBluetooth;
@@ -1273,6 +1310,7 @@ const NMApplet = new Lang.Class({
// Connection types
this._ctypes = { };
+ this._ctypes[NetworkManager.SETTING_WIRED_SETTING_NAME] =
NMConnectionCategory.WIRED;
this._ctypes[NetworkManager.SETTING_WIRELESS_SETTING_NAME] =
NMConnectionCategory.WIRELESS;
this._ctypes[NetworkManager.SETTING_BLUETOOTH_SETTING_NAME] =
NMConnectionCategory.WWAN;
this._ctypes[NetworkManager.SETTING_CDMA_SETTING_NAME] =
NMConnectionCategory.WWAN;
@@ -1295,6 +1333,15 @@ const NMApplet = new Lang.Class({
this._tryLateInit();
},
+ _createDeviceCategory: function() {
+ let category = {
+ section: new PopupMenu.PopupMenuSection(),
+ devices: [ ],
+ };
+ this.menu.addMenuItem(category.section);
+ return category;
+ },
+
_tryLateInit: function() {
if (!this._client || !this._settings)
return;
@@ -1310,17 +1357,9 @@ const NMApplet = new Lang.Class({
this._nmDevices = [];
this._devices = { };
- this._devices.wireless = {
- section: new PopupMenu.PopupMenuSection(),
- devices: [ ],
- };
- this.menu.addMenuItem(this._devices.wireless.section);
-
- this._devices.wwan = {
- section: new PopupMenu.PopupMenuSection(),
- devices: [ ],
- };
- this.menu.addMenuItem(this._devices.wwan.section);
+ this._devices.wired = this._createDeviceCategory();
+ this._devices.wireless = this._createDeviceCategory();
+ this._devices.wwan = this._createDeviceCategory();
this._vpnSection = new NMVPNSection(this._client);
this._vpnSection.connect('activation-failed', Lang.bind(this,
this._onActivationFailed));
--
cgit v0.10.1
1.1
gnome-base/gnome-shell/files/gnome-shell-3.10.4-activate-workspace.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.10.4-activate-workspace.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.10.4-activate-workspace.patch?rev=1.1&content-type=text/plain
Index: gnome-shell-3.10.4-activate-workspace.patch
===================================================================
>From 0dab133fe578b3b12241ce6f01b58bc755088da8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <[email protected]>
Date: Mon, 30 Sep 2013 19:55:26 +0200
Subject: windowManager: Activate new workspace before removing the current one
When removing the current workspace, the active workspace is changed
to the preceding one automatically before we change explicitly to the
last workspace. There is no good reason to change workspaces twice in
this case, we can avoid the first one just by changing to the new
workspace before removing any workspaces.
https://bugzilla.gnome.org/show_bug.cgi?id=709064
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index 75be4c5..31b7d2d 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -254,6 +254,8 @@ const WorkspaceTracker = new Lang.Class({
if (removingCurrentWorkspace) {
// "Merge" the empty workspace we are removing with the one at the
end
this._wm.blockAnimations();
+ global.screen.get_workspace_by_index(global.screen.n_workspaces -
1).activate(global.get_current_time());
+ this._wm.unblockAnimations();
}
// Delete other empty workspaces; do it from the end to avoid index
changes
@@ -262,11 +264,6 @@ const WorkspaceTracker = new Lang.Class({
global.screen.remove_workspace(this._workspaces[i],
global.get_current_time());
}
- if (removingCurrentWorkspace) {
- global.screen.get_workspace_by_index(global.screen.n_workspaces -
1).activate(global.get_current_time());
- this._wm.unblockAnimations();
- }
-
this._checkWorkspacesId = 0;
return false;
},
--
cgit v0.10.1
1.1
gnome-base/gnome-shell/files/gnome-shell-3.10.4-scale-factor.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.10.4-scale-factor.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.10.4-scale-factor.patch?rev=1.1&content-type=text/plain
Index: gnome-shell-3.10.4-scale-factor.patch
===================================================================
>From a3d9946803326a5d1fc76c617733df82c7057434 Mon Sep 17 00:00:00 2001
From: "Jasper St. Pierre" <[email protected]>
Date: Sat, 22 Feb 2014 18:00:57 -0500
Subject: shell-global: Only set the scale factor if get_setting succeeded
If gdk_screen_get_setting fails, like if it's running without XSettings,
then the GValue will have a value of 0. A lot of code tries to divide by
the scale factor. This produces NaN, and combined with the fact that NaN
is "leaky", we very quickly end up spinning out of control.
diff --git a/src/shell-global.c b/src/shell-global.c
index 852d14f..7a9f6c7 100644
--- a/src/shell-global.c
+++ b/src/shell-global.c
@@ -749,8 +749,8 @@ update_scale_factor (GdkScreen *screen, gpointer data)
GValue value = G_VALUE_INIT;
g_value_init (&value, G_TYPE_INT);
- gdk_screen_get_setting (global->gdk_screen, "gdk-window-scaling-factor",
&value);
- g_object_set (context, "scale-factor", g_value_get_int (&value), NULL);
+ if (gdk_screen_get_setting (global->gdk_screen, "gdk-window-scaling-factor",
&value))
+ g_object_set (context, "scale-factor", g_value_get_int (&value), NULL);
}
/* This is an IBus workaround. The flow of events with IBus is that every time
--
cgit v0.10.1
1.1
gnome-base/gnome-shell/files/gnome-shell-3.10.4-broken-crosshairs.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.10.4-broken-crosshairs.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.10.4-broken-crosshairs.patch?rev=1.1&content-type=text/plain
Index: gnome-shell-3.10.4-broken-crosshairs.patch
===================================================================
>From 713d4aa6c4a606c8479d7160e9df3fb79d7ec7f0 Mon Sep 17 00:00:00 2001
From: Magdalen Berns <[email protected]>
Date: Wed, 5 Feb 2014 20:53:21 +0000
Subject: [PATCH] Magnifier: Restore crosshairs
This patch is to restore broken crosshairs so they may be used
once more
https://bugzilla.gnome.org/show_bug.cgi?id=723709
magnifier.js
---
js/ui/magnifier.js | 131 +++++++++++++++++++++++------------------------------
1 file changed, 56 insertions(+), 75 deletions(-)
diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js
index 2a6ac38..96c12b2 100644
--- a/js/ui/magnifier.js
+++ b/js/ui/magnifier.js
@@ -57,20 +57,6 @@ const Magnifier = new Lang.Class({
// Magnifier is a manager of ZoomRegions.
this._zoomRegions = [];
- // Export to dbus.
- magDBusService = new MagnifierDBus.ShellMagnifier();
-
- let showAtLaunch = this._settingsInit();
- this.setActive(showAtLaunch);
- },
-
- _initialize: function() {
- if (this._initialized)
- return;
- this._initialized = true;
-
- this._settingsInitLate();
-
// Create small clutter tree for the magnified mouse.
let cursorTracker = Meta.CursorTracker.get_for_screen(global.screen);
this._mouseSprite = new Clutter.Texture();
@@ -86,11 +72,15 @@ const Magnifier = new Lang.Class({
let aZoomRegion = new ZoomRegion(this, this._cursorRoot);
this._zoomRegions.push(aZoomRegion);
- this._settingsInitRegion(aZoomRegion);
+ let showAtLaunch = this._settingsInit(aZoomRegion);
aZoomRegion.scrollContentsTo(this.xMouse, this.yMouse);
cursorTracker.connect('cursor-changed', Lang.bind(this,
this._updateMouseSprite));
this._cursorTracker = cursorTracker;
+
+ // Export to dbus.
+ magDBusService = new MagnifierDBus.ShellMagnifier();
+ this.setActive(showAtLaunch);
},
/**
@@ -115,12 +105,6 @@ const Magnifier = new Lang.Class({
* @activate: Boolean to activate or de-activate the magnifier.
*/
setActive: function(activate) {
- if (activate == this.isActive())
- return;
-
- if (activate)
- this._initialize();
-
this._zoomRegions.forEach (function(zoomRegion, index, array) {
zoomRegion.setActive(activate);
});
@@ -452,68 +436,64 @@ const Magnifier = new Lang.Class({
this._mouseSprite.set_anchor_point(xHot, yHot);
},
- _settingsInitRegion: function(zoomRegion) {
- // Mag factor is accurate to two decimal places.
- let aPref =
parseFloat(this._settings.get_double(MAG_FACTOR_KEY).toFixed(2));
- if (aPref != 0.0)
- zoomRegion.setMagFactor(aPref, aPref);
-
- aPref = this._settings.get_enum(SCREEN_POSITION_KEY);
- if (aPref)
- zoomRegion.setScreenPosition(aPref);
-
- zoomRegion.setLensMode(this._settings.get_boolean(LENS_MODE_KEY));
-
zoomRegion.setClampScrollingAtEdges(!this._settings.get_boolean(CLAMP_MODE_KEY));
-
- aPref = this._settings.get_enum(MOUSE_TRACKING_KEY);
- if (aPref)
- zoomRegion.setMouseTrackingMode(aPref);
-
- aPref = this._settings.get_enum(FOCUS_TRACKING_KEY);
- if (aPref)
- zoomRegion.setFocusTrackingMode(aPref);
-
- aPref = this._settings.get_enum(CARET_TRACKING_KEY);
- if (aPref)
- zoomRegion.setCaretTrackingMode(aPref);
-
- aPref = this._settings.get_boolean(INVERT_LIGHTNESS_KEY);
- if (aPref)
- zoomRegion.setInvertLightness(aPref);
-
- aPref = this._settings.get_double(COLOR_SATURATION_KEY);
- if (aPref)
- zoomRegion.setColorSaturation(aPref);
-
- let bc = {};
- bc.r = this._settings.get_double(BRIGHT_RED_KEY);
- bc.g = this._settings.get_double(BRIGHT_GREEN_KEY);
- bc.b = this._settings.get_double(BRIGHT_BLUE_KEY);
- zoomRegion.setBrightness(bc);
-
- bc.r = this._settings.get_double(CONTRAST_RED_KEY);
- bc.g = this._settings.get_double(CONTRAST_GREEN_KEY);
- bc.b = this._settings.get_double(CONTRAST_BLUE_KEY);
- zoomRegion.setContrast(bc);
- },
-
- _settingsInit: function() {
+ _settingsInit: function(zoomRegion) {
this._appSettings = new Gio.Settings({ schema: APPLICATIONS_SCHEMA });
this._settings = new Gio.Settings({ schema: MAGNIFIER_SCHEMA });
- this._appSettings.connect('changed::' + SHOW_KEY, Lang.bind(this,
function() {
- let active = this._appSettings.get_boolean(SHOW_KEY);
- this.setActive(active);
- }));
-
- return this._appSettings.get_boolean(SHOW_KEY);
- },
+ if (zoomRegion) {
+ // Mag factor is accurate to two decimal places.
+ let aPref =
parseFloat(this._settings.get_double(MAG_FACTOR_KEY).toFixed(2));
+ if (aPref != 0.0)
+ zoomRegion.setMagFactor(aPref, aPref);
+
+ aPref = this._settings.get_enum(SCREEN_POSITION_KEY);
+ if (aPref)
+ zoomRegion.setScreenPosition(aPref);
+
+ zoomRegion.setLensMode(this._settings.get_boolean(LENS_MODE_KEY));
+
zoomRegion.setClampScrollingAtEdges(!this._settings.get_boolean(CLAMP_MODE_KEY));
+
+ aPref = this._settings.get_enum(MOUSE_TRACKING_KEY);
+ if (aPref)
+ zoomRegion.setMouseTrackingMode(aPref);
+
+ aPref = this._settings.get_enum(FOCUS_TRACKING_KEY);
+ if (aPref)
+ zoomRegion.setFocusTrackingMode(aPref);
+
+ aPref = this._settings.get_enum(CARET_TRACKING_KEY);
+ if (aPref)
+ zoomRegion.setCaretTrackingMode(aPref);
+
+ aPref = this._settings.get_boolean(INVERT_LIGHTNESS_KEY);
+ if (aPref)
+ zoomRegion.setInvertLightness(aPref);
+
+ aPref = this._settings.get_double(COLOR_SATURATION_KEY);
+ if (aPref)
+ zoomRegion.setColorSaturation(aPref);
+
+ let bc = {};
+ bc.r = this._settings.get_double(BRIGHT_RED_KEY);
+ bc.g = this._settings.get_double(BRIGHT_GREEN_KEY);
+ bc.b = this._settings.get_double(BRIGHT_BLUE_KEY);
+ zoomRegion.setBrightness(bc);
+
+ bc.r = this._settings.get_double(CONTRAST_RED_KEY);
+ bc.g = this._settings.get_double(CONTRAST_GREEN_KEY);
+ bc.b = this._settings.get_double(CONTRAST_BLUE_KEY);
+ zoomRegion.setContrast(bc);
+ }
- _settingsInitLate: function() {
let showCrosshairs = this._settings.get_boolean(SHOW_CROSS_HAIRS_KEY);
this.addCrosshairs();
this.setCrosshairsVisible(showCrosshairs);
+ this._appSettings.connect('changed::' + SHOW_KEY,
+ Lang.bind(this, function() {
+ this.setActive(this._appSettings.get_boolean(SHOW_KEY));
+ }));
+
this._settings.connect('changed::' + SCREEN_POSITION_KEY,
Lang.bind(this, this._updateScreenPosition));
this._settings.connect('changed::' + MAG_FACTOR_KEY,
@@ -577,6 +557,7 @@ const Magnifier = new Lang.Class({
Lang.bind(this, function() {
this.setCrosshairsClip(this._settings.get_boolean(CROSS_HAIRS_CLIP_KEY));
}));
+ return this._appSettings.get_boolean(SHOW_KEY);
},
_updateScreenPosition: function() {
--
1.8.3.2
1.1
gnome-base/gnome-shell/files/gnome-shell-3.10.4-restore-pref.patch
file :
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.10.4-restore-pref.patch?rev=1.1&view=markup
plain:
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/files/gnome-shell-3.10.4-restore-pref.patch?rev=1.1&content-type=text/plain
Index: gnome-shell-3.10.4-restore-pref.patch
===================================================================
>From 45041b421561ffac0bdfc92680a7a948d3623e65 Mon Sep 17 00:00:00 2001
From: Adel Gadllah <[email protected]>
Date: Fri, 21 Feb 2014 12:30:40 +0100
Subject: perf: Restore shell after runs
Currently running the perf tool results into no wm running
afterwards making it hard for the user to get the results from a terminal
and generally does not make it easy for users to run it to gather numbers.
So restore the shell after the test has completed.
https://bugzilla.gnome.org/show_bug.cgi?id=724870
diff --git a/src/gnome-shell-perf-tool.in b/src/gnome-shell-perf-tool.in
index 1ad67b8..4494a92 100644
--- a/src/gnome-shell-perf-tool.in
+++ b/src/gnome-shell-perf-tool.in
@@ -99,6 +99,15 @@ def run_shell(perf_output=None):
shell.wait()
return shell.returncode == 0
+def restore_shell():
+ pid = os.fork()
+ if (pid == 0):
+ if "MUTTER_WM_CLASS_FILTER" in os.environ:
+ del os.environ["MUTTER_WM_CLASS_FILTER"]
+ os.execlp("gnome-shell", "gnome-shell", "--replace")
+ else:
+ sys.exit(0)
+
def upload_performance_report(report_text):
try:
config_home = os.environ['XDG_CONFIG_HOME']
@@ -320,6 +329,6 @@ if args:
normal_exit = run_performance_test()
if normal_exit:
- sys.exit(0)
+ restore_shell()
else:
sys.exit(1)
--
cgit v0.10.1