diff --git a/src/bin/e_border.c b/src/bin/e_border.c index c98c3cc84..f7bbda2f3 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -1971,32 +1971,37 @@ _e_border_cb_window_state(void *data, int ev_type, void *ev) { for (i = 0; i < 2; i++) { - if (e->state[i] == ECORE_X_WINDOW_STATE_ICONIFIED) + switch (e->state[i]) { - if (e->action == ECORE_X_WINDOW_STATE_ACTION_ADD) - { - ecore_x_icccm_state_set(e->win, ECORE_X_WINDOW_STATE_HINT_ICONIC); - ecore_x_netwm_window_state_set(e->win, ECORE_X_WINDOW_STATE_HIDDEN, 1); - } - } - else - { - switch (e->action) - { - case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - ecore_x_netwm_window_state_set(e->win, e->state[i], 0); - break; - case ECORE_X_WINDOW_STATE_ACTION_ADD: - ecore_x_netwm_window_state_set(e->win, e->state[i], 1); - break; - case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - on = ecore_x_netwm_window_state_isset(e->win, e->state[i]); - if (on) - ecore_x_netwm_window_state_set(e->win, e->state[i], 0); - else - ecore_x_netwm_window_state_set(e->win, e->state[i], 1); - break; - } + case ECORE_X_WINDOW_STATE_ICONIFIED: + if (e->action == ECORE_X_WINDOW_STATE_ACTION_ADD) + { + ecore_x_icccm_state_set(e->win, ECORE_X_WINDOW_STATE_HINT_ICONIC); + ecore_x_netwm_window_state_set(e->win, ECORE_X_WINDOW_STATE_HIDDEN, 1); + } + break; + case ECORE_X_WINDOW_STATE_UNKNOWN: + case ECORE_X_WINDOW_STATE_HIDDEN: + /* Ignore */ + break; + default: + switch (e->action) + { + case ECORE_X_WINDOW_STATE_ACTION_REMOVE: + ecore_x_netwm_window_state_set(e->win, e->state[i], 0); + break; + case ECORE_X_WINDOW_STATE_ACTION_ADD: + ecore_x_netwm_window_state_set(e->win, e->state[i], 1); + break; + case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: + on = ecore_x_netwm_window_state_isset(e->win, e->state[i]); + if (on) + ecore_x_netwm_window_state_set(e->win, e->state[i], 0); + else + ecore_x_netwm_window_state_set(e->win, e->state[i], 1); + break; + } + break; } } }