diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 915c59986..433969607 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -332,7 +332,10 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map) else if (atoms[i] == ECORE_X_ATOM_MOTIF_WM_HINTS) bd->client.mwm.fetch.hints = 1; else if (atoms[i] == ECORE_X_ATOM_WM_TRANSIENT_FOR) - bd->client.icccm.fetch.transient_for = 1; + { + bd->client.icccm.fetch.transient_for = 1; + bd->client.netwm.fetch.type = 1; + } else if (atoms[i] == ECORE_X_ATOM_WM_CLIENT_LEADER) bd->client.icccm.fetch.client_leader = 1; else if (atoms[i] == ECORE_X_ATOM_WM_WINDOW_ROLE) @@ -5291,7 +5294,7 @@ _e_border_eval(E_Border *bd) ecore_x_window_show(bd->win); if ((!bd->re_manage) && (e_config->window_placement_policy == E_WINDOW_PLACEMENT_MANUAL) && - (!bd->client.icccm.transient_for) && + (bd->client.netwm.type != ECORE_X_WINDOW_TYPE_DIALOG) && (!move) && (!resize)) { /* Set this window into moving state */ @@ -5350,10 +5353,9 @@ _e_border_eval(E_Border *bd) } else { - if (bd->client.icccm.transient_for != 0) + if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DIALOG) { if ((e_config->focus_setting == E_FOCUS_NEW_DIALOG) || - ((e_config->focus_setting == E_FOCUS_NEW_DIALOG_IF_OWNER_FOCUSED) && (e_border_find_by_client_window(bd->client.icccm.transient_for) == e_border_focused_get()))) diff --git a/src/bin/e_dialog.c b/src/bin/e_dialog.c index 5400a8145..19947e58a 100644 --- a/src/bin/e_dialog.c +++ b/src/bin/e_dialog.c @@ -47,7 +47,7 @@ e_dialog_new(E_Container *con) free(dia); return NULL; } - ecore_x_icccm_transient_for_set(dia->win->evas_win, con->win); + ecore_x_netwm_window_type_set(dia->win->evas_win, ECORE_X_WINDOW_TYPE_DIALOG); e_win_delete_callback_set(dia->win, _e_dialog_cb_delete); dia->win->data = dia; e_win_name_class_set(dia->win, "E", "_dialog");