diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2015-08-19 19:09:54 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2015-08-19 19:09:54 -0300 |
commit | 78be8201dc86c4d57226d845f04ac496cd64d9b6 (patch) | |
tree | 5ecabb1ad2e8b57452179eb35273dd1062ebf149 | |
parent | b003636958377ecad3ee5df4ca2de8717c4530b9 (diff) |
Add expand/collapse on additional clicks!
-rw-r--r-- | Action.c | 1 | ||||
-rw-r--r-- | CRT.c | 1 | ||||
-rw-r--r-- | CRT.h | 1 | ||||
-rw-r--r-- | ScreenManager.c | 6 |
4 files changed, 8 insertions, 1 deletions
@@ -530,6 +530,7 @@ void Action_setBindings(Htop_Action* keys) { keys['a'] = actionSetAffinity; keys[KEY_F(9)] = actionKill; keys['k'] = actionKill; + keys[KEY_RECLICK] = actionExpandOrCollapse; keys['+'] = actionExpandOrCollapse; keys['='] = actionExpandOrCollapse; keys['-'] = actionExpandOrCollapse; @@ -31,6 +31,7 @@ in the source distribution for its full text. #define KEY_WHEELUP KEY_F(20) #define KEY_WHEELDOWN KEY_F(21) +#define KEY_RECLICK KEY_F(22) //#link curses @@ -22,6 +22,7 @@ in the source distribution for its full text. #define KEY_WHEELUP KEY_F(20) #define KEY_WHEELDOWN KEY_F(21) +#define KEY_RECLICK KEY_F(22) //#link curses diff --git a/ScreenManager.c b/ScreenManager.c index 657065c6..df7431fd 100644 --- a/ScreenManager.c +++ b/ScreenManager.c @@ -208,12 +208,16 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) { ch = EVENT_HEADER_CLICK(mevent.x - panel->x); break; } else if (mevent.y > panel->y && mevent.y <= panel->y+panel->h) { + ch = KEY_MOUSE; if (panel == panelFocus || this->allowFocusChange) { focus = i; panelFocus = setCurrentPanel(panel); + Object* oldSelection = Panel_getSelected(panel); Panel_setSelected(panel, mevent.y - panel->y + panel->scrollV - 1); + if (Panel_getSelected(panel) == oldSelection) { + ch = KEY_RECLICK; + } } - ch = KEY_MOUSE; break; } } |