diff --git a/src/bin/e_hints.c b/src/bin/e_hints.c index 693caed65..cf9ae0bbd 100644 --- a/src/bin/e_hints.c +++ b/src/bin/e_hints.c @@ -30,6 +30,8 @@ e_hints_init(void) ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_CLIENT_LIST, 1); ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_CLIENT_LIST_STACKING, 1); + ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_DESKTOP_GEOMETRY, 1); + ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_SUPPORTED, 1); ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK, 1); ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_VIRTUAL_ROOTS, 1); @@ -50,6 +52,12 @@ e_hints_init(void) } } +void +e_hints_manager_init(E_Manager *man) +{ + ecore_x_netwm_desk_size_set(man->root, man->w, man->h); +} + /* FIXME, this should set the list in map order, not stack order */ void e_hints_client_list_set(void) @@ -327,7 +335,8 @@ e_hints_window_init(E_Border *bd) e_border_maximize(bd); if (bd->client.netwm.state.fullscreen) e_border_fullscreen(bd); - if (bd->client.icccm.state == ECORE_X_WINDOW_STATE_HINT_ICONIC) + if ((bd->client.icccm.state == ECORE_X_WINDOW_STATE_HINT_ICONIC) + && (bd->client.netwm.state.hidden)) e_border_iconify(bd); /* If a window isn't iconic, and is one the current desk, * show it! */ diff --git a/src/bin/e_hints.h b/src/bin/e_hints.h index ab30566c4..f54560203 100644 --- a/src/bin/e_hints.h +++ b/src/bin/e_hints.h @@ -7,6 +7,7 @@ #define E_HINTS_H EAPI void e_hints_init(void); +EAPI void e_hints_manager_init(E_Manager *man); EAPI void e_hints_client_list_set(void); EAPI void e_hints_client_stacking_set(void);