void
_EcoreEvas::SetOwner(NativeWindowHandle ownee, NativeWindowHandle owner)
{
- ecore_x_icccm_transient_for_unset(ownee);
- ecore_x_icccm_transient_for_set(ownee, owner);
-
- SysLog(NID_UI, "[Window Order Group][Window : 0x%x] transient_for_set -> 0x%x", ownee, owner);
+ Ecore_X_Window win = ecore_x_icccm_transient_for_get(ownee);
+ if (win != owner)
+ {
+ ecore_x_icccm_transient_for_unset(ownee);
+ ecore_x_icccm_transient_for_set(ownee, owner);
+ SysLog(NID_UI, "[Window Order Group][Window : 0x%x] transient_for_set -> 0x%x", ownee, owner);
+ }
}
void
ecore_x_netwm_window_type_get(owneeWin, &type);
if ((type == ECORE_X_WINDOW_TYPE_NORMAL) || (type == ECORE_X_WINDOW_TYPE_UTILITY))
{
- ecore_x_icccm_transient_for_unset(owneeWin);
- ecore_x_icccm_transient_for_set(owneeWin, ownerWin);
- SysLog(NID_UI, "[Window Order Group][Window : 0x%x] transient_for_set -> 0x%x", owneeWin, ownerWin);
+ Ecore_X_Window win = ecore_x_icccm_transient_for_get(owneeWin);
+ if (win != ownerWin)
+ {
+ ecore_x_icccm_transient_for_unset(owneeWin);
+ ecore_x_icccm_transient_for_set(owneeWin, ownerWin);
+ SysLog(NID_UI, "[Window Order Group][Window : 0x%x] transient_for_set -> 0x%x", owneeWin, ownerWin);
+ }
}
else
{