mirror of
https://github.com/profanity-im/profanity.git
synced 2024-11-03 19:37:16 -05:00
Added SIGWINCH handler
This commit is contained in:
parent
fe10f2b2e3
commit
e6f27de552
@ -41,6 +41,9 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef HAVE_LIBXSS
|
||||
#include <X11/extensions/scrnsaver.h>
|
||||
#endif
|
||||
@ -91,7 +94,6 @@ ui_init(void)
|
||||
{
|
||||
log_info("Initialising UI");
|
||||
initscr();
|
||||
raw();
|
||||
keypad(stdscr, TRUE);
|
||||
if (prefs_get_boolean(PREF_MOUSE)) {
|
||||
mousemask(ALL_MOUSE_EVENTS, NULL);
|
||||
@ -221,9 +223,13 @@ ui_input_nonblocking(gboolean reset)
|
||||
void
|
||||
ui_resize(void)
|
||||
{
|
||||
log_info("Resizing UI");
|
||||
struct winsize w;
|
||||
ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);
|
||||
erase();
|
||||
resizeterm(w.ws_row, w.ws_col);
|
||||
refresh();
|
||||
|
||||
log_info("Resizing UI");
|
||||
title_bar_resize();
|
||||
wins_resize_all();
|
||||
status_bar_resize();
|
||||
|
@ -114,6 +114,12 @@ tab_handler(int count, int key)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
resize_signal_handler(int signal)
|
||||
{
|
||||
ui_resize();
|
||||
}
|
||||
|
||||
void
|
||||
create_input_window(void)
|
||||
{
|
||||
@ -127,10 +133,13 @@ create_input_window(void)
|
||||
rl_callback_handler_install(NULL, cb_linehandler);
|
||||
rl_bind_key('\t', tab_handler);
|
||||
|
||||
signal(SIGWINCH, resize_signal_handler);
|
||||
|
||||
inp_win = newpad(1, INP_WIN_MAX);
|
||||
wbkgd(inp_win, theme_attrs(THEME_INPUT_TEXT));;
|
||||
keypad(inp_win, TRUE);
|
||||
wmove(inp_win, 0, 0);
|
||||
|
||||
_inp_win_update_virtual();
|
||||
}
|
||||
|
||||
@ -233,7 +242,7 @@ inp_readline(void)
|
||||
r = select(FD_SETSIZE, &fds, NULL, NULL, &p_rl_timeout);
|
||||
if (r < 0) {
|
||||
log_error("Readline failed.");
|
||||
return false;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (FD_ISSET(fileno(rl_instream), &fds)) {
|
||||
|
Loading…
Reference in New Issue
Block a user