[Xfce4-commits] [apps/xfce4-taskmanager] 02/03: Add delete and shift/delete shortcuts to the treeview

noreply at xfce.org noreply at xfce.org
Mon Jan 23 07:57:45 CET 2017


This is an automated email from the git hooks/post-receive script.

ochosi pushed a commit to branch master
in repository apps/xfce4-taskmanager.

commit 58daa93aaa53e11dafced1e310c68a2ba38a774c
Author: Simon Steinbeiß <steinbeiss at ttt0100130715.vie.at.tttech.ttt>
Date:   Thu Jan 19 00:34:44 2017 +0100

    Add delete and shift/delete shortcuts to the treeview
---
 src/process-tree-view.c | 42 ++++++++++++++++++++++++++++--------------
 1 file changed, 28 insertions(+), 14 deletions(-)

diff --git a/src/process-tree-view.c b/src/process-tree-view.c
index 6ab63b3..eb7007d 100644
--- a/src/process-tree-view.c
+++ b/src/process-tree-view.c
@@ -557,25 +557,40 @@ treeview_key_pressed (XtmProcessTreeView *treeview, GdkEventKey *event)
 {
 	guint pid;
 
-	if (event->keyval != GDK_KEY_Menu)
-		return FALSE;
+	GtkTreeModel *model;
+	GtkTreeSelection *selection;
+	GtkTreeIter iter;
+	GdkModifierType modifiers;
 
-	{
-		GtkTreeModel *model;
-		GtkTreeSelection *selection;
-		GtkTreeIter iter;
+	modifiers = gtk_accelerator_get_default_mod_mask ();
 
-		selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
+	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
 
-		if (!gtk_tree_selection_get_selected (selection, &model, &iter))
-			return FALSE;
+	if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+		return FALSE;
 
-		gtk_tree_model_get (model, &iter, XTM_PTV_COLUMN_PID, &pid, -1);
-	}
+	gtk_tree_model_get (model, &iter, XTM_PTV_COLUMN_PID, &pid, -1);
 
-	popup_menu (treeview, pid, event->time, FALSE);
+	if (event->keyval == GDK_KEY_Menu)
+	{
+		popup_menu (treeview, pid, event->time, FALSE);
+		return TRUE;
+	}
+	else if (event->keyval == GDK_KEY_Delete)
+	{
+		/* Fake menuitem for the cb_send_signal callback */
+		GtkWidget *mi;
+		mi = gtk_menu_item_new_with_label (_("Stop"));
+		g_object_set_data (G_OBJECT (mi), "pid", GUINT_TO_POINTER (pid));
+		if ((event->state & modifiers) == GDK_SHIFT_MASK)
+			cb_send_signal (GTK_MENU_ITEM (mi), GINT_TO_POINTER (XTM_SIGNAL_KILL));
+		else
+			cb_send_signal (GTK_MENU_ITEM (mi), GINT_TO_POINTER (XTM_SIGNAL_TERMINATE));
+		return TRUE;
+	}
 
-	return TRUE;
+	else
+		return FALSE;
 }
 
 static void
@@ -754,4 +769,3 @@ xtm_process_tree_view_get_model (XtmProcessTreeView *treeview)
 {
 	return GTK_TREE_MODEL (treeview->model);
 }
-

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list