diff options
author | Lukas Fleischer <calcurse@cryptocrack.de> | 2014-05-13 21:35:02 +0200 |
---|---|---|
committer | Lukas Fleischer <calcurse@cryptocrack.de> | 2014-05-18 11:02:56 +0200 |
commit | 05ba450c3b58c095b1e4ed206c25654f29a33b5a (patch) | |
tree | f6df52f53a4e3149b3d214edd212fb8f8249d1c6 | |
parent | 5eea05a2033c479c74ab70d77dc0a0d31233c59d (diff) | |
download | calcurse-05ba450c3b58c095b1e4ed206c25654f29a33b5a.tar.gz calcurse-05ba450c3b58c095b1e4ed206c25654f29a33b5a.zip |
Reduce flicker when resizing in option menus
Do not update the main windows when resizing the terminal in the general
options menu or in the notification options menu.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
-rw-r--r-- | src/calcurse.h | 1 | ||||
-rw-r--r-- | src/custom.c | 2 | ||||
-rw-r--r-- | src/notify.c | 2 | ||||
-rw-r--r-- | src/wins.c | 8 |
4 files changed, 10 insertions, 3 deletions
diff --git a/src/calcurse.h b/src/calcurse.h index 4f5c2c0..59af8f9 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -1093,6 +1093,7 @@ void wins_get_config(void); void wins_update_border(int); void wins_update_panels(int); void wins_update(int); +void wins_reset_noupdate(void); void wins_reset(void); void wins_prepare_external(void); void wins_unprepare_external(void); diff --git a/src/custom.c b/src/custom.c index 2b309a2..9bf8905 100644 --- a/src/custom.c +++ b/src/custom.c @@ -802,7 +802,7 @@ void custom_general_config(void) if (resize) { resize = 0; - wins_reset(); + wins_reset_noupdate(); listbox_resize(&lb, 0, 0, notify_bar() ? row - 3 : row - 2, col); listbox_draw_deco(&lb); delwin(win[STA].p); diff --git a/src/notify.c b/src/notify.c index 17d0345..541c5ba 100644 --- a/src/notify.c +++ b/src/notify.c @@ -786,7 +786,7 @@ void notify_config_bar(void) if (resize) { resize = 0; wins_get_config(); - wins_reset(); + wins_reset_noupdate(); listbox_resize(&lb, 0, 0, notify_bar() ? row - 3 : row - 2, col); listbox_draw_deco(&lb); delwin(win[STA].p); @@ -584,12 +584,18 @@ void wins_update(int flags) } /* Reset the screen, needed when resizing terminal for example. */ -void wins_reset(void) +void wins_reset_noupdate(void) { endwin(); wins_refresh(); curs_set(0); wins_reinit(); +} + +/* Reset the screen, needed when resizing terminal for example. */ +void wins_reset(void) +{ + wins_reset_noupdate(); wins_update(FLAG_ALL); } |