X-Git-Url: https://git.danieliu.xyz/?p=taskasaur.git;a=blobdiff_plain;f=taskasaur.c;h=dc90110ed1471d74d14cced772648cb8af96a25e;hp=8eb2f89ebe7456274f527c0b06bd4c08d3af82b0;hb=cb5385b932956072fc14fd6531c45f12c9cc4925;hpb=500e16bc4c9c43a8ef4ab65e6eb37ff3b0d3093c diff --git a/taskasaur.c b/taskasaur.c index 8eb2f89..dc90110 100644 --- a/taskasaur.c +++ b/taskasaur.c @@ -71,9 +71,60 @@ main(int argc, char** argv) menu_driver(active_menu, MENU_MOVE_DOWN); break; case BINDING_MOVE_ITEM_LEFT: + if (boardmenu->selected-1 < 0) break; + { + Menu* from_menu; + Menu* to_menu; + + from_menu = boardmenu->menu_list[boardmenu->selected], + to_menu = boardmenu->menu_list[boardmenu->selected-1], + + insert_item( + to_menu, + get_menu_item( + from_menu, + get_selected_item(from_menu) + ), + min( + get_selected_item(from_menu), + get_menu_length(to_menu) + ) + ); + delete_item( + from_menu, + get_selected_item(from_menu) + ); + set_selected_menu(boardmenu, boardmenu->selected-1); + } break; case BINDING_MOVE_ITEM_RIGHT: + if (boardmenu->selected >= boardmenu->menu_count-1) break; + // this is legit cpy paste please fix this + { + Menu* from_menu; + Menu* to_menu; + + from_menu = boardmenu->menu_list[boardmenu->selected], + to_menu = boardmenu->menu_list[boardmenu->selected+1], + + insert_item( + to_menu, + get_menu_item( + from_menu, + get_selected_item(from_menu) + ), + min( + get_selected_item(from_menu), + get_menu_length(to_menu) + ) + ); + delete_item( + from_menu, + get_selected_item(from_menu) + ); + set_selected_menu(boardmenu, boardmenu->selected+1); + } break; case BINDING_DELETE_ITEM: @@ -133,8 +184,7 @@ set_selected_menu(BoardMenu* boardmenu, int index) /* also try to jump to a similar position if possible */ /* rn theres a bug if old menu is empty */ - new_pos = (get_selected_item(old_menu) > get_menu_length(new_menu)-1) ? - get_menu_length(new_menu)-1 : get_selected_item(old_menu); + new_pos = min(get_selected_item(old_menu), get_menu_length(new_menu)-1); set_selected_item(new_menu, new_pos); boardmenu->selected = index;