forked from enlightenment/enlightenment
e17: fix dnd to invisible windows and fix e_border_comp_hidden_set
- dont drop e drags (e.g. efm files) to windows from other desks - should also fix wrong last desk focus set with deskflip animations enabled SVN revision: 58551
This commit is contained in:
parent
1649d2b09a
commit
e923d63c72
|
@ -200,6 +200,8 @@ static void _e_border_client_move_resize_send(E_Border *bd);
|
||||||
static void _e_border_frame_replace(E_Border *bd,
|
static void _e_border_frame_replace(E_Border *bd,
|
||||||
Eina_Bool argb);
|
Eina_Bool argb);
|
||||||
|
|
||||||
|
static void _e_border_show(E_Border *bd);
|
||||||
|
static void _e_border_hide(E_Border *bd);
|
||||||
|
|
||||||
/* local subsystem globals */
|
/* local subsystem globals */
|
||||||
static Eina_List *handlers = NULL;
|
static Eina_List *handlers = NULL;
|
||||||
|
@ -2908,17 +2910,7 @@ e_border_idler_before(void)
|
||||||
(!bd->new_client) && (!bd->changes.pos) &&
|
(!bd->new_client) && (!bd->changes.pos) &&
|
||||||
(!bd->changes.size))
|
(!bd->changes.size))
|
||||||
{
|
{
|
||||||
ecore_evas_show(bd->bg_ecore_evas);
|
_e_border_show(bd);
|
||||||
if (bd->post_job)
|
|
||||||
{
|
|
||||||
bd->post_show = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!bd->comp_hidden)
|
|
||||||
ecore_x_composite_window_events_enable(bd->win);
|
|
||||||
ecore_x_window_show(bd->win);
|
|
||||||
}
|
|
||||||
bd->changes.visible = 0;
|
bd->changes.visible = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2929,35 +2921,21 @@ e_border_idler_before(void)
|
||||||
while ((bd = e_container_border_list_next(bl)))
|
while ((bd = e_container_border_list_next(bl)))
|
||||||
{
|
{
|
||||||
if (e_object_is_del(E_OBJECT(bd))) continue;
|
if (e_object_is_del(E_OBJECT(bd))) continue;
|
||||||
|
|
||||||
if ((bd->changes.visible) && (!bd->visible))
|
if ((bd->changes.visible) && (!bd->visible))
|
||||||
{
|
{
|
||||||
if (!e_manager_comp_evas_get(bd->zone->container->manager))
|
_e_border_hide(bd);
|
||||||
{
|
|
||||||
ecore_x_window_hide(bd->win);
|
|
||||||
ecore_evas_hide(bd->bg_ecore_evas);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ecore_x_composite_window_events_disable(bd->win);
|
|
||||||
}
|
|
||||||
bd->changes.visible = 0;
|
bd->changes.visible = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bd->changed) _e_border_eval(bd);
|
if (bd->changed) _e_border_eval(bd);
|
||||||
|
|
||||||
if ((bd->changes.visible) && (bd->visible))
|
if ((bd->changes.visible) && (bd->visible))
|
||||||
{
|
{
|
||||||
ecore_evas_show(bd->bg_ecore_evas);
|
_e_border_show(bd);
|
||||||
if (bd->post_job)
|
|
||||||
{
|
|
||||||
bd->post_show = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!bd->comp_hidden)
|
|
||||||
ecore_x_composite_window_events_enable(bd->win);
|
|
||||||
ecore_x_window_show(bd->win);
|
|
||||||
}
|
|
||||||
bd->changes.visible = 0;
|
bd->changes.visible = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
e_container_border_list_free(bl);
|
e_container_border_list_free(bl);
|
||||||
}
|
}
|
||||||
|
@ -3015,6 +2993,41 @@ static Ecore_Event_Handler *action_handler_mouse = NULL;
|
||||||
static Ecore_Timer *action_timer = NULL;
|
static Ecore_Timer *action_timer = NULL;
|
||||||
static Ecore_X_Rectangle action_orig;
|
static Ecore_X_Rectangle action_orig;
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_border_show(E_Border *bd)
|
||||||
|
{
|
||||||
|
ecore_evas_show(bd->bg_ecore_evas);
|
||||||
|
|
||||||
|
if (bd->post_job)
|
||||||
|
{
|
||||||
|
bd->post_show = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!bd->comp_hidden)
|
||||||
|
{
|
||||||
|
ecore_x_composite_window_events_enable(bd->win);
|
||||||
|
ecore_x_window_ignore_set(bd->win, EINA_FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
ecore_x_window_show(bd->win);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_border_hide(E_Border *bd)
|
||||||
|
{
|
||||||
|
if (!e_manager_comp_evas_get(bd->zone->container->manager))
|
||||||
|
{
|
||||||
|
ecore_x_window_hide(bd->win);
|
||||||
|
ecore_evas_hide(bd->bg_ecore_evas);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ecore_x_composite_window_events_disable(bd->win);
|
||||||
|
ecore_x_window_ignore_set(bd->win, EINA_TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_e_border_action_input_win_del(void)
|
_e_border_action_input_win_del(void)
|
||||||
{
|
{
|
||||||
|
@ -5980,13 +5993,13 @@ _e_border_post_move_resize_job(void *data)
|
||||||
{
|
{
|
||||||
ecore_x_window_resize(bd->win, bd->w, bd->h);
|
ecore_x_window_resize(bd->win, bd->w, bd->h);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bd->post_show)
|
if (bd->post_show)
|
||||||
{
|
{
|
||||||
if (bd->visible)
|
if (bd->visible)
|
||||||
{
|
{
|
||||||
ecore_x_window_show(bd->win);
|
bd->post_job = NULL;
|
||||||
if (!bd->comp_hidden)
|
_e_border_show(bd);
|
||||||
ecore_x_composite_window_events_enable(bd->win);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bd->post_show = 0;
|
bd->post_show = 0;
|
||||||
|
@ -7520,17 +7533,9 @@ _e_border_eval(E_Border *bd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ecore_evas_show(bd->bg_ecore_evas);
|
|
||||||
if (bd->post_job)
|
_e_border_show(bd);
|
||||||
{
|
|
||||||
bd->post_show = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!bd->comp_hidden)
|
|
||||||
ecore_x_composite_window_events_enable(bd->win);
|
|
||||||
ecore_x_window_show(bd->win);
|
|
||||||
}
|
|
||||||
if (bd->cur_mouse_action)
|
if (bd->cur_mouse_action)
|
||||||
{
|
{
|
||||||
bd->moveinfo.down.x = bd->x + bd->fx.x;
|
bd->moveinfo.down.x = bd->x + bd->fx.x;
|
||||||
|
@ -8683,9 +8688,18 @@ e_border_comp_hidden_set(E_Border *bd,
|
||||||
E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
|
E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
|
||||||
|
|
||||||
if (bd->comp_hidden == hidden) return;
|
if (bd->comp_hidden == hidden) return;
|
||||||
|
|
||||||
|
bd->comp_hidden = hidden;
|
||||||
|
|
||||||
if (bd->comp_hidden)
|
if (bd->comp_hidden)
|
||||||
|
{
|
||||||
ecore_x_composite_window_events_disable(bd->win);
|
ecore_x_composite_window_events_disable(bd->win);
|
||||||
|
ecore_x_window_ignore_set(bd->win, EINA_TRUE);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
ecore_x_composite_window_events_enable(bd->win);
|
ecore_x_composite_window_events_enable(bd->win);
|
||||||
|
ecore_x_window_ignore_set(bd->win, EINA_FALSE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/*vim:ts=8 sw=3 sts=3 expandtab cino=>5n-3f0^-2{2(0W1st0*/
|
/*vim:ts=8 sw=3 sts=3 expandtab cino=>5n-3f0^-2{2(0W1st0*/
|
||||||
|
|
Loading…
Reference in New Issue