mirror of
https://github.com/swaywm/sway.git
synced 2025-11-12 13:29:56 -05:00
Implement borders
The borders are implemented as a surface/buffer attached to each view which is sent to and rendered by wlc in the view_pre_render callback. All the drawing logic is handled in sway/border.c and all the logic for calculating the geometry of the border/view is handled in `update_geometry` in sway/layout.c (same place as gaps are calculated).
This commit is contained in:
parent
3b05f92f76
commit
5a13cb0ed1
12 changed files with 386 additions and 149 deletions
|
|
@ -7,6 +7,7 @@
|
|||
#include "config.h"
|
||||
#include "input_state.h"
|
||||
#include "ipc-server.h"
|
||||
#include "border.h"
|
||||
|
||||
bool locked_container_focus = false;
|
||||
bool locked_view_focus = false;
|
||||
|
|
@ -130,6 +131,7 @@ bool set_focused_container(swayc_t *c) {
|
|||
// unactivate previous focus
|
||||
if (focused->type == C_VIEW) {
|
||||
wlc_view_set_state(focused->handle, WLC_BIT_ACTIVATED, false);
|
||||
update_view_border(focused);
|
||||
}
|
||||
// activate current focus
|
||||
if (p->type == C_VIEW) {
|
||||
|
|
@ -137,6 +139,7 @@ bool set_focused_container(swayc_t *c) {
|
|||
// set focus if view_focus is unlocked
|
||||
if (!locked_view_focus) {
|
||||
wlc_view_focus(p->handle);
|
||||
update_view_border(p);
|
||||
}
|
||||
}
|
||||
} else if (p->type == C_WORKSPACE) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue