diff options
Diffstat (limited to 'src/ui/core.c')
-rw-r--r-- | src/ui/core.c | 115 |
1 files changed, 2 insertions, 113 deletions
diff --git a/src/ui/core.c b/src/ui/core.c index 5b621ba1..2873b693 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -81,7 +81,6 @@ static Display *display; static GTimer *ui_idle_time; static void _win_handle_switch(const wint_t ch); -static void _win_handle_page(const wint_t ch, const int result); static void _win_show_history(int win_index, const char * const contact); static void _ui_draw_term_title(void); @@ -180,7 +179,8 @@ ui_get_char(char *input, int *size) int result = 0; wint_t ch = inp_get_char(input, size, &result); _win_handle_switch(ch); - _win_handle_page(ch, result); + ProfWin *current = wins_get_current(); + win_handle_page(current, ch, result); if (ch == KEY_RESIZE) { ui_resize(); } @@ -2958,117 +2958,6 @@ _win_handle_switch(const wint_t ch) } static void -_win_handle_page(const wint_t ch, const int result) -{ - ProfWin *current = wins_get_current(); - int rows = getmaxy(stdscr); - int y = getcury(current->layout->win); - - int page_space = rows - 4; - int *page_start = &(current->layout->y_pos); - - if (prefs_get_boolean(PREF_MOUSE)) { - MEVENT mouse_event; - - if (ch == KEY_MOUSE) { - if (getmouse(&mouse_event) == OK) { - -#ifdef PLATFORM_CYGWIN - if (mouse_event.bstate & BUTTON5_PRESSED) { // mouse wheel down -#else - if (mouse_event.bstate & BUTTON2_PRESSED) { // mouse wheel down -#endif - *page_start += 4; - - // only got half a screen, show full screen - if ((y - (*page_start)) < page_space) - *page_start = y - page_space; - - // went past end, show full screen - else if (*page_start >= y) - *page_start = y - page_space; - - current->layout->paged = 1; - win_update_virtual(current); - } else if (mouse_event.bstate & BUTTON4_PRESSED) { // mouse wheel up - *page_start -= 4; - - // went past beginning, show first page - if (*page_start < 0) - *page_start = 0; - - current->layout->paged = 1; - win_update_virtual(current); - } - } - } - } - - // page up - if (ch == KEY_PPAGE) { - *page_start -= page_space; - - // went past beginning, show first page - if (*page_start < 0) - *page_start = 0; - - current->layout->paged = 1; - win_update_virtual(current); - - // page down - } else if (ch == KEY_NPAGE) { - *page_start += page_space; - - // only got half a screen, show full screen - if ((y - (*page_start)) < page_space) - *page_start = y - page_space; - - // went past end, show full screen - else if (*page_start >= y) - *page_start = y - page_space - 1; - - current->layout->paged = 1; - win_update_virtual(current); - } - - // switch off page if last line and space line visible - if ((y) - *page_start == page_space) { - current->layout->paged = 0; - } - - if (current->layout->type == LAYOUT_SPLIT) { - ProfLayoutSplit *split_layout = (ProfLayoutSplit*)current->layout; - int sub_y = getcury(split_layout->subwin); - int *sub_y_pos = &(split_layout->sub_y_pos); - - // alt up arrow - if ((result == KEY_CODE_YES) && ((ch == 565) || (ch == 337))) { - *sub_y_pos -= page_space; - - // went past beginning, show first page - if (*sub_y_pos < 0) - *sub_y_pos = 0; - - win_update_virtual(current); - - // alt down arrow - } else if ((result == KEY_CODE_YES) && ((ch == 524) || (ch == 336))) { - *sub_y_pos += page_space; - - // only got half a screen, show full screen - if ((sub_y- (*sub_y_pos)) < page_space) - *sub_y_pos = sub_y - page_space; - - // went past end, show full screen - else if (*sub_y_pos >= sub_y) - *sub_y_pos = sub_y - page_space - 1; - - win_update_virtual(current); - } - } -} - -static void _win_show_history(int win_index, const char * const contact) { ProfWin *window = wins_get_by_num(win_index); |