Skip to content

Commit e7c4b06

Browse files
committed
add region resize topright and bottomleft
1 parent db9cbfd commit e7c4b06

File tree

2 files changed

+39
-9
lines changed

2 files changed

+39
-9
lines changed

TODO

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
- add snap for region resize and arrow end move
2+
3+
- during region move or resze, the cursor changes back to a pointer
4+
15
- row range select breaks after "duplicate"
26

37
shift and ctrl click stop affecting select

src/regionview.c

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -774,30 +774,40 @@ regionview_resize(Regionview *regionview, guint modifiers,
774774
imageui_snap_rect(imageui, our_area, our_area);
775775
break;
776776

777-
case REGIONVIEW_RESIZE_RIGHT:
777+
case REGIONVIEW_RESIZE_TOPLEFT:
778+
our_area->left = x + start_area->left;
779+
our_area->top = y + start_area->top;
780+
break;
781+
782+
case REGIONVIEW_RESIZE_TOP:
783+
our_area->top = y + start_area->top;
784+
break;
785+
786+
case REGIONVIEW_RESIZE_TOPRIGHT:
787+
our_area->top = y + start_area->top;
778788
our_area->width = x + VIPS_RECT_RIGHT(start_area) - start_area->left;
779789
break;
780790

781-
case REGIONVIEW_RESIZE_BOTTOM:
782-
our_area->height = y + VIPS_RECT_BOTTOM(start_area) - start_area->top;
791+
case REGIONVIEW_RESIZE_RIGHT:
792+
our_area->width = x + VIPS_RECT_RIGHT(start_area) - start_area->left;
783793
break;
784794

785795
case REGIONVIEW_RESIZE_BOTTOMRIGHT:
786796
our_area->width = x + VIPS_RECT_RIGHT(start_area) - start_area->left;
787797
our_area->height = y + VIPS_RECT_BOTTOM(start_area) - start_area->top;
788798
break;
789799

790-
case REGIONVIEW_RESIZE_LEFT:
791-
our_area->left = x + start_area->left;
800+
case REGIONVIEW_RESIZE_BOTTOM:
801+
our_area->height = y + VIPS_RECT_BOTTOM(start_area) - start_area->top;
792802
break;
793803

794-
case REGIONVIEW_RESIZE_TOP:
795-
our_area->top = y + start_area->top;
804+
case REGIONVIEW_RESIZE_BOTTOMLEFT:
805+
our_area->left = x + start_area->left;
806+
our_area->height = y + VIPS_RECT_BOTTOM(start_area) - start_area->top;
796807
break;
797808

798-
case REGIONVIEW_RESIZE_TOPLEFT:
809+
case REGIONVIEW_RESIZE_LEFT:
799810
our_area->left = x + start_area->left;
800-
our_area->top = y + start_area->top;
801811
break;
802812

803813
default:
@@ -840,6 +850,22 @@ regionview_resize(Regionview *regionview, guint modifiers,
840850
our_area->height = VIPS_RECT_BOTTOM(start_area) - our_area->top;
841851
break;
842852

853+
case REGIONVIEW_RESIZE_TOPRIGHT:
854+
our_area->top =
855+
VIPS_CLIP(0, our_area->top, VIPS_RECT_BOTTOM(start_area) - 1);
856+
our_area->width =
857+
VIPS_CLIP(1, our_area->width, width - start_area->left);
858+
our_area->height = VIPS_RECT_BOTTOM(start_area) - our_area->top;
859+
break;
860+
861+
case REGIONVIEW_RESIZE_BOTTOMLEFT:
862+
our_area->left =
863+
VIPS_CLIP(0, our_area->left, VIPS_RECT_RIGHT(start_area) - 1);
864+
our_area->height =
865+
VIPS_CLIP(1, our_area->height, height - start_area->top);
866+
our_area->width = VIPS_RECT_RIGHT(start_area) - our_area->left;
867+
break;
868+
843869
default:
844870
break;
845871
}

0 commit comments

Comments
 (0)