gimp but for windows: a wayland compositor
git clone https://github.com/m-col/wimp
Files | Refs | Readme

Commit e0f847b4502a2b5c1a7dd393abefb971ec1f1442
Parent: bf5d6ef2c18fb19462ba87adafcf85fd3eec3ade
Author: mcol <mcol@posteo.net>
Date: 2021-02-13 15:20:53 +0000
Committer: mcol <mcol@posteo.net>
Committed: 2021-02-13 15:20:53 +0000

set minimum window dimensions and do not go over when resizing

src/cursor.c Modified

@@ -281,6 +281,26 @@
 
 static void on_cursor_motion(struct wl_listener *listener, void *data){
     struct wlr_event_pointer_motion *event = data;
+    if (wimp.grabbed_view) {
+	if (wimp.resize_edges & WLR_EDGE_TOP) {
+	    if (wimp.grabbed_view->surface->geometry.height <= CORNER && event->delta_y > 0) {
+		event->delta_y = 0;
+	    }
+	} else if (wimp.resize_edges & WLR_EDGE_BOTTOM) {
+	    if (wimp.grabbed_view->surface->geometry.height <= CORNER && event->delta_y < 0) {
+		event->delta_y = 0;
+	    }
+	}
+	if (wimp.resize_edges & WLR_EDGE_LEFT) {
+	    if (wimp.grabbed_view->surface->geometry.width <= CORNER && event->delta_x > 0) {
+		event->delta_x = 0;
+	    }
+	} else if (wimp.resize_edges & WLR_EDGE_RIGHT) {
+	    if (wimp.grabbed_view->surface->geometry.width <= CORNER && event->delta_x < 0) {
+		event->delta_x = 0;
+	    }
+	}
+    }
     wlr_cursor_move(wimp.cursor, event->device, event->delta_x, event->delta_y);
     process_cursor_motion(event->time_msec, event->delta_x, event->delta_y);
 }