Ecore_X_Sync_Counter sync_counter;
Ecore_X_Window leader;
Ecore_X_Sync_Counter netwm_sync_counter;
+ int configure_reqs;
int netwm_sync_val_hi;
unsigned int netwm_sync_val_lo;
int sync_val; // bigger! this will screw up at 2 billion fram~
if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
if (edata->direct_resize) return ECORE_CALLBACK_PASS_ON;
+ if (edata->configure_reqs > 0) edata->configure_reqs--;
+
edata->configure_coming = 0;
if ((e->from_wm) || (ee->prop.override))
{
{
ee->w = e->w;
ee->h = e->h;
- ee->req.w = ee->w;
- ee->req.h = ee->h;
+ if (edata->configure_reqs == 0)
+ {
+ ee->req.w = ee->w;
+ ee->req.h = ee->h;
+ }
if (ECORE_EVAS_PORTRAIT(ee))
{
evas_output_size_set(ee->evas, ee->w, ee->h);
{
ee->x = x;
ee->y = y;
+ edata->configure_reqs++;
ecore_x_window_move(ee->prop.window, x, y);
if (!ee->should_be_visible)
{
ee->x = x;
ee->y = y;
}
+ edata->configure_reqs++;
ecore_x_window_move(ee->prop.window, x, y);
}
if (!ee->should_be_visible)
{
ee->w = w;
ee->h = h;
+ edata->configure_reqs++;
if (ee->prop.window) ecore_x_window_resize(ee->prop.window, w, h);
if (ECORE_EVAS_PORTRAIT(ee))
{
if (ee->func.fn_resize) ee->func.fn_resize(ee);
}
}
- else if (((ee->w != w) || (ee->h != h)) ||
- (edata->configure_coming))
+ else
{
edata->configure_coming = 1;
+ edata->configure_reqs++;
if (ee->prop.window) ecore_x_window_resize(ee->prop.window, w, h);
}
}
ee->req.y = y;
ee->req.w = w;
ee->req.h = h;
+
if (edata->direct_resize)
{
if ((ee->w != w) || (ee->h != h) || (x != ee->x) || (y != ee->y))
{
if ((x != ee->x) || (y != ee->y)) change_pos = 1;
}
+ edata->configure_reqs++;
ecore_x_window_move_resize(ee->prop.window, x, y, w, h);
if (!edata->managed)
{
}
}
}
- else if (((ee->w != w) || (ee->h != h) || (ee->x != x) || (ee->y != y)) ||
- (edata->configure_coming))
+ else
{
- edata->configure_coming = 1;
- ecore_x_window_move_resize(ee->prop.window, x, y, w, h);
- if (!edata->managed)
+ if ((ee->x != x) || (ee->y != y) || (edata->configure_coming))
{
- ee->x = x;
- ee->y = y;
+ edata->configure_coming = 1;
+ edata->configure_reqs++;
+ ecore_x_window_move_resize(ee->prop.window, x, y, w, h);
+ if (!edata->managed)
+ {
+ ee->x = x;
+ ee->y = y;
+ }
+ }
+ else
+ {
+ edata->configure_coming = 1;
+ edata->configure_reqs++;
+ if (ee->prop.window) ecore_x_window_resize(ee->prop.window, w, h);
}
}
}