diff --git a/ChangeLog b/ChangeLog index 9990925aa..d26804403 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,8 @@ v0.3.6-dev, 2011-08-27 Version 0.3.6 (under dev!) -------------------------- +* core: do automatic zoom on current window when terminal becomes too small + for windows * core: add new options weechat.look.bar_more_left/right/up/down * core: add new option weechat.look.item_buffer_filter * core: change default value of option weechat.network.gnutls_ca_file to diff --git a/src/gui/curses/gui-curses-window.c b/src/gui/curses/gui-curses-window.c index 7edfc1aaa..08dc8d8d2 100644 --- a/src/gui/curses/gui-curses-window.c +++ b/src/gui/curses/gui-curses-window.c @@ -50,8 +50,9 @@ #include "../gui-hotlist.h" #include "../gui-input.h" #include "../gui-key.h" -#include "../gui-main.h" +#include "../gui-layout.h" #include "../gui-line.h" +#include "../gui-main.h" #include "../gui-nicklist.h" #include "gui-curses.h" @@ -1513,7 +1514,13 @@ gui_window_refresh_windows () gui_window_get_height () - add_top - add_bottom, 0) < 0) { - gui_window_merge_all (gui_current_window); + if (gui_window_layout_before_zoom) + { + /* remove zoom saved, to force a new zoom */ + gui_layout_window_remove_all (&gui_window_layout_before_zoom); + gui_window_layout_id_current_window = -1; + } + gui_window_zoom (gui_current_window); } for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window) diff --git a/src/gui/gui-window.h b/src/gui/gui-window.h index 73f817c08..a81371662 100644 --- a/src/gui/gui-window.h +++ b/src/gui/gui-window.h @@ -34,6 +34,9 @@ extern int gui_ok; extern int gui_window_refresh_needed; extern int gui_window_cursor_x, gui_window_cursor_y; +extern struct t_gui_layout_window *gui_window_layout_before_zoom; +extern int gui_window_layout_id_current_window; + /* window structures */ struct t_gui_window_coords