mirror of
https://github.com/swaywm/sway.git
synced 2026-04-23 06:46:27 -04:00
Merge pull request #4 from tmpm697/patch/sway-borders
Patch/sway borders
This commit is contained in:
commit
756c365e2d
2 changed files with 24 additions and 8 deletions
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue