mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	Improvements to gaps
This commit is contained in:
		
							parent
							
								
									446d593b4c
								
							
						
					
					
						commit
						cf916bbf6f
					
				
					 4 changed files with 24 additions and 21 deletions
				
			
		| 
						 | 
					@ -307,9 +307,9 @@ static bool cmd_gaps(struct sway_config *config, int argc, char **argv) {
 | 
				
			||||||
			errno = 0;
 | 
								errno = 0;
 | 
				
			||||||
			return false;
 | 
								return false;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (strcmp(argv[0], "inner") == 0) {
 | 
							if (strcasecmp(argv[0], "inner") == 0) {
 | 
				
			||||||
			config->gaps_inner = amount;
 | 
								config->gaps_inner = amount;
 | 
				
			||||||
		} else if (strcmp(argv[0], "outer") == 0) {
 | 
							} else if (strcasecmp(argv[0], "outer") == 0) {
 | 
				
			||||||
			config->gaps_outer = amount;
 | 
								config->gaps_outer = amount;
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			return false;
 | 
								return false;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -63,12 +63,11 @@ swayc_t *new_output(wlc_handle handle) {
 | 
				
			||||||
	sway_log(L_DEBUG, "Added output %lu:%s", handle, name);
 | 
						sway_log(L_DEBUG, "Added output %lu:%s", handle, name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	swayc_t *output = new_swayc(C_OUTPUT);
 | 
						swayc_t *output = new_swayc(C_OUTPUT);
 | 
				
			||||||
	output->x = (config->gaps_outer + config->gaps_inner) / 2;
 | 
						output->width = size->w;
 | 
				
			||||||
	output->y = (config->gaps_outer + config->gaps_inner) / 2;
 | 
						output->height = size->h;
 | 
				
			||||||
	output->width = size->w - (config->gaps_outer + config->gaps_inner);
 | 
					 | 
				
			||||||
	output->height = size->h - (config->gaps_outer + config->gaps_inner);
 | 
					 | 
				
			||||||
	output->handle = handle;
 | 
						output->handle = handle;
 | 
				
			||||||
	output->name = name ? strdup(name) : NULL;
 | 
						output->name = name ? strdup(name) : NULL;
 | 
				
			||||||
 | 
						output->gaps = config->gaps_outer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	add_child(&root_container, output);
 | 
						add_child(&root_container, output);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -176,7 +175,6 @@ swayc_t *new_view(swayc_t *sibling, wlc_handle handle) {
 | 
				
			||||||
	view->desired_width = -1;
 | 
						view->desired_width = -1;
 | 
				
			||||||
	view->desired_height = -1;
 | 
						view->desired_height = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// TODO: properly set this
 | 
					 | 
				
			||||||
	view->is_floating = false;
 | 
						view->is_floating = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (sibling->type == C_WORKSPACE) {
 | 
						if (sibling->type == C_WORKSPACE) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -168,7 +168,11 @@ static bool handle_view_created(wlc_handle handle) {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (newview) {
 | 
						if (newview) {
 | 
				
			||||||
		set_focused_container(newview);
 | 
							set_focused_container(newview);
 | 
				
			||||||
		arrange_windows(newview->parent, -1, -1);
 | 
							swayc_t *output = newview->parent;
 | 
				
			||||||
 | 
							while (output && output->type != C_OUTPUT) {
 | 
				
			||||||
 | 
								output = output->parent;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							arrange_windows(output, -1, -1);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return true;
 | 
						return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,7 @@
 | 
				
			||||||
#include "layout.h"
 | 
					#include "layout.h"
 | 
				
			||||||
#include "log.h"
 | 
					#include "log.h"
 | 
				
			||||||
#include "list.h"
 | 
					#include "list.h"
 | 
				
			||||||
 | 
					#include "config.h"
 | 
				
			||||||
#include "container.h"
 | 
					#include "container.h"
 | 
				
			||||||
#include "workspace.h"
 | 
					#include "workspace.h"
 | 
				
			||||||
#include "focus.h"
 | 
					#include "focus.h"
 | 
				
			||||||
| 
						 | 
					@ -123,11 +124,11 @@ void arrange_windows(swayc_t *container, int width, int height) {
 | 
				
			||||||
		// y -= container->y;
 | 
							// y -= container->y;
 | 
				
			||||||
		for (i = 0; i < container->children->length; ++i) {
 | 
							for (i = 0; i < container->children->length; ++i) {
 | 
				
			||||||
			swayc_t *child = container->children->items[i];
 | 
								swayc_t *child = container->children->items[i];
 | 
				
			||||||
			sway_log(L_DEBUG, "Arranging workspace #%d", i);
 | 
								child->x = x + container->gaps;
 | 
				
			||||||
			child->x = x;
 | 
								child->y = y + container->gaps;
 | 
				
			||||||
			child->y = y;
 | 
								child->width = width - container->gaps * 2;
 | 
				
			||||||
			child->width = width;
 | 
								child->height = height - container->gaps * 2;
 | 
				
			||||||
			child->height = height;
 | 
								sway_log(L_DEBUG, "Arranging workspace #%d at %d, %d", i, child->x, child->y);
 | 
				
			||||||
			arrange_windows(child, -1, -1);
 | 
								arrange_windows(child, -1, -1);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
| 
						 | 
					@ -135,12 +136,12 @@ void arrange_windows(swayc_t *container, int width, int height) {
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			struct wlc_geometry geometry = {
 | 
								struct wlc_geometry geometry = {
 | 
				
			||||||
				.origin = {
 | 
									.origin = {
 | 
				
			||||||
					.x = container->x + container->gaps / 2,
 | 
										.x = container->x + container->gaps,
 | 
				
			||||||
					.y = container->y + container->gaps / 2
 | 
										.y = container->y + container->gaps
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
				.size = {
 | 
									.size = {
 | 
				
			||||||
					.w = width - container->gaps,
 | 
										.w = width - container->gaps * 2,
 | 
				
			||||||
					.h = height - container->gaps
 | 
										.h = height - container->gaps * 2
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			};
 | 
								};
 | 
				
			||||||
			if (wlc_view_get_state(container->handle) & WLC_BIT_FULLSCREEN) {
 | 
								if (wlc_view_get_state(container->handle) & WLC_BIT_FULLSCREEN) {
 | 
				
			||||||
| 
						 | 
					@ -148,10 +149,10 @@ void arrange_windows(swayc_t *container, int width, int height) {
 | 
				
			||||||
				while (parent->type != C_OUTPUT) {
 | 
									while (parent->type != C_OUTPUT) {
 | 
				
			||||||
					parent = parent->parent;
 | 
										parent = parent->parent;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				geometry.origin.x = container->gaps / 2;
 | 
									geometry.origin.x = 0;
 | 
				
			||||||
				geometry.origin.y = container->gaps / 2;
 | 
									geometry.origin.y = 0;
 | 
				
			||||||
				geometry.size.w = parent->width - container->gaps;
 | 
									geometry.size.w = parent->width;
 | 
				
			||||||
				geometry.size.h = parent->height - container->gaps;
 | 
									geometry.size.h = parent->height;
 | 
				
			||||||
				wlc_view_set_geometry(container->handle, 0, &geometry);
 | 
									wlc_view_set_geometry(container->handle, 0, &geometry);
 | 
				
			||||||
				wlc_view_bring_to_front(container->handle);
 | 
									wlc_view_bring_to_front(container->handle);
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue