X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fclient%2Fwincontrol.c;h=e1a4fbd485a9dd0df65326f6d6d03b2966ee0934;hb=483f25751ae49c810456faf0bb7a375bc437df10;hp=816934a425e17a7d4d1851bdebc81f13fcb92658;hpb=fcfa6591e6b043e05c3e34a70db1b4d06d54096f;p=plomrogue diff --git a/src/client/wincontrol.c b/src/client/wincontrol.c index 816934a..e1a4fbd 100644 --- a/src/client/wincontrol.c +++ b/src/client/wincontrol.c @@ -9,8 +9,7 @@ #include /* memcpy(), memset(), strchr(), strlen() */ #include "../common/rexit.h" /* exit_err() */ #include "../common/try_malloc.h" /* try_malloc() */ -#include "../common/yx_uint16.h" /* struct yx_uint16 */ -#include "windows.h" /* struct Win, get_win_by_id(), get_win_pos_in_order() */ +#include "windows.h" /* Win,yx_uint16, get_win_by_id(),get_win_pos_in_order() */ #include "world.h" /* global world */ @@ -109,9 +108,7 @@ static void place_win(struct Win * w) * top, fit w's top left corner to that predecessor's top right corner. */ struct Win * w_top = w_prev; - for (; - w_top->start.y != 0 + sep; - w_top = get_win_before(w_top->id)); + for (; w_top->start.y != 0 + sep; w_top = get_win_before(w_top->id)); w->start.x = w_top->start.x + w_top->frame_size.x + sep; /* If enough space is found below w's predecessor, fit w's top left @@ -331,10 +328,11 @@ extern void resize_active_win(char change) extern void shift_active_win(char dir) { + char * f_name = "shift_active_win()"; uint8_t len_order = strlen(world.winDB.order); if (1 < len_order) { - char tmp[len_order + 1]; + char * tmp = try_malloc(len_order + 1, f_name); tmp[len_order] = '\0'; uint8_t pos = get_win_pos_in_order(world.winDB.active); if ('f' == dir) @@ -365,6 +363,7 @@ extern void shift_active_win(char dir) world.winDB.order[pos - 1] = world.winDB.active; } } + free(tmp); update_wins(get_win_by_id(world.winDB.order[0])); } }