improvements to the rendering
This commit is contained in:
23
main.c
23
main.c
@@ -77,7 +77,6 @@ int main(){
|
||||
pthread_cond_signal(&cond_top);
|
||||
pthread_cond_signal(&cond_mid);
|
||||
pthread_cond_signal(&cond_lft);
|
||||
user_interactions();
|
||||
render_pass();
|
||||
timeout(SETTINGS_CURSES_TIMEOUT);
|
||||
|
||||
@@ -97,7 +96,7 @@ int main(){
|
||||
pthread_cond_signal(&cond_mid);
|
||||
pthread_cond_signal(&cond_lft);
|
||||
status &= ~(STATUS_RUN_BACKEND);
|
||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
||||
|
||||
} else {
|
||||
status &= ~(STATUS_RELOAD_DIRECTORY | STATUS_DELTA_TIME);
|
||||
}
|
||||
@@ -135,6 +134,9 @@ int main(){
|
||||
|
||||
void render_pass(){
|
||||
|
||||
if (status & STATUS_UPDATE_SCREEN_CLEAR) {
|
||||
clear();
|
||||
}
|
||||
if (status & STATUS_UPDATE_SCREEN_RESIZE) {
|
||||
|
||||
wresize(win_t, 1, terminal_width);
|
||||
@@ -151,18 +153,23 @@ void render_pass(){
|
||||
mvwin(win_b, terminal_height-1, 0);
|
||||
|
||||
}
|
||||
|
||||
if (status & STATUS_UPDATE_SCREEN_MASK) {
|
||||
werase(win_t);
|
||||
werase(win_l);
|
||||
werase(win_m);
|
||||
werase(win_r);
|
||||
werase(win_b);
|
||||
window_top(win_t);
|
||||
window_lft(win_l);
|
||||
window_mid(win_m);
|
||||
window_rgt(win_r);
|
||||
window_btm(win_b);
|
||||
wrefresh(win_t);
|
||||
wrefresh(win_l);
|
||||
wrefresh(win_m);
|
||||
wrefresh(win_r);
|
||||
wrefresh(win_b);
|
||||
wnoutrefresh(win_t);
|
||||
wnoutrefresh(win_l);
|
||||
wnoutrefresh(win_m);
|
||||
wnoutrefresh(win_r);
|
||||
wnoutrefresh(win_b);
|
||||
doupdate();
|
||||
status &= ~(STATUS_UPDATE_SCREEN_MASK);
|
||||
}
|
||||
}
|
||||
|
||||
15
window.c
15
window.c
@@ -31,7 +31,6 @@ extern pthread_mutex_t mutex_mid;
|
||||
extern pthread_mutex_t mutex_rgt;
|
||||
|
||||
void window_top(WINDOW *win){
|
||||
werase(win);
|
||||
|
||||
if (pthread_mutex_trylock(&mutex_top) == 0) {
|
||||
if (*top_buffer != ' ') { /*printing ' ' (standard initialized value, see threading_init) makes valgrind throw a fuss*/
|
||||
@@ -46,11 +45,10 @@ void window_top(WINDOW *win){
|
||||
pthread_mutex_unlock(&mutex_top);
|
||||
} else {
|
||||
mvwaddstr(win, 0, terminal_width/2, "LOADING");
|
||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
||||
status |= STATUS_UPDATE_SCREEN_GENERIC;
|
||||
}
|
||||
}
|
||||
void window_btm(WINDOW *win){
|
||||
werase(win);
|
||||
|
||||
if (pthread_mutex_trylock(&mutex_btm) == 0) {
|
||||
if (*top_buffer != ' ') { /*printing ' ' (standard initialized value, see threading_init) makes valgrind throw a fuss*/
|
||||
@@ -61,11 +59,10 @@ void window_btm(WINDOW *win){
|
||||
/*the printing of all possible inputs are done in user_interactions */
|
||||
} else {
|
||||
mvwaddstr(win, 0, terminal_width/2, "LOADING");
|
||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
||||
status |= STATUS_UPDATE_SCREEN_GENERIC;
|
||||
}
|
||||
}
|
||||
void window_lft(WINDOW *win){
|
||||
werase(win);
|
||||
|
||||
if (pthread_mutex_trylock(&mutex_lft) == 0) {
|
||||
print_dir(win, 0, &lft_dir);
|
||||
@@ -73,11 +70,10 @@ void window_lft(WINDOW *win){
|
||||
|
||||
} else {
|
||||
mvwaddstr(win, terminal_height/2, terminal_width/8, "LOADING");
|
||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
||||
status |= STATUS_UPDATE_SCREEN_GENERIC;
|
||||
}
|
||||
}
|
||||
void window_mid(WINDOW *win){
|
||||
werase(win);
|
||||
|
||||
if (pthread_mutex_trylock(&mutex_mid) == 0) {
|
||||
if (mid_dir.file_count == 0) {
|
||||
@@ -88,11 +84,10 @@ void window_mid(WINDOW *win){
|
||||
pthread_mutex_unlock(&mutex_mid);
|
||||
} else {
|
||||
mvwaddstr(win, terminal_height/2, terminal_width/4, "LOADING");
|
||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
||||
status |= STATUS_UPDATE_SCREEN_GENERIC;
|
||||
}
|
||||
}
|
||||
void window_rgt(WINDOW *win){
|
||||
werase(win);
|
||||
|
||||
if (pthread_mutex_trylock(&mutex_rgt) == 0) {
|
||||
if (!rgt_dir.current_file) {
|
||||
@@ -108,6 +103,6 @@ void window_rgt(WINDOW *win){
|
||||
pthread_mutex_unlock(&mutex_rgt);
|
||||
} else {
|
||||
mvwaddstr(win, terminal_height/2, terminal_width/4, "LOADING");
|
||||
status |= STATUS_UPDATE_SCREEN_PRINTED;
|
||||
status |= STATUS_UPDATE_SCREEN_GENERIC;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user