diff options
Diffstat (limited to 'src/Ewmh.cc')
-rw-r--r-- | src/Ewmh.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/Ewmh.cc b/src/Ewmh.cc index 3ff4e76..afa138c 100644 --- a/src/Ewmh.cc +++ b/src/Ewmh.cc | |||
@@ -622,21 +622,25 @@ void Ewmh::updateState(FluxboxWindow &win) { | |||
622 | state.push_back(m_net_wm_state_skip_taskbar); | 622 | state.push_back(m_net_wm_state_skip_taskbar); |
623 | if (win.isFullscreen()) | 623 | if (win.isFullscreen()) |
624 | state.push_back(m_net_wm_state_fullscreen); | 624 | state.push_back(m_net_wm_state_fullscreen); |
625 | if (win.winClient().isStateModal()) | ||
626 | state.push_back(m_net_wm_state_modal); | ||
627 | 625 | ||
628 | FluxboxWindow::ClientList::iterator it = win.clientList().begin(); | 626 | FluxboxWindow::ClientList::iterator it = win.clientList().begin(); |
629 | FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); | 627 | FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); |
630 | for (; it != it_end; ++it) { | 628 | for (; it != it_end; ++it) { |
631 | 629 | ||
632 | // search the old states for _NET_WM_STATE_SKIP_PAGER and append it | ||
633 | // to the current state, so it wont get deleted by us. | ||
634 | StateVec client_state(state); | 630 | StateVec client_state(state); |
635 | Atom ret_type; | 631 | Atom ret_type; |
636 | int fmt; | 632 | int fmt; |
637 | unsigned long nitems, bytes_after; | 633 | unsigned long nitems, bytes_after; |
638 | unsigned char *data = 0; | 634 | unsigned char *data = 0; |
639 | 635 | ||
636 | // set client-specific state | ||
637 | if ((*it)->isStateModal()) | ||
638 | client_state.push_back(m_net_wm_state_modal); | ||
639 | if (Fluxbox::instance()->attentionHandler().isDemandingAttention(**it)) | ||
640 | client_state.push_back(m_net_wm_state_demands_attention); | ||
641 | |||
642 | // search the old states for _NET_WM_STATE_SKIP_PAGER and append it | ||
643 | // to the current state, so it wont get deleted by us. | ||
640 | (*it)->property(m_net_wm_state, 0, 0x7fffffff, False, XA_ATOM, | 644 | (*it)->property(m_net_wm_state, 0, 0x7fffffff, False, XA_ATOM, |
641 | &ret_type, &fmt, &nitems, &bytes_after, | 645 | &ret_type, &fmt, &nitems, &bytes_after, |
642 | &data); | 646 | &data); |