only add borders and stuff to the dock's size if it is holding anything. otherwise it gets a non-zero size which messes with resistence/placement/etc
Dana Jansens danakj@orodu.net
1 files changed,
14 insertions(+),
8 deletions(-)
jump to
M
openbox/dock.c
→
openbox/dock.c
@@ -249,8 +249,10 @@ break;
} } - dock->area.width += l + r; - dock->area.height += t + b; + if (dock->dock_apps) { + dock->area.width += l + r; + dock->area.height += t + b; + } hspot = l; vspot = t;@@ -427,11 +429,12 @@ /* set the strut */
if (!dock->dock_apps) { STRUT_PARTIAL_SET(dock_strut, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - } else if (config_dock_floating || config_dock_nostrut) - { + } + else if (config_dock_floating || config_dock_nostrut) { STRUT_PARTIAL_SET(dock_strut, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - } else { + } + else { switch (config_dock_pos) { case OB_DIRECTION_NORTHWEST: switch (config_dock_orient) {@@ -529,9 +532,12 @@ XMapWindow(ob_display, dock->frame);
} else XUnmapWindow(ob_display, dock->frame); - /* but they are useful outside of this function! */ - dock->area.width += ob_rr_theme->obwidth * 2; - dock->area.height += ob_rr_theme->obwidth * 2; + /* but they are useful outside of this function! but don't add it if the + dock is actually not visible */ + if (dock->dock_apps) { + dock->area.width += ob_rr_theme->obwidth * 2; + dock->area.height += ob_rr_theme->obwidth * 2; + } screen_update_areas();