+ case SDLK_UP: {
+ if ((event->key.keysym.mod & KMOD_SHIFT)
+ && (point_layer->selection >= 0)
+ && ((size_t)(point_layer->selection + 1) < dynarray_count(point_layer->positions))) {
+ point_layer_swap_elements(
+ point_layer,
+ (size_t) point_layer->selection,
+ (size_t) point_layer->selection + 1,
+ undo_history);
+ point_layer->selection++;
+ }
+ } break;
+
+ case SDLK_DOWN: {
+ if ((event->key.keysym.mod & KMOD_SHIFT)
+ && (point_layer->selection > 0)
+ && ((size_t) point_layer->selection < dynarray_count(point_layer->positions))) {
+ point_layer_swap_elements(
+ point_layer,
+ (size_t) point_layer->selection,
+ (size_t) point_layer->selection - 1,
+ undo_history);
+ point_layer->selection--;
+ }
+ } break;
+