summaryrefslogtreecommitdiff
path: root/src/gnome-shell-perf-tool.in
diff options
context:
space:
mode:
authorAdel Gadllah <adel.gadllah@gmail.com>2014-02-21 12:30:40 +0100
committerAdel Gadllah <adel.gadllah@gmail.com>2014-02-28 21:40:31 +0100
commite37a3fa7e6a5b19690c6c8f3f1a014a8b346fef5 (patch)
tree9e2864e0042d8a0e11de700c7b8ca6b76098f03b /src/gnome-shell-perf-tool.in
parente23c2ffecc61c088f10480c890077488d2d9c5f5 (diff)
downloadgnome-shell-e37a3fa7e6a5b19690c6c8f3f1a014a8b346fef5.tar.gz
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
Diffstat (limited to 'src/gnome-shell-perf-tool.in')
-rw-r--r--src/gnome-shell-perf-tool.in11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gnome-shell-perf-tool.in b/src/gnome-shell-perf-tool.in
index 1ad67b804..4494a9241 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)