diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 29a65bcd9..49c547e3f 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -1161,6 +1161,11 @@ e_border_maximize(E_Border *bd, E_Maximize max) int x1, y1, x2, y2; int w, h; + if (bd->new_client) + { + bd->need_maximize = 1; + return; + } bd->saved.x = bd->x; bd->saved.y = bd->y; bd->saved.w = bd->w; @@ -2285,8 +2290,8 @@ _e_border_cb_window_configure_request(void *data, int ev_type, void *ev) bd = data; e = ev; -// printf("##- CONF REQ 0x%x , %iX%i+%i+%i\n", -// e->win, e->w, e->h, e->x, e->y); + printf("##- CONF REQ 0x%x , %iX%i+%i+%i\n", + e->win, e->w, e->h, e->x, e->y); bd = e_border_find_by_client_window(e->win); if (!bd) { @@ -4721,6 +4726,12 @@ _e_border_eval(E_Border *bd) bd->changes.shaded = 0; } + if (bd->need_maximize) + { + e_border_maximize(bd, e_config->maximize_policy); + bd->need_maximize = 0; + } + if ((bd->changes.pos) && (bd->changes.size)) { // printf("##- BORDER NEEDS POS/SIZE CHANGE 0x%x\n", bd->client.win); diff --git a/src/bin/e_border.h b/src/bin/e_border.h index 723c04584..bbe374337 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -288,6 +288,7 @@ struct _E_Border unsigned int take_focus : 1; unsigned int want_focus : 1; unsigned int user_skip_winlist : 1; + unsigned int need_maximize : 1; E_Maximize maximized; unsigned int lock_user_location : 1; /*DONE*/