mirror of https://github.com/xzeldon/htop.git
Pre-select the last sent signal in SignalsPanel
Instead of pre-selecting SIGTERM every time, select the signal last send in the same htop session. Closes: #862
This commit is contained in:
parent
a38f48481e
commit
ff4f44b22a
5
Action.c
5
Action.c
|
@ -344,9 +344,12 @@ static Htop_Reaction actionKill(State* st) {
|
|||
if (Settings_isReadonly())
|
||||
return HTOP_OK;
|
||||
|
||||
Panel* signalsPanel = SignalsPanel_new();
|
||||
static int preSelectedSignal = SIGNALSPANEL_INITSELECTEDSIGNAL;
|
||||
|
||||
Panel* signalsPanel = SignalsPanel_new(preSelectedSignal);
|
||||
const ListItem* sgn = (ListItem*) Action_pickFromVector(st, signalsPanel, 14, true);
|
||||
if (sgn && sgn->key != 0) {
|
||||
preSelectedSignal = sgn->key;
|
||||
Panel_setHeader((Panel*)st->mainPanel, "Sending...");
|
||||
Panel_draw((Panel*)st->mainPanel, false, true, true, State_hideFunctionBar(st));
|
||||
refresh();
|
||||
|
|
|
@ -18,15 +18,14 @@ in the source distribution for its full text.
|
|||
#include "XUtils.h"
|
||||
|
||||
|
||||
Panel* SignalsPanel_new() {
|
||||
Panel* SignalsPanel_new(int preSelectedSignal) {
|
||||
Panel* this = Panel_new(1, 1, 1, 1, Class(ListItem), true, FunctionBar_newEnterEsc("Send ", "Cancel "));
|
||||
const int defaultSignal = SIGTERM;
|
||||
int defaultPosition = 15;
|
||||
unsigned int i;
|
||||
for (i = 0; i < Platform_numberOfSignals; i++) {
|
||||
Panel_set(this, i, (Object*) ListItem_new(Platform_signals[i].name, Platform_signals[i].number));
|
||||
// signal 15 is not always the 15th signal in the table
|
||||
if (Platform_signals[i].number == defaultSignal) {
|
||||
if (Platform_signals[i].number == preSelectedSignal) {
|
||||
defaultPosition = i;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,8 @@ Released under the GNU GPLv2+, see the COPYING file
|
|||
in the source distribution for its full text.
|
||||
*/
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
#include "Panel.h"
|
||||
|
||||
|
||||
|
@ -15,6 +17,8 @@ typedef struct SignalItem_ {
|
|||
int number;
|
||||
} SignalItem;
|
||||
|
||||
Panel* SignalsPanel_new(void);
|
||||
#define SIGNALSPANEL_INITSELECTEDSIGNAL SIGTERM
|
||||
|
||||
Panel* SignalsPanel_new(int preSelectedSignal);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue