if (automatic)
con->border_style = config.default_floating_border;
+ /* 5: Subtract the deco_height in order to make the floating window appear
+ * at precisely the position it specified in its original geometry (which
+ * is what applications might remember). */
+ deco_height = (con->border_style == BS_NORMAL ? config.font.height + 5 : 0);
+ nc->rect.y -= deco_height;
+
+ DLOG("Corrected y = %d (deco_height = %d)\n", nc->rect.y, deco_height);
+
TAILQ_INSERT_TAIL(&(nc->nodes_head), con, nodes);
TAILQ_INSERT_TAIL(&(nc->focus_head), con, focused);
$window = $x->root->create_child(
class => WINDOW_CLASS_INPUT_OUTPUT,
- rect => [ 1, 1, 80, 90],
+ rect => [ 20, 20, 80, 90],
background_color => '#C0C0C0',
window_type => $x->atom(name => '_NET_WM_WINDOW_TYPE_UTILITY'),
event_mask => [ 'structure_notify' ],
cmp_ok($absolute->{width}, '==', 80, "i3 let the width at 80");
cmp_ok($absolute->{height}, '==', 90, "i3 let the height at 90");
-# We need to compare the position with decorations due to the way
-# we do decoration rendering (on the parent frame) in the tree branch
-cmp_ok($top->{x}, '==', 1, 'i3 mapped it to x=1');
-cmp_ok($top->{y}, '==', 19, 'i3 mapped it to y=18');
+cmp_ok($top->{x}, '==', 20, 'i3 mapped it to x=20');
+cmp_ok($top->{y}, '==', 20, 'i3 mapped it to y=20');
$window->unmap;