mirror of
https://github.com/labwc/labwc.git
synced 2026-02-26 01:40:22 -05:00
ssd: allow hiding titlebar on maximization
<core disableMaximizedServerDecor="yes"> hides the titlebar when a window is maximized. Co-authored-by: @CosmicFusion
This commit is contained in:
parent
943f5751ee
commit
888dbedeed
6 changed files with 25 additions and 0 deletions
|
|
@ -171,6 +171,7 @@ this is for compatibility with Openbox.
|
||||||
```
|
```
|
||||||
<core>
|
<core>
|
||||||
<decoration>server</decoration>
|
<decoration>server</decoration>
|
||||||
|
<maximizedDecoration>titlebar</maximizedDecoration>
|
||||||
<gap>0</gap>
|
<gap>0</gap>
|
||||||
<adaptiveSync>no</adaptiveSync>
|
<adaptiveSync>no</adaptiveSync>
|
||||||
<allowTearing>no</allowTearing>
|
<allowTearing>no</allowTearing>
|
||||||
|
|
@ -186,6 +187,11 @@ this is for compatibility with Openbox.
|
||||||
that it is not always possible to turn off client side decorations.
|
that it is not always possible to turn off client side decorations.
|
||||||
Default is server.
|
Default is server.
|
||||||
|
|
||||||
|
*<core><maximizedDecoration>* [titlebar|none]
|
||||||
|
Specify how server side decorations are shown for maximized windows.
|
||||||
|
*titlebar* shows titlebar above a maximized window. *none* shows no server
|
||||||
|
side decorations around a maximized window. Default is titlebar.
|
||||||
|
|
||||||
*<core><gap>*
|
*<core><gap>*
|
||||||
The distance in pixels between windows and output edges when using
|
The distance in pixels between windows and output edges when using
|
||||||
movement actions, for example MoveToEdge. Default is 0.
|
movement actions, for example MoveToEdge. Default is 0.
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
<core>
|
<core>
|
||||||
<decoration>server</decoration>
|
<decoration>server</decoration>
|
||||||
|
<maximizedDecoration>titlebar</maximizedDecoration>
|
||||||
<gap>0</gap>
|
<gap>0</gap>
|
||||||
<adaptiveSync>no</adaptiveSync>
|
<adaptiveSync>no</adaptiveSync>
|
||||||
<allowTearing>no</allowTearing>
|
<allowTearing>no</allowTearing>
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,7 @@ struct rcxml {
|
||||||
|
|
||||||
/* core */
|
/* core */
|
||||||
bool xdg_shell_server_side_deco;
|
bool xdg_shell_server_side_deco;
|
||||||
|
bool hide_maximized_window_titlebar;
|
||||||
int gap;
|
int gap;
|
||||||
enum adaptive_sync_mode adaptive_sync;
|
enum adaptive_sync_mode adaptive_sync;
|
||||||
enum tearing_mode allow_tearing;
|
enum tearing_mode allow_tearing;
|
||||||
|
|
|
||||||
|
|
@ -1094,6 +1094,12 @@ entry(xmlNode *node, char *nodename, char *content)
|
||||||
} else {
|
} else {
|
||||||
rc.xdg_shell_server_side_deco = true;
|
rc.xdg_shell_server_side_deco = true;
|
||||||
}
|
}
|
||||||
|
} else if (!strcasecmp(nodename, "maximizedDecoration.core")) {
|
||||||
|
if (!strcasecmp(content, "titlebar")) {
|
||||||
|
rc.hide_maximized_window_titlebar = false;
|
||||||
|
} else if (!strcasecmp(content, "none")) {
|
||||||
|
rc.hide_maximized_window_titlebar = true;
|
||||||
|
}
|
||||||
} else if (!strcmp(nodename, "gap.core")) {
|
} else if (!strcmp(nodename, "gap.core")) {
|
||||||
rc.gap = atoi(content);
|
rc.gap = atoi(content);
|
||||||
} else if (!strcasecmp(nodename, "adaptiveSync.core")) {
|
} else if (!strcasecmp(nodename, "adaptiveSync.core")) {
|
||||||
|
|
@ -1370,6 +1376,7 @@ rcxml_init(void)
|
||||||
rc.placement_cascade_offset_y = 0;
|
rc.placement_cascade_offset_y = 0;
|
||||||
|
|
||||||
rc.xdg_shell_server_side_deco = true;
|
rc.xdg_shell_server_side_deco = true;
|
||||||
|
rc.hide_maximized_window_titlebar = false;
|
||||||
rc.show_title = true;
|
rc.show_title = true;
|
||||||
rc.title_layout_loaded = false;
|
rc.title_layout_loaded = false;
|
||||||
rc.ssd_keep_border = true;
|
rc.ssd_keep_border = true;
|
||||||
|
|
|
||||||
|
|
@ -312,6 +312,12 @@ ssd_update_geometry(struct ssd *ssd)
|
||||||
|| ssd->state.was_squared != squared
|
|| ssd->state.was_squared != squared
|
||||||
|| ssd->state.was_omnipresent != view->visible_on_all_workspaces;
|
|| ssd->state.was_omnipresent != view->visible_on_all_workspaces;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (Un)maximization updates titlebar visibility with
|
||||||
|
* maximizedDecoration=none
|
||||||
|
*/
|
||||||
|
ssd_set_titlebar(ssd, view_titlebar_visible(view));
|
||||||
|
|
||||||
if (update_extents) {
|
if (update_extents) {
|
||||||
ssd_extents_update(ssd);
|
ssd_extents_update(ssd);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1660,6 +1660,10 @@ undecorate(struct view *view)
|
||||||
bool
|
bool
|
||||||
view_titlebar_visible(struct view *view)
|
view_titlebar_visible(struct view *view)
|
||||||
{
|
{
|
||||||
|
if (view->maximized == VIEW_AXIS_BOTH
|
||||||
|
&& rc.hide_maximized_window_titlebar) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return view->ssd_mode == LAB_SSD_MODE_FULL;
|
return view->ssd_mode == LAB_SSD_MODE_FULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue