respect hidden comp state in border infra.

SVN revision: 50806
This commit is contained in:
Carsten Haitzler 2010-08-04 06:24:06 +00:00
parent b7f0649551
commit 81963af8d8
3 changed files with 27 additions and 4 deletions

View File

@ -2744,8 +2744,9 @@ e_border_idler_before(void)
}
else
{
if (!bd->comp_hidden)
ecore_x_composite_window_events_enable(bd->win);
ecore_x_window_show(bd->win);
ecore_x_composite_window_events_enable(bd->win);
}
bd->changes.visible = 0;
}
@ -2784,8 +2785,9 @@ e_border_idler_before(void)
}
else
{
if (!bd->comp_hidden)
ecore_x_composite_window_events_enable(bd->win);
ecore_x_window_show(bd->win);
ecore_x_composite_window_events_enable(bd->win);
}
bd->changes.visible = 0;
}
@ -5633,7 +5635,8 @@ _e_border_post_move_resize_job(void *data)
if (bd->visible)
{
ecore_x_window_show(bd->win);
ecore_x_composite_window_events_enable(bd->win);
if (!bd->comp_hidden)
ecore_x_composite_window_events_enable(bd->win);
}
}
bd->post_show = 0;
@ -7033,8 +7036,9 @@ _e_border_eval(E_Border *bd)
}
else
{
if (!bd->comp_hidden)
ecore_x_composite_window_events_enable(bd->win);
ecore_x_window_show(bd->win);
ecore_x_composite_window_events_enable(bd->win);
}
if (bd->cur_mouse_action)
{
@ -8129,3 +8133,16 @@ e_border_pointer_warp_to_center(E_Border *bd)
warp_timer = ecore_timer_add(0.01, _e_border_pointer_warp_to_center_timer, (const void*)bd);
return 1;
}
EAPI void
e_border_comp_hidden_set(E_Border *bd, Eina_Bool hidden)
{
E_OBJECT_CHECK(bd);
E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
if (bd->comp_hidden == hidden) return;
if (bd->comp_hidden)
ecore_x_composite_window_events_disable(bd->win);
else
ecore_x_composite_window_events_enable(bd->win);
}

View File

@ -558,6 +558,8 @@ struct _E_Border
Efreet_Desktop *desktop;
E_Pointer *pointer;
unsigned char comp_hidden : 1;
unsigned char post_move : 1;
unsigned char post_resize : 1;
@ -702,6 +704,8 @@ EAPI void e_border_focus_track_thaw(void);
EAPI E_Border *e_border_under_pointer_get(E_Desk *desk, E_Border *exclude);
EAPI int e_border_pointer_warp_to_center(E_Border *bd);
EAPI void e_border_comp_hidden_set(E_Border *bd, Eina_Bool hidden);
extern EAPI int E_EVENT_BORDER_RESIZE;
extern EAPI int E_EVENT_BORDER_MOVE;
extern EAPI int E_EVENT_BORDER_ADD;

View File

@ -2428,7 +2428,9 @@ _e_mod_comp_src_hidden_set_func(void *data, E_Manager *man, E_Manager_Comp_Sourc
E_Comp *c = data;
E_Comp_Win *cw = (E_Comp_Win *)src;
if (!cw->c) return;
if (!cw->hidden_override == hidden) return;
cw->hidden_override = hidden;
if (cw->bd) e_border_comp_hidden_set(cw->bd, cw->hidden_override);
if (cw->visible)
{
if (cw->hidden_override) evas_object_hide(cw->shobj);