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; return 1;
} }
@ -4214,6 +4219,11 @@ _e_border_cb_window_resize_request(void *data, int ev_type, void *ev)
else else
e_border_resize(bd, w, h); 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; return 1;
} }
@ -6686,10 +6696,6 @@ _e_border_eval(E_Border *bd)
if ((bd->changes.pos) && (bd->changes.size)) 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)) if ((bd->shaded) && (!bd->shading))
{ {
evas_obscured_clear(bd->bg_evas); evas_obscured_clear(bd->bg_evas);
@ -6801,16 +6807,21 @@ _e_border_eval(E_Border *bd)
bd->x + bd->fx.x, bd->x + bd->fx.x,
bd->y + bd->fx.y); 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.pos = 0;
bd->changes.size = 0; bd->changes.size = 0;
rem_change = 1; rem_change = 1;
} }
else if (bd->changes.pos) 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 (1)
{ {
if (bd->post_job) ecore_idle_enterer_del(bd->post_job); 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); 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); 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; bd->changes.pos = 0;
rem_change = 1; rem_change = 1;
} }
else if (bd->changes.size) 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) if (bd->shaded && !bd->shading)
{ {
evas_obscured_clear(bd->bg_evas); 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); evas_object_resize(bd->bg_object, bd->w, bd->h);
e_container_shape_resize(bd->shape, 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; bd->changes.size = 0;
rem_change = 1; 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) || if ((pbx != bd->x) || (pby != bd->y) ||
(pbw != bd->w) || (pbh != bd->h)) (pbw != bd->w) || (pbh != bd->h))
{ {
/*
if (bd->internal_ecore_evas) if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas, ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l, 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->y + bd->fx.y + bd->client_inset.t,
bd->client.w, bd->client.w,
bd->client.h); bd->client.h);
bd->changed = 1; */ bd->changed = 1;
bd->changes.pos = 1; bd->changes.pos = 1;
bd->changes.size = 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) || if ((pbx != bd->x) || (pby != bd->y) ||
(pbw != bd->w) || (pbh != bd->h)) (pbw != bd->w) || (pbh != bd->h))
{ {
if (bd->internal_ecore_evas) /* if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas, ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l, bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t); 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->y + bd->fx.y + bd->client_inset.t,
bd->client.w, bd->client.w,
bd->client.h); bd->client.h);
bd->changed = 1; */ bd->changed = 1;
bd->changes.pos = 1; bd->changes.pos = 1;
} }
if (bd->remember) 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) || if ((pbx != bd->x) || (pby != bd->y) ||
(pbw != bd->w) || (pbh != bd->h)) (pbw != bd->w) || (pbh != bd->h))
{ {
if (bd->internal_ecore_evas) /* if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas, ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l, bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t); 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->y + bd->fx.y + bd->client_inset.t,
bd->client.w, bd->client.w,
bd->client.h); bd->client.h);
bd->changed = 1; */ bd->changed = 1;
bd->changes.pos = 1; bd->changes.pos = 1;
bd->changes.size = 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) || if ((pbx != bd->x) || (pby != bd->y) ||
(pbw != bd->w) || (pbh != bd->h)) (pbw != bd->w) || (pbh != bd->h))
{ {
if (bd->internal_ecore_evas) /* if (bd->internal_ecore_evas)
ecore_evas_managed_move(bd->internal_ecore_evas, ecore_evas_managed_move(bd->internal_ecore_evas,
bd->x + bd->fx.x + bd->client_inset.l, bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t); 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->y + bd->fx.y + bd->client_inset.t,
bd->client.w, bd->client.w,
bd->client.h); bd->client.h);
bd->changed = 1; */ bd->changed = 1;
bd->changes.pos = 1; bd->changes.pos = 1;
bd->changes.size = 1; bd->changes.size = 1;
} }