From 63897c469bb1e9f44df2a3953ccb2d4439ab17ba Mon Sep 17 00:00:00 2001 From: Marcus Nilsson Date: Tue, 18 May 2021 08:10:27 +0200 Subject: [PATCH] SystemMonitor: Don't try and show process window with nothing selected (#7221) When right-clicking with no selected row in the process list, SystemMonitor would still show a context menu. This disables the context menu if index is invalid and also disables Alt+Enter so that build_process_window() is never called with a PID of -1. Fixes #7167. --- Userland/Applications/SystemMonitor/main.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Userland/Applications/SystemMonitor/main.cpp b/Userland/Applications/SystemMonitor/main.cpp index 00a43feec4..4220c0aa8e 100644 --- a/Userland/Applications/SystemMonitor/main.cpp +++ b/Userland/Applications/SystemMonitor/main.cpp @@ -307,6 +307,8 @@ int main(int argc, char** argv) auto process_properties_action = GUI::CommonActions::make_properties_action( [&](auto&) { auto pid = selected_id(ProcessModel::Column::PID); + if (pid == -1) + return; RefPtr process_window; auto it = process_windows.find(pid); @@ -341,7 +343,8 @@ int main(int argc, char** argv) process_context_menu->add_separator(); process_context_menu->add_action(process_properties_action); process_table_view.on_context_menu_request = [&]([[maybe_unused]] const GUI::ModelIndex& index, const GUI::ContextMenuEvent& event) { - process_context_menu->popup(event.screen_position(), process_properties_action); + if (index.is_valid()) + process_context_menu->popup(event.screen_position(), process_properties_action); }; auto& frequency_menu = menubar->add_menu("F&requency");