desktop/transaction: clamp vertical border length to 0

This commit is contained in:
mtvare6 2024-10-31 11:54:55 +05:30
parent 26292e4a12
commit d4a1ab7b86
3 changed files with 11 additions and 2 deletions

View File

@ -13,6 +13,10 @@ int wrap(int i, int max) {
return ((i % max) + max) % max;
}
int max(int a, int b){
return a > b ? a : b;
}
bool parse_color(const char *color, uint32_t *result) {
if (color[0] == '#') {
++color;

View File

@ -34,6 +34,11 @@ int parse_movement_amount(int argc, char **argv,
*/
int wrap(int i, int max);
/**
* Returns maximum of a and b
*/
int max(int a, int b);
/**
* Given a string that represents an RGB(A) color, result will be set to a
* uint32_t version of the color, as long as it is valid. If it is invalid,

View File

@ -17,6 +17,7 @@
#include "sway/tree/workspace.h"
#include "list.h"
#include "log.h"
#include "util.h"
struct sway_transaction {
struct wl_event_source *timer;
@ -424,8 +425,7 @@ static void arrange_container(struct sway_container *con,
int border_bottom = con->current.border_bottom ? border_width : 0;
int border_left = con->current.border_left ? border_width : 0;
int border_right = con->current.border_right ? border_width : 0;
int vert_border_height = (height - border_top - border_bottom) > 0 ?
(height- border_top - border_bottom) : 0;
int vert_border_height = max(0, height- border_top - border_bottom);
wlr_scene_rect_set_size(con->border.top, width, border_top);
wlr_scene_rect_set_size(con->border.bottom, width, border_bottom);
wlr_scene_rect_set_size(con->border.left,