forked from enlightenment/efl
thanks to jiyoun's work in finding why this happens - here's actually a
simpler fix. :) SVN revision: 64405
This commit is contained in:
parent
122a51f16a
commit
b08afffb83
|
@ -208,6 +208,7 @@ struct _Ecore_Evas_Engine
|
||||||
unsigned char sync_began : 1;
|
unsigned char sync_began : 1;
|
||||||
unsigned char sync_cancel : 1;
|
unsigned char sync_cancel : 1;
|
||||||
unsigned char netwm_sync_set : 1;
|
unsigned char netwm_sync_set : 1;
|
||||||
|
unsigned char configure_coming : 1;
|
||||||
struct {
|
struct {
|
||||||
unsigned char modal : 1;
|
unsigned char modal : 1;
|
||||||
unsigned char sticky : 1;
|
unsigned char sticky : 1;
|
||||||
|
|
|
@ -122,7 +122,7 @@ _ecore_evas_obj_callback_resize(void *data, Evas *e __UNUSED__, Evas_Object *obj
|
||||||
|
|
||||||
evas_object_geometry_get(obj, NULL, NULL, &ow, &oh);
|
evas_object_geometry_get(obj, NULL, NULL, &ow, &oh);
|
||||||
ecore_evas_geometry_get(ee, NULL, NULL, &w, &h);
|
ecore_evas_geometry_get(ee, NULL, NULL, &w, &h);
|
||||||
if ((w != ow) || (h != oh)) /* avoid recursion on ecore_evas_resize side */
|
/*if ((w != ow) || (h != oh))*/ /* avoid recursion on ecore_evas_resize side */
|
||||||
ecore_evas_resize(ee, ow, oh);
|
ecore_evas_resize(ee, ow, oh);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -917,6 +917,7 @@ _ecore_evas_x_event_window_configure(void *data __UNUSED__, int type __UNUSED__,
|
||||||
if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ee->engine.x.direct_resize) return ECORE_CALLBACK_PASS_ON;
|
if (ee->engine.x.direct_resize) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
|
ee->engine.x.configure_coming = 0;
|
||||||
if ((e->from_wm) || (ee->prop.override))
|
if ((e->from_wm) || (ee->prop.override))
|
||||||
{
|
{
|
||||||
if ((ee->x != e->x) || (ee->y != e->y))
|
if ((ee->x != e->x) || (ee->y != e->y))
|
||||||
|
@ -1291,8 +1292,10 @@ _ecore_evas_x_move(Ecore_Evas *ee, int x, int y)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((ee->x != x) || (ee->y != y))
|
if (((ee->x != x) || (ee->y != y)) ||
|
||||||
|
(ee->engine.x.configure_coming))
|
||||||
{
|
{
|
||||||
|
ee->engine.x.configure_coming = 1;
|
||||||
if (!ee->engine.x.managed)
|
if (!ee->engine.x.managed)
|
||||||
{
|
{
|
||||||
ee->x = x;
|
ee->x = x;
|
||||||
|
@ -1361,8 +1364,12 @@ _ecore_evas_x_resize(Ecore_Evas *ee, int w, int h)
|
||||||
if (ee->func.fn_resize) ee->func.fn_resize(ee);
|
if (ee->func.fn_resize) ee->func.fn_resize(ee);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((ee->w != w) || (ee->h != h))
|
else if (((ee->w != w) || (ee->h != h)) ||
|
||||||
ecore_x_window_resize(ee->prop.window, w, h);
|
(ee->engine.x.configure_coming))
|
||||||
|
{
|
||||||
|
ee->engine.x.configure_coming = 1;
|
||||||
|
ecore_x_window_resize(ee->prop.window, w, h);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1421,8 +1428,10 @@ _ecore_evas_x_move_resize(Ecore_Evas *ee, int x, int y, int w, int h)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (((ee->w != w) || (ee->h != h) || (ee->x != x) || (ee->y != y)) ||
|
||||||
|
(ee->engine.x.configure_coming))
|
||||||
{
|
{
|
||||||
|
ee->engine.x.configure_coming = 1;
|
||||||
ecore_x_window_move_resize(ee->prop.window, x, y, w, h);
|
ecore_x_window_move_resize(ee->prop.window, x, y, w, h);
|
||||||
if (!ee->engine.x.managed)
|
if (!ee->engine.x.managed)
|
||||||
{
|
{
|
||||||
|
@ -1452,6 +1461,7 @@ _ecore_evas_x_rotation_set_internal(Ecore_Evas *ee, int rotation, int resize,
|
||||||
|
|
||||||
if (!resize)
|
if (!resize)
|
||||||
{
|
{
|
||||||
|
ee->engine.x.configure_coming = 1;
|
||||||
if (!ee->prop.fullscreen)
|
if (!ee->prop.fullscreen)
|
||||||
{
|
{
|
||||||
ecore_x_window_resize(ee->prop.window, ee->req.h, ee->req.w);
|
ecore_x_window_resize(ee->prop.window, ee->req.h, ee->req.w);
|
||||||
|
|
Loading…
Reference in New Issue