Merge pull request #4 from tmpm697/patch/sway-borders

Patch/sway borders
This commit is contained in:
tmpm697 2021-07-17 18:51:06 +07:00 committed by GitHub
commit 756c365e2d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 8 deletions

View file

@ -231,6 +231,13 @@ static void apply_workspace_state(struct sway_workspace *ws,
static void apply_container_state(struct sway_container *container, static void apply_container_state(struct sway_container *container,
struct sway_container_state *state) { struct sway_container_state *state) {
int tw = 0, th = 0;
struct wlr_texture *texture = config->border_textures.focused.texture;
if (texture) {
tw = texture->width;
th = texture->height;
}
struct sway_view *view = container->view; struct sway_view *view = container->view;
// Damage the old location // Damage the old location
desktop_damage_whole_container(container); desktop_damage_whole_container(container);
@ -238,10 +245,10 @@ static void apply_container_state(struct sway_container *container,
struct sway_saved_buffer *saved_buf; struct sway_saved_buffer *saved_buf;
wl_list_for_each(saved_buf, &view->saved_buffers, link) { wl_list_for_each(saved_buf, &view->saved_buffers, link) {
struct wlr_box box = { struct wlr_box box = {
.x = saved_buf->x - view->saved_geometry.x, .x = saved_buf->x - view->saved_geometry.x - tw,
.y = saved_buf->y - view->saved_geometry.y, .y = saved_buf->y - view->saved_geometry.y - th,
.width = saved_buf->width, .width = saved_buf->width + 2 * tw,
.height = saved_buf->height, .height = saved_buf->height + 2 * th,
}; };
desktop_damage_box(&box); desktop_damage_box(&box);
} }
@ -274,10 +281,10 @@ static void apply_container_state(struct sway_container *container,
if (view && view->surface) { if (view && view->surface) {
struct wlr_surface *surface = view->surface; struct wlr_surface *surface = view->surface;
struct wlr_box box = { struct wlr_box box = {
.x = container->current.content_x - view->geometry.x, .x = container->current.content_x - view->geometry.x - tw,
.y = container->current.content_y - view->geometry.y, .y = container->current.content_y - view->geometry.y - th,
.width = surface->current.width, .width = surface->current.width + 2 * tw,
.height = surface->current.height, .height = surface->current.height + 2 * th,
}; };
desktop_damage_box(&box); desktop_damage_box(&box);
} }

View file

@ -559,6 +559,7 @@ static void update_title_texture(struct sway_container *con,
output->wlr_output->backend); output->wlr_output->backend);
*texture = wlr_texture_from_pixels( *texture = wlr_texture_from_pixels(
renderer, DRM_FORMAT_ARGB8888, stride, width, height, data); renderer, DRM_FORMAT_ARGB8888, stride, width, height, data);
cairo_surface_destroy(surface); cairo_surface_destroy(surface);
g_object_unref(pango); g_object_unref(pango);
cairo_destroy(cairo); cairo_destroy(cairo);
@ -1036,6 +1037,14 @@ bool container_has_urgent_child(struct sway_container *container) {
return container_find_child(container, find_urgent_iterator, NULL); return container_find_child(container, find_urgent_iterator, NULL);
} }
static bool find_focused_iterator(struct sway_container *con, void *data) {
return con->current.focused;
}
bool container_has_focused_child(struct sway_container *container) {
return container_find_child(container, find_focused_iterator, NULL);
}
void container_end_mouse_operation(struct sway_container *container) { void container_end_mouse_operation(struct sway_container *container) {
struct sway_seat *seat; struct sway_seat *seat;
wl_list_for_each(seat, &server.input->seats, link) { wl_list_for_each(seat, &server.input->seats, link) {