Name: e17
Summary: The Enlightenment window manager
-Version: 1.0.0.001+svn.76808slp2+build44
+Version: 1.0.0.001+svn.76808slp2+build45
Release: 1
Group: System/GUI/Other
License: BSD
install -m 0644 %SOURCE3 %{buildroot}%{_libdir}/systemd/user/
ln -s ../e17_early.service %{buildroot}%{_libdir}/systemd/user/core-efl.target.wants/e17_early.service
-%files
+%files
%manifest e17.manifest
%defattr(-,root,root,-)
/usr/bin/enlightenment
/usr/lib/pkgconfig/enlightenment.pc
/usr/include/enlightenment/*.h
-%files data
+%files data
%manifest e17-data.manifest
%defattr(-,root,root,-)
/usr/share/enlightenment/data/themes
_e_border_deiconify_approve_send_pending_end(void *data)
{
E_Border *bd = (E_Border *)data;
+ E_Border *bd_ancestor;
if (e_config->deiconify_approve)
{
ECORE_X_ATOM_E_DEICONIFY_APPROVE,
ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
bd->client.win, 0, 0, 0, 0);
+ bd_ancestor = bd->client.e.state.deiconify_approve.ancestor;
+ if (bd_ancestor)
+ {
+ bd_ancestor->client.e.state.deiconify_approve.req_list = eina_list_append(bd_ancestor->client.e.state.deiconify_approve.req_list, bd);
+ }
- bd->client.e.state.deiconify_approve.wait_timer = ecore_timer_add(e_config->deiconify_timeout, _e_border_uniconify_timeout, bd);
+ if (!bd->client.e.state.deiconify_approve.wait_timer)
+ bd->client.e.state.deiconify_approve.wait_timer = ecore_timer_add(e_config->deiconify_timeout, _e_border_uniconify_timeout, bd);
}
}
}
_e_border_deiconify_approve_send(child, bd_ancestor, p);
if (child->client.e.state.deiconify_approve.support)
{
- if (p)
+ if (!p)
{
ELBF(ELBT_BD, 0, child->client.win,
"SEND DEICONIFY_APPROVE. ancestor:%x pending(%d,%d)",
ELBF(ELBT_BD, 0, child->client.win,
"SEND DEICONIFY_APPROVE. (PENDING) ancestor:%x",
bd_ancestor->client.win);
+ child->client.e.state.deiconify_approve.ancestor = bd_ancestor;
child->client.e.state.deiconify_approve.pending_job = ecore_job_add(_e_border_deiconify_approve_send_pending_end, child);
}
}
ELB(ELBT_BD, "DEICONIFY_APPROVE WAIT_TIMER is already running", bd->client.win);
return;
}
+
+ if (bd->client.e.state.deiconify_approve.pending_job)
+ {
+ ELB(ELBT_BD, "DEICONIFY_APPROVE PENDING_JOB is already running", bd->client.win);
+ return;
+ }
+
if (bd->client.e.state.deiconify_approve.render_done == 0)
{
ELB(ELBT_BD, "DEICONIFY_APPROVE to all transient", bd->client.win);
bd->client.e.state.deiconify_approve.wait_timer = NULL;
}
+ if (bd->client.e.state.deiconify_approve.pending_job)
+ {
+ ecore_job_del(bd->client.e.state.deiconify_approve.pending_job);
+ bd->client.e.state.deiconify_approve.pending_job = NULL;
+ }
+
if (bd->client.e.state.deiconify_approve.req_list)
{
EINA_LIST_FREE(bd->client.e.state.deiconify_approve.req_list, child)
ancestor_bd->client.e.state.deiconify_approve.render_done = 0;
}
}
+
+ if (bd != ancestor_bd)
+ {
+ if (bd->client.e.state.deiconify_approve.wait_timer)
+ {
+ ecore_timer_del(bd->client.e.state.deiconify_approve.wait_timer);
+ bd->client.e.state.deiconify_approve.wait_timer = NULL;
+ }
+ }
}
}
return ECORE_CALLBACK_PASS_ON;