diff options
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/src/Window.cc b/src/Window.cc index d99d1c1..fed465e 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -628,7 +628,8 @@ void FluxboxWindow::attachClient(WinClient &client, int x, int y) { | |||
628 | if (x >= 0 && button_insert_pos) | 628 | if (x >= 0 && button_insert_pos) |
629 | frame().moveLabelButtonLeftOf(*m_labelbuttons[*client_it], *button_insert_pos); | 629 | frame().moveLabelButtonLeftOf(*m_labelbuttons[*client_it], *button_insert_pos); |
630 | 630 | ||
631 | (*client_it)->saveBlackboxAttribs(m_blackbox_attrib); | 631 | (*client_it)->saveBlackboxAttribs(m_blackbox_attrib, |
632 | PropBlackboxAttributesElements); | ||
632 | } | 633 | } |
633 | 634 | ||
634 | // add client and move over all attached clients | 635 | // add client and move over all attached clients |
@@ -657,7 +658,8 @@ void FluxboxWindow::attachClient(WinClient &client, int x, int y) { | |||
657 | m_focused = true; | 658 | m_focused = true; |
658 | focused_win = (focus_new || is_startup) ? &client : m_client; | 659 | focused_win = (focus_new || is_startup) ? &client : m_client; |
659 | 660 | ||
660 | client.saveBlackboxAttribs(m_blackbox_attrib); | 661 | client.saveBlackboxAttribs(m_blackbox_attrib, |
662 | PropBlackboxAttributesElements); | ||
661 | m_clientlist.push_back(&client); | 663 | m_clientlist.push_back(&client); |
662 | } | 664 | } |
663 | 665 | ||
@@ -1089,14 +1091,6 @@ void FluxboxWindow::reconfigure() { | |||
1089 | 1091 | ||
1090 | } | 1092 | } |
1091 | 1093 | ||
1092 | /// update current client title and title in our frame | ||
1093 | void FluxboxWindow::updateTitleFromClient(WinClient &client) { | ||
1094 | if (&client == m_client) { | ||
1095 | frame().setFocusTitle(client.title()); | ||
1096 | titleSig().notify(); | ||
1097 | } | ||
1098 | } | ||
1099 | |||
1100 | void FluxboxWindow::updateMWMHintsFromClient(WinClient &client) { | 1094 | void FluxboxWindow::updateMWMHintsFromClient(WinClient &client) { |
1101 | const WinClient::MwmHints *hint = client.getMwmHint(); | 1095 | const WinClient::MwmHints *hint = client.getMwmHint(); |
1102 | 1096 | ||
@@ -2917,6 +2911,20 @@ void FluxboxWindow::leaveNotifyEvent(XCrossingEvent &ev) { | |||
2917 | //installColormap(false); | 2911 | //installColormap(false); |
2918 | } | 2912 | } |
2919 | 2913 | ||
2914 | void FluxboxWindow::update(FbTk::Subject *subj) { | ||
2915 | if (subj && typeid(*subj) == typeid(Focusable::FocusSubject)) { | ||
2916 | Focusable::FocusSubject &fsubj = | ||
2917 | static_cast<Focusable::FocusSubject &>(*subj); | ||
2918 | Focusable &win = fsubj.win(); | ||
2919 | |||
2920 | if (&fsubj == &win.titleSig() && &win == m_client) { | ||
2921 | frame().setFocusTitle(win.title()); | ||
2922 | titleSig().notify(); | ||
2923 | } | ||
2924 | |||
2925 | } | ||
2926 | } | ||
2927 | |||
2920 | // commit current decoration values to actual displayed things | 2928 | // commit current decoration values to actual displayed things |
2921 | void FluxboxWindow::applyDecorations(bool initial) { | 2929 | void FluxboxWindow::applyDecorations(bool initial) { |
2922 | frame().clientArea().setBorderWidth(0); // client area bordered by other things | 2930 | frame().clientArea().setBorderWidth(0); // client area bordered by other things |
@@ -4043,6 +4051,7 @@ void FluxboxWindow::associateClient(WinClient &client) { | |||
4043 | evm.add(*this, btn->window()); // we take care of button events for this | 4051 | evm.add(*this, btn->window()); // we take care of button events for this |
4044 | evm.add(*this, client.window()); | 4052 | evm.add(*this, client.window()); |
4045 | client.setFluxboxWindow(this); | 4053 | client.setFluxboxWindow(this); |
4054 | client.titleSig().attach(this); | ||
4046 | } | 4055 | } |
4047 | 4056 | ||
4048 | int FluxboxWindow::getDecoMaskFromString(const string &str_label) { | 4057 | int FluxboxWindow::getDecoMaskFromString(const string &str_label) { |