aboutsummaryrefslogtreecommitdiff
path: root/src/Ewmh.cc
diff options
context:
space:
mode:
authormarkt <markt>2007-07-01 17:59:57 (GMT)
committermarkt <markt>2007-07-01 17:59:57 (GMT)
commit7783a8c84e57c4a58d270b9722800a031f50ed62 (patch)
tree2c6f8f4ff4aede78907466a6b15bfd25fdd3600c /src/Ewmh.cc
parent61b757d872778131aa773aadc9c59fdfb3fe2238 (diff)
downloadfluxbox-7783a8c84e57c4a58d270b9722800a031f50ed62.zip
fluxbox-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.cc12
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);