e comp x - clean up some core removing if 0'd out code and comment some

devs/bu5hm4n/pointer-fix
Carsten Haitzler 2 years ago
parent 0e158491e2
commit ab905c599f
  1. 28
      src/bin/e_comp.c
  2. 16
      src/bin/e_comp_object.c
  3. 45
      src/bin/e_comp_x.c

@ -1779,34 +1779,6 @@ e_comp_override_add(void)
if ((e_comp->nocomp_override > 0) && (e_comp->nocomp)) _e_comp_nocomp_end();
}
#if 0
FIXME
E_API void
e_comp_block_window_add(void)
{
e_comp->block_count++;
if (e_comp->block_win) return;
e_comp->block_win = ecore_x_window_new(e_comp->root, 0, 0, e_comp->w, e_comp->h);
INF("BLOCK WIN: %x", e_comp->block_win);
ecore_x_window_background_color_set(e_comp->block_win, 0, 0, 0);
e_comp_ignore_win_add(e_comp->block_win);
ecore_x_window_configure(e_comp->block_win,
ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING | ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
0, 0, 0, 0, 0, ((E_Comp_Win*)e_comp->wins)->win, ECORE_X_WINDOW_STACK_ABOVE);
ecore_x_window_show(e_comp->block_win);
}
E_API void
e_comp_block_window_del(void)
{
if (!e_comp->block_count) return;
e_comp->block_count--;
if (e_comp->block_count) return;
if (e_comp->block_win) ecore_x_window_free(e_comp->block_win);
e_comp->block_win = 0;
}
#endif
E_API E_Comp *
e_comp_find_by_window(Ecore_Window win)
{

@ -2526,7 +2526,9 @@ _e_comp_smart_move(Evas_Object *obj, int x, int y)
_e_comp_object_input_rect_update(cw);
/* this gets called once during setup to init coords offscreen and guarantee first move */
if (e_comp && cw->visible)
e_comp_shape_queue();
{
e_comp_shape_queue();
}
}
static void
@ -2602,7 +2604,9 @@ _e_comp_smart_resize(Evas_Object *obj, int w, int h)
if (!cw->visible) return;
e_comp_render_queue();
if (!cw->animating)
e_comp_shape_queue();
{
e_comp_shape_queue();
}
}
static void
@ -2759,7 +2763,9 @@ _e_comp_object_util_show(void *data EINA_UNUSED, Evas_Object *obj)
return;
}
else
e_comp_shape_queue();
{
e_comp_shape_queue();
}
evas_object_show(obj);
if (ref && (!stopping))
@ -2832,7 +2838,9 @@ _e_comp_object_util_moveresize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj
e_zoomap_child_resize(data, w, h);
}
if (evas_object_visible_get(obj))
e_comp_shape_queue();
{
e_comp_shape_queue();
}
}
E_API void

@ -1693,39 +1693,48 @@ _e_comp_x_configure(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_
//INF("configure %p: %d,%d %dx%d", ec, ev->x, ev->y, ev->w, ev->h);
if (ev->abovewin == 0)
{
if (e_client_below_get(ec))
evas_object_lower(ec->frame);
// forcibly lower the window as it's not above anything
if (e_client_below_get(ec)) evas_object_lower(ec->frame);
}
else
{
E_Client *ec2 = _e_comp_x_client_find_by_window(ev->abovewin);
E_Client *ec_above = _e_comp_x_client_find_by_window(ev->abovewin);
if (ec2)
// if we find the client the window is above
if (ec_above)
{
/* client(ec) wants to be above a layer client(ec2) */
if (e_client_is_stacking(ec2)) //is it a stacking placeholder window?
// if the window to stack above is a layer marker window/client
// then we need to find the next one up and stack below that
// because the ec_above will be one layer below as layer marker
// is at the top of a layer
if (e_client_is_stacking(ec_above))
{
E_Client *ec3;
E_Client *ec_next_up = e_client_above_get(ec_above);
ec3 = e_client_above_get(ec2);
/* stack under next client(ec3) */
if (ec3)
// stacking under the next win up == above ec_above
if (ec_next_up)
{
evas_object_layer_set(ec->frame, ec3->layer);
if (!e_client_is_stacking(ec3))
evas_object_stack_below(ec->frame, ec3->frame);
evas_object_layer_set(ec->frame, ec_next_up->layer);
evas_object_stack_below(ec->frame, ec_next_up->frame);
}
else // no marker above, so live on the same layer - on top
{
evas_object_layer_set(ec->frame, ec_above->layer);
}
else //force override to obey our stacking
evas_object_layer_set(ec->frame, ec2->layer);
}
// if it's above is a regular win
else
{
evas_object_layer_set(ec->frame, ec2->layer);
evas_object_stack_above(ec->frame, ec2->frame);
// if the layer obj is not right below already...
evas_object_layer_set(ec->frame, ec_above->layer);
evas_object_stack_above(ec->frame, ec_above->frame);
}
}
// we didnt find the client it's above - so stuff this on top
else
evas_object_layer_set(ec->frame, E_LAYER_CLIENT_PRIO);
{
evas_object_layer_set(ec->frame, E_LAYER_CLIENT_PRIO);
}
}
move = (ec->client.x != ev->x) || (ec->client.y != ev->y);
resize = (ec->client.w != ev->w) || (ec->client.h != ev->h);

Loading…
Cancel
Save