summaryrefslogtreecommitdiff
path: root/src/Window.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Window.cc')
-rw-r--r--src/Window.cc29
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
1093void FluxboxWindow::updateTitleFromClient(WinClient &client) {
1094 if (&client == m_client) {
1095 frame().setFocusTitle(client.title());
1096 titleSig().notify();
1097 }
1098}
1099
1100void FluxboxWindow::updateMWMHintsFromClient(WinClient &client) { 1094void 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
2914void 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
2921void FluxboxWindow::applyDecorations(bool initial) { 2929void 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
4048int FluxboxWindow::getDecoMaskFromString(const string &str_label) { 4057int FluxboxWindow::getDecoMaskFromString(const string &str_label) {