diff --git a/event.c b/event.c index 29bcbe8d..b6a1977b 100644 --- a/event.c +++ b/event.c @@ -329,6 +329,14 @@ event_handle_configurerequest(xcb_configure_request_event_t *ev) if((c = client_getbywin(ev->window))) { + lua_State *L = globalconf_get_lua_State(); + if(ev->value_mask & XCB_CONFIG_WINDOW_BORDER_WIDTH) + { + luaA_object_push(L, c); + window_set_border_width(L, -1, ev->border_width); + lua_pop(L, 1); + } + area_t geometry = c->geometry; uint16_t bw = c->border_width; uint16_t tb_left = c->titlebar[CLIENT_TITLEBAR_LEFT].size; @@ -339,9 +347,7 @@ event_handle_configurerequest(xcb_configure_request_event_t *ev) uint16_t deco_right = bw + tb_right; uint16_t deco_top = bw + tb_top; uint16_t deco_bottom = bw + tb_bottom; - int16_t diff_w = 0, diff_h = 0, diff_border = 0; - - lua_State *L = globalconf_get_lua_State(); + int16_t diff_w = 0, diff_h = 0; if(ev->value_mask & XCB_CONFIG_WINDOW_WIDTH) { @@ -359,21 +365,11 @@ event_handle_configurerequest(xcb_configure_request_event_t *ev) geometry.height += tb_top + tb_bottom; diff_h = geometry.height - old_h; } - if(ev->value_mask & XCB_CONFIG_WINDOW_BORDER_WIDTH) - { - diff_border = ev->border_width - bw; - diff_h += diff_border; - diff_w += diff_border; - - luaA_object_push(L, c); - window_set_border_width(L, -1, ev->border_width); - lua_pop(L, 1); - } /* If the client resizes without moving itself, apply window gravity */ if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY) { - xwindow_translate_for_gravity(c->size_hints.win_gravity, diff_border, diff_border, diff_w, diff_h, &geometry.x, &geometry.y); + xwindow_translate_for_gravity(c->size_hints.win_gravity, 0, 0, diff_w, diff_h, &geometry.x, &geometry.y); } if(ev->value_mask & XCB_CONFIG_WINDOW_X) {