diff options
Diffstat (limited to 'src/FbWinFrame.cc')
-rw-r--r-- | src/FbWinFrame.cc | 53 |
1 files changed, 6 insertions, 47 deletions
diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc index 99dd93d..68adc0f 100644 --- a/src/FbWinFrame.cc +++ b/src/FbWinFrame.cc | |||
@@ -525,7 +525,7 @@ void FbWinFrame::setFocus(bool newvalue) { | |||
525 | if (newvalue) // focused | 525 | if (newvalue) // focused |
526 | applyFocusLabel(*m_current_label); | 526 | applyFocusLabel(*m_current_label); |
527 | else // unfocused | 527 | else // unfocused |
528 | applyActiveLabel(*m_current_label); | 528 | applyUnfocusLabel(*m_current_label); |
529 | } | 529 | } |
530 | 530 | ||
531 | applyAll(); | 531 | applyAll(); |
@@ -711,7 +711,7 @@ void FbWinFrame::setLabelButtonFocus(FbTk::TextButton &btn) { | |||
711 | if (m_focused) | 711 | if (m_focused) |
712 | applyFocusLabel(*m_current_label); | 712 | applyFocusLabel(*m_current_label); |
713 | else | 713 | else |
714 | applyActiveLabel(*m_current_label); | 714 | applyUnfocusLabel(*m_current_label); |
715 | } | 715 | } |
716 | 716 | ||
717 | void FbWinFrame::setLabelButtonFocus(FbTk::TextButton &btn, bool value) { | 717 | void FbWinFrame::setLabelButtonFocus(FbTk::TextButton &btn, bool value) { |
@@ -1320,10 +1320,6 @@ void FbWinFrame::renderTabContainer() { | |||
1320 | m_labelbutton_unfocused_pm, | 1320 | m_labelbutton_unfocused_pm, |
1321 | m_tab_container.width(), m_tab_container.height(), m_tab_container.orientation()); | 1321 | m_tab_container.width(), m_tab_container.height(), m_tab_container.orientation()); |
1322 | 1322 | ||
1323 | render(m_theme.labelActiveTexture(), m_labelbutton_active_color, | ||
1324 | m_labelbutton_active_pm, | ||
1325 | m_tab_container.width(), m_tab_container.height(), m_tab_container.orientation()); | ||
1326 | |||
1327 | renderButtons(); | 1323 | renderButtons(); |
1328 | 1324 | ||
1329 | } | 1325 | } |
@@ -1473,7 +1469,7 @@ void FbWinFrame::init() { | |||
1473 | m_title_focused_pm = m_title_unfocused_pm = 0; | 1469 | m_title_focused_pm = m_title_unfocused_pm = 0; |
1474 | m_label_focused_pm = m_label_unfocused_pm = 0; | 1470 | m_label_focused_pm = m_label_unfocused_pm = 0; |
1475 | m_tabcontainer_focused_pm = m_tabcontainer_unfocused_pm = 0; | 1471 | m_tabcontainer_focused_pm = m_tabcontainer_unfocused_pm = 0; |
1476 | m_labelbutton_focused_pm = m_labelbutton_unfocused_pm = m_labelbutton_active_pm = 0; | 1472 | m_labelbutton_focused_pm = m_labelbutton_unfocused_pm = 0; |
1477 | m_handle_focused_pm = m_handle_unfocused_pm = 0; | 1473 | m_handle_focused_pm = m_handle_unfocused_pm = 0; |
1478 | m_button_pm = m_button_unfocused_pm = m_button_pressed_pm = 0; | 1474 | m_button_pm = m_button_unfocused_pm = m_button_pressed_pm = 0; |
1479 | m_grip_unfocused_pm = m_grip_focused_pm = 0; | 1475 | m_grip_unfocused_pm = m_grip_focused_pm = 0; |
@@ -1597,12 +1593,9 @@ void FbWinFrame::applyTabContainer() { | |||
1597 | Container::ItemList::iterator btn_it_end = m_tab_container.end(); | 1593 | Container::ItemList::iterator btn_it_end = m_tab_container.end(); |
1598 | for (; btn_it != btn_it_end; ++btn_it) { | 1594 | for (; btn_it != btn_it_end; ++btn_it) { |
1599 | FbTk::TextButton *btn = static_cast<FbTk::TextButton *>(*btn_it); | 1595 | FbTk::TextButton *btn = static_cast<FbTk::TextButton *>(*btn_it); |
1600 | if (btn == m_current_label) { | 1596 | if (btn == m_current_label && m_focused) |
1601 | if (m_focused) | 1597 | applyFocusLabel(*btn); |
1602 | applyFocusLabel(*btn); | 1598 | else |
1603 | else | ||
1604 | applyActiveLabel(*btn); | ||
1605 | } else | ||
1606 | applyUnfocusLabel(*btn); | 1599 | applyUnfocusLabel(*btn); |
1607 | } | 1600 | } |
1608 | } | 1601 | } |
@@ -1674,19 +1667,6 @@ void FbWinFrame::applyFocusLabel(FbTk::TextButton &button) { | |||
1674 | 1667 | ||
1675 | } | 1668 | } |
1676 | 1669 | ||
1677 | void FbWinFrame::applyActiveLabel(FbTk::TextButton &button) { | ||
1678 | |||
1679 | button.setGC(theme().labelTextActiveGC()); | ||
1680 | button.setJustify(theme().justify()); | ||
1681 | button.setAlpha(getAlpha(m_focused)); | ||
1682 | |||
1683 | if (m_labelbutton_active_pm != 0) { | ||
1684 | button.setBackgroundPixmap(m_labelbutton_active_pm); | ||
1685 | } else | ||
1686 | button.setBackgroundColor(m_labelbutton_active_color); | ||
1687 | |||
1688 | } | ||
1689 | |||
1690 | void FbWinFrame::applyUnfocusLabel(FbTk::TextButton &button) { | 1670 | void FbWinFrame::applyUnfocusLabel(FbTk::TextButton &button) { |
1691 | 1671 | ||
1692 | button.setGC(theme().labelTextUnfocusGC()); | 1672 | button.setGC(theme().labelTextUnfocusGC()); |
@@ -1700,27 +1680,6 @@ void FbWinFrame::applyUnfocusLabel(FbTk::TextButton &button) { | |||
1700 | 1680 | ||
1701 | } | 1681 | } |
1702 | 1682 | ||
1703 | namespace { | ||
1704 | class IgnoreEvent { | ||
1705 | public: | ||
1706 | typedef void result_type; | ||
1707 | typedef Window argument_type; | ||
1708 | explicit IgnoreEvent(long eventmask): | ||
1709 | m_display(FbTk::App::instance()->display()), | ||
1710 | m_event_mask(eventmask) { | ||
1711 | } | ||
1712 | |||
1713 | void operator()(Window win) const { | ||
1714 | static XEvent event; | ||
1715 | while (XCheckWindowEvent(m_display, win, m_event_mask, &event)) | ||
1716 | continue; | ||
1717 | } | ||
1718 | private: | ||
1719 | Display *m_display; | ||
1720 | long m_event_mask; | ||
1721 | }; | ||
1722 | } | ||
1723 | |||
1724 | // this function translates its arguments according to win_gravity | 1683 | // this function translates its arguments according to win_gravity |
1725 | // if win_gravity is negative, it does an inverse translation | 1684 | // if win_gravity is negative, it does an inverse translation |
1726 | // This function should be used when a window is mapped/unmapped/pos configured | 1685 | // This function should be used when a window is mapped/unmapped/pos configured |