From bb89eaf9507f5d8ab08391603d4108e9d1dc094d Mon Sep 17 00:00:00 2001 From: Oliver Kraitschy Date: Tue, 28 Jan 2020 22:20:46 +0100 Subject: [PATCH] CPUGraph.MenuApplet: execute SystemMonitor on left mousebutton click --- MenuApplets/CPUGraph/main.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/MenuApplets/CPUGraph/main.cpp b/MenuApplets/CPUGraph/main.cpp index 244d1c4fb8..4d1ed71b7d 100644 --- a/MenuApplets/CPUGraph/main.cpp +++ b/MenuApplets/CPUGraph/main.cpp @@ -74,6 +74,20 @@ private: } } + virtual void mousedown_event(GMouseEvent& event) override + { + if (event.button() != GMouseButton::Left) + return; + pid_t pid = fork(); + if (pid < 0) { + perror("fork"); + } else if (pid == 0) { + execl("/bin/SystemMonitor", "SystemMonitor", nullptr); + perror("execl"); + ASSERT_NOT_REACHED(); + } + } + static void get_cpu_usage(unsigned& busy, unsigned& idle) { busy = 0; @@ -98,14 +112,14 @@ private: int main(int argc, char** argv) { - if (pledge("stdio shared_buffer accept rpath unix cpath fattr", nullptr) < 0) { + if (pledge("stdio shared_buffer accept proc exec rpath unix cpath fattr", nullptr) < 0) { perror("pledge"); return 1; } GApplication app(argc, argv); - if (pledge("stdio shared_buffer accept rpath", nullptr) < 0) { + if (pledge("stdio shared_buffer accept proc exec rpath", nullptr) < 0) { perror("pledge"); return 1; } @@ -135,6 +149,11 @@ int main(int argc, char** argv) return 1; } + if (unveil("/bin/SystemMonitor", "x") < 0) { + perror("unveil"); + return 1; + } + unveil(nullptr, nullptr); return app.exec();