mirror of
https://github.com/labwc/labwc.git
synced 2026-03-24 09:06:09 -04:00
src/ssd/ssd.c: Keep view->margin in sync when toggling decorations
Fixes #409
This commit is contained in:
parent
ef3dbbf29a
commit
09915b8f43
5 changed files with 8 additions and 19 deletions
|
|
@ -134,7 +134,6 @@ struct ssd_hover_state {
|
||||||
|
|
||||||
/* Public SSD API */
|
/* Public SSD API */
|
||||||
void ssd_create(struct view *view);
|
void ssd_create(struct view *view);
|
||||||
void ssd_hide(struct view *view);
|
|
||||||
void ssd_set_active(struct view *view);
|
void ssd_set_active(struct view *view);
|
||||||
void ssd_update_title(struct view *view);
|
void ssd_update_title(struct view *view);
|
||||||
void ssd_update_geometry(struct view *view);
|
void ssd_update_geometry(struct view *view);
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,6 @@ reload_config_and_theme(void)
|
||||||
if (!view->mapped || !view->ssd.enabled) {
|
if (!view->mapped || !view->ssd.enabled) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
view->margin = ssd_thickness(view);
|
|
||||||
ssd_reload(view);
|
ssd_reload(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,10 @@
|
||||||
struct border
|
struct border
|
||||||
ssd_thickness(struct view *view)
|
ssd_thickness(struct view *view)
|
||||||
{
|
{
|
||||||
|
if (!view->ssd.enabled) {
|
||||||
|
struct border border = { 0 };
|
||||||
|
return border;
|
||||||
|
}
|
||||||
struct theme *theme = view->server->theme;
|
struct theme *theme = view->server->theme;
|
||||||
struct border border = {
|
struct border border = {
|
||||||
.top = theme->title_height + theme->border_width,
|
.top = theme->title_height + theme->border_width,
|
||||||
|
|
@ -159,6 +163,7 @@ ssd_create(struct view *view)
|
||||||
ssd_extents_create(view);
|
ssd_extents_create(view);
|
||||||
ssd_border_create(view);
|
ssd_border_create(view);
|
||||||
ssd_titlebar_create(view);
|
ssd_titlebar_create(view);
|
||||||
|
view->margin = ssd_thickness(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -171,10 +176,12 @@ ssd_update_geometry(struct view *view)
|
||||||
if (!view->ssd.enabled) {
|
if (!view->ssd.enabled) {
|
||||||
if (view->ssd.tree->node.enabled) {
|
if (view->ssd.tree->node.enabled) {
|
||||||
wlr_scene_node_set_enabled(&view->ssd.tree->node, false);
|
wlr_scene_node_set_enabled(&view->ssd.tree->node, false);
|
||||||
|
view->margin = ssd_thickness(view);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
} else if (!view->ssd.tree->node.enabled) {
|
} else if (!view->ssd.tree->node.enabled) {
|
||||||
wlr_scene_node_set_enabled(&view->ssd.tree->node, true);
|
wlr_scene_node_set_enabled(&view->ssd.tree->node, true);
|
||||||
|
view->margin = ssd_thickness(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
int width = view->w;
|
int width = view->w;
|
||||||
|
|
@ -198,15 +205,6 @@ ssd_update_geometry(struct view *view)
|
||||||
view->ssd.state.y = view->y;
|
view->ssd.state.y = view->y;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
ssd_hide(struct view *view)
|
|
||||||
{
|
|
||||||
if (!view->ssd.tree) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
wlr_scene_node_set_enabled(&view->ssd.tree->node, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ssd_reload(struct view *view)
|
void ssd_reload(struct view *view)
|
||||||
{
|
{
|
||||||
if (!view->ssd.tree) {
|
if (!view->ssd.tree) {
|
||||||
|
|
|
||||||
|
|
@ -298,7 +298,6 @@ xdg_toplevel_view_map(struct view *view)
|
||||||
|
|
||||||
view->ssd.enabled = has_ssd(view);
|
view->ssd.enabled = has_ssd(view);
|
||||||
if (view->ssd.enabled) {
|
if (view->ssd.enabled) {
|
||||||
view->margin = ssd_thickness(view);
|
|
||||||
ssd_create(view);
|
ssd_create(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -311,7 +310,6 @@ xdg_toplevel_view_map(struct view *view)
|
||||||
}
|
}
|
||||||
|
|
||||||
view_discover_output(view);
|
view_discover_output(view);
|
||||||
|
|
||||||
view->been_mapped = true;
|
view->been_mapped = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -329,7 +329,7 @@ map(struct view *view)
|
||||||
if (!view->been_mapped) {
|
if (!view->been_mapped) {
|
||||||
view->ssd.enabled = want_deco(view);
|
view->ssd.enabled = want_deco(view);
|
||||||
if (view->ssd.enabled) {
|
if (view->ssd.enabled) {
|
||||||
view->margin = ssd_thickness(view);
|
ssd_create(view);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!view->maximized && !view->fullscreen) {
|
if (!view->maximized && !view->fullscreen) {
|
||||||
|
|
@ -341,11 +341,6 @@ map(struct view *view)
|
||||||
}
|
}
|
||||||
|
|
||||||
view_discover_output(view);
|
view_discover_output(view);
|
||||||
|
|
||||||
if (view->ssd.enabled) {
|
|
||||||
/* Create ssd after view_disover_output() had been called */
|
|
||||||
ssd_create(view);
|
|
||||||
}
|
|
||||||
view->been_mapped = true;
|
view->been_mapped = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue