diff options
Diffstat (limited to 'src/IconbarTool.cc')
-rw-r--r-- | src/IconbarTool.cc | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/IconbarTool.cc b/src/IconbarTool.cc index 82fdf26..a0e0beb 100644 --- a/src/IconbarTool.cc +++ b/src/IconbarTool.cc | |||
@@ -596,6 +596,14 @@ void IconbarTool::update(FbTk::Subject *subj) { | |||
596 | 596 | ||
597 | return; | 597 | return; |
598 | 598 | ||
599 | } else if (subj == &(winsubj->win().attentionSig())) { | ||
600 | // render with titlebar focus, on attention | ||
601 | IconButton *button = findButton(winsubj->win()); | ||
602 | if (button) { | ||
603 | renderButton(*button, true, | ||
604 | winsubj->win().frame().focused() ? 1 : 0); | ||
605 | } | ||
606 | return; | ||
599 | } else { | 607 | } else { |
600 | // signal not handled | 608 | // signal not handled |
601 | return; | 609 | return; |
@@ -659,14 +667,14 @@ IconButton *IconbarTool::findButton(FluxboxWindow &win) { | |||
659 | 667 | ||
660 | return 0; | 668 | return 0; |
661 | } | 669 | } |
662 | 670 | /* | |
663 | void IconbarTool::renderWindow(FluxboxWindow &win) { | 671 | void IconbarTool::renderWindow(FluxboxWindow &win) { |
664 | IconButton *button = findButton(win); | 672 | IconButton *button = findButton(win); |
665 | if (button == 0) | 673 | if (button == 0) |
666 | return; | 674 | return; |
667 | renderButton(*button); | 675 | renderButton(*button); |
668 | } | 676 | } |
669 | 677 | */ | |
670 | void IconbarTool::updateSizing() { | 678 | void IconbarTool::updateSizing() { |
671 | m_icon_container.setBorderWidth(m_theme.border().width()); | 679 | m_icon_container.setBorderWidth(m_theme.border().width()); |
672 | 680 | ||
@@ -771,7 +779,8 @@ void IconbarTool::renderTheme() { | |||
771 | } | 779 | } |
772 | } | 780 | } |
773 | 781 | ||
774 | void IconbarTool::renderButton(IconButton &button, bool clear) { | 782 | void IconbarTool::renderButton(IconButton &button, bool clear, |
783 | int focusOption) { | ||
775 | 784 | ||
776 | button.setPixmap(*m_rc_use_pixmap); | 785 | button.setPixmap(*m_rc_use_pixmap); |
777 | button.setAlpha(m_alpha); | 786 | button.setAlpha(m_alpha); |
@@ -788,8 +797,13 @@ void IconbarTool::renderButton(IconButton &button, bool clear) { | |||
788 | // button.height() != m_icon_container.back()->height()); | 797 | // button.height() != m_icon_container.back()->height()); |
789 | } | 798 | } |
790 | 799 | ||
791 | if (button.win().isFocused()) { // focused texture | 800 | if (focusOption == 1 || |
792 | m_icon_container.setSelected(m_icon_container.find(&button)); | 801 | (focusOption == -1 && |
802 | button.win().isFocused())) { | ||
803 | |||
804 | // focused texture | ||
805 | if (button.win().isFocused()) | ||
806 | m_icon_container.setSelected(m_icon_container.find(&button)); | ||
793 | 807 | ||
794 | button.setGC(m_theme.focusedText().textGC()); | 808 | button.setGC(m_theme.focusedText().textGC()); |
795 | button.setFont(m_theme.focusedText().font()); | 809 | button.setFont(m_theme.focusedText().font()); |
@@ -891,7 +905,7 @@ void IconbarTool::addWindow(FluxboxWindow &win) { | |||
891 | win.dieSig().attach(this); | 905 | win.dieSig().attach(this); |
892 | win.workspaceSig().attach(this); | 906 | win.workspaceSig().attach(this); |
893 | win.stateSig().attach(this); | 907 | win.stateSig().attach(this); |
894 | 908 | win.attentionSig().attach(this); | |
895 | } | 909 | } |
896 | 910 | ||
897 | void IconbarTool::updateIcons() { | 911 | void IconbarTool::updateIcons() { |