diff options
author | markt <markt> | 2007-07-01 17:59:57 (GMT) |
---|---|---|
committer | markt <markt> | 2007-07-01 17:59:57 (GMT) |
commit | 7783a8c84e57c4a58d270b9722800a031f50ed62 (patch) | |
tree | 2c6f8f4ff4aede78907466a6b15bfd25fdd3600c /src/Ewmh.cc | |
parent | 61b757d872778131aa773aadc9c59fdfb3fe2238 (diff) | |
download | fluxbox_pavel-7783a8c84e57c4a58d270b9722800a031f50ed62.zip fluxbox_pavel-7783a8c84e57c4a58d270b9722800a031f50ed62.tar.bz2 |
more fixes for _NET_WM_STATE_MODAL and _NET_WM_STATE_DEMANDS_ATTENTION
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 ef2fc09..8fede5e 100644 --- a/src/Ewmh.cc +++ b/src/Ewmh.cc | |||
@@ -629,21 +629,25 @@ void Ewmh::updateState(FluxboxWindow &win) { | |||
629 | state.push_back(m_net_wm_state_skip_taskbar); | 629 | state.push_back(m_net_wm_state_skip_taskbar); |
630 | if (win.isFullscreen()) | 630 | if (win.isFullscreen()) |
631 | state.push_back(m_net_wm_state_fullscreen); | 631 | state.push_back(m_net_wm_state_fullscreen); |
632 | if (win.winClient().isStateModal()) | ||
633 | state.push_back(m_net_wm_state_modal); | ||
634 | 632 | ||
635 | FluxboxWindow::ClientList::iterator it = win.clientList().begin(); | 633 | FluxboxWindow::ClientList::iterator it = win.clientList().begin(); |
636 | FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); | 634 | FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); |
637 | for (; it != it_end; ++it) { | 635 | for (; it != it_end; ++it) { |
638 | 636 | ||
639 | // search the old states for _NET_WM_STATE_SKIP_PAGER and append it | ||
640 | // to the current state, so it wont get deleted by us. | ||
641 | StateVec client_state(state); | 637 | StateVec client_state(state); |
642 | Atom ret_type; | 638 | Atom ret_type; |
643 | int fmt; | 639 | int fmt; |
644 | unsigned long nitems, bytes_after; | 640 | unsigned long nitems, bytes_after; |
645 | unsigned char *data = 0; | 641 | unsigned char *data = 0; |
646 | 642 | ||
643 | // set client-specific state | ||
644 | if ((*it)->isStateModal()) | ||
645 | client_state.push_back(m_net_wm_state_modal); | ||
646 | if (Fluxbox::instance()->attentionHandler().isDemandingAttention(**it)) | ||
647 | client_state.push_back(m_net_wm_state_demands_attention); | ||
648 | |||
649 | // search the old states for _NET_WM_STATE_SKIP_PAGER and append it | ||
650 | // to the current state, so it wont get deleted by us. | ||
647 | (*it)->property(m_net_wm_state, 0, 0x7fffffff, False, XA_ATOM, | 651 | (*it)->property(m_net_wm_state, 0, 0x7fffffff, False, XA_ATOM, |
648 | &ret_type, &fmt, &nitems, &bytes_after, | 652 | &ret_type, &fmt, &nitems, &bytes_after, |
649 | &data); | 653 | &data); |