gtk and qt have bizarrely wrong logic. for every configure request they

EXPECT a configurenotify to match. this is wrong. wm's are free to ignore
configurerequests if they liek - and dont have to thus send
configurenotifies...



SVN revision: 37922
This commit is contained in:
Carsten Haitzler 2008-12-04 10:07:16 +00:00
parent c35a5edffd
commit f4afa96251
2 changed files with 45 additions and 19 deletions

View File

@ -4168,6 +4168,11 @@ _e_border_cb_window_configure_request(void *data, int ev_type, void *ev)
}
}
}
ecore_x_icccm_move_resize_send(bd->client.win,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t,
bd->client.w,
bd->client.h);
return 1;
}
@ -4214,6 +4219,11 @@ _e_border_cb_window_resize_request(void *data, int ev_type, void *ev)
else
e_border_resize(bd, w, h);
}
ecore_x_icccm_move_resize_send(bd->client.win,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t,
bd->client.w,
bd->client.h);
return 1;
}
@ -6686,10 +6696,6 @@ _e_border_eval(E_Border *bd)
if ((bd->changes.pos) && (bd->changes.size))
{
if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t);
if ((bd->shaded) && (!bd->shading))
{
evas_obscured_clear(bd->bg_evas);
@ -6801,16 +6807,21 @@ _e_border_eval(E_Border *bd)
bd->x + bd->fx.x,
bd->y + bd->fx.y);
}
if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t);
ecore_x_icccm_move_resize_send(bd->client.win,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t,
bd->client.w,
bd->client.h);
bd->changes.pos = 0;
bd->changes.size = 0;
rem_change = 1;
}
else if (bd->changes.pos)
{
if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t);
if (1)
{
if (bd->post_job) ecore_idle_enterer_del(bd->post_job);
@ -6823,15 +6834,20 @@ _e_border_eval(E_Border *bd)
ecore_x_window_move(bd->win, bd->x + bd->fx.x, bd->y + bd->fx.y);
}
e_container_shape_move(bd->shape, bd->x + bd->fx.x, bd->y + bd->fx.y);
if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t);
ecore_x_icccm_move_resize_send(bd->client.win,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t,
bd->client.w,
bd->client.h);
bd->changes.pos = 0;
rem_change = 1;
}
else if (bd->changes.size)
{
if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t);
if (bd->shaded && !bd->shading)
{
evas_obscured_clear(bd->bg_evas);
@ -6929,6 +6945,15 @@ _e_border_eval(E_Border *bd)
evas_object_resize(bd->bg_object, bd->w, bd->h);
e_container_shape_resize(bd->shape, bd->w, bd->h);
}
if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t);
ecore_x_icccm_move_resize_send(bd->client.win,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t,
bd->client.w,
bd->client.h);
bd->changes.size = 0;
rem_change = 1;
}

View File

@ -497,6 +497,7 @@ _e_mod_layout_post_border_assign(E_Border *bd, int not_new)
if ((pbx != bd->x) || (pby != bd->y) ||
(pbw != bd->w) || (pbh != bd->h))
{
/*
if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l,
@ -506,7 +507,7 @@ _e_mod_layout_post_border_assign(E_Border *bd, int not_new)
bd->y + bd->fx.y + bd->client_inset.t,
bd->client.w,
bd->client.h);
bd->changed = 1;
*/ bd->changed = 1;
bd->changes.pos = 1;
bd->changes.size = 1;
}
@ -542,7 +543,7 @@ _e_mod_layout_post_border_assign(E_Border *bd, int not_new)
if ((pbx != bd->x) || (pby != bd->y) ||
(pbw != bd->w) || (pbh != bd->h))
{
if (bd->internal_ecore_evas)
/* if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t);
@ -551,7 +552,7 @@ _e_mod_layout_post_border_assign(E_Border *bd, int not_new)
bd->y + bd->fx.y + bd->client_inset.t,
bd->client.w,
bd->client.h);
bd->changed = 1;
*/ bd->changed = 1;
bd->changes.pos = 1;
}
if (bd->remember)
@ -598,7 +599,7 @@ _e_mod_layout_post_border_assign(E_Border *bd, int not_new)
if ((pbx != bd->x) || (pby != bd->y) ||
(pbw != bd->w) || (pbh != bd->h))
{
if (bd->internal_ecore_evas)
/* if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t);
@ -607,7 +608,7 @@ _e_mod_layout_post_border_assign(E_Border *bd, int not_new)
bd->y + bd->fx.y + bd->client_inset.t,
bd->client.w,
bd->client.h);
bd->changed = 1;
*/ bd->changed = 1;
bd->changes.pos = 1;
bd->changes.size = 1;
}
@ -623,7 +624,7 @@ _e_mod_layout_post_border_assign(E_Border *bd, int not_new)
if ((pbx != bd->x) || (pby != bd->y) ||
(pbw != bd->w) || (pbh != bd->h))
{
if (bd->internal_ecore_evas)
/* if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t);
@ -632,7 +633,7 @@ _e_mod_layout_post_border_assign(E_Border *bd, int not_new)
bd->y + bd->fx.y + bd->client_inset.t,
bd->client.w,
bd->client.h);
bd->changed = 1;
*/ bd->changed = 1;
bd->changes.pos = 1;
bd->changes.size = 1;
}