diff options
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/Window.cc b/src/Window.cc index 6f82f90..d84a06d 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Window.cc,v 1.214 2003/07/28 15:46:00 rathnor Exp $ | 25 | // $Id: Window.cc,v 1.215 2003/07/28 16:29:25 rathnor Exp $ |
26 | 26 | ||
27 | #include "Window.hh" | 27 | #include "Window.hh" |
28 | 28 | ||
@@ -425,8 +425,6 @@ void FluxboxWindow::init() { | |||
425 | else | 425 | else |
426 | getMWMHints(); | 426 | getMWMHints(); |
427 | 427 | ||
428 | functions.close = m_client->isClosable(); | ||
429 | |||
430 | //!! | 428 | //!! |
431 | // fetch client size and placement | 429 | // fetch client size and placement |
432 | XWindowAttributes wattrib; | 430 | XWindowAttributes wattrib; |
@@ -1035,10 +1033,20 @@ void FluxboxWindow::getMWMHints() { | |||
1035 | functions.close = true; | 1033 | functions.close = true; |
1036 | } | 1034 | } |
1037 | } | 1035 | } |
1038 | |||
1039 | |||
1040 | } | 1036 | } |
1041 | 1037 | ||
1038 | void FluxboxWindow::updateFunctions() { | ||
1039 | if (!m_client) | ||
1040 | return; | ||
1041 | bool changed = false; | ||
1042 | if (m_client->isClosable() != functions.close) { | ||
1043 | functions.close = m_client->isClosable(); | ||
1044 | changed = true; | ||
1045 | } | ||
1046 | |||
1047 | if (changed) | ||
1048 | setupWindow(); | ||
1049 | } | ||
1042 | 1050 | ||
1043 | void FluxboxWindow::getBlackboxHints() { | 1051 | void FluxboxWindow::getBlackboxHints() { |
1044 | const FluxboxWindow::BlackboxHints *hint = m_client->getBlackboxHint(); | 1052 | const FluxboxWindow::BlackboxHints *hint = m_client->getBlackboxHint(); |
@@ -3461,7 +3469,7 @@ void FluxboxWindow::setupWindow() { | |||
3461 | newbutton->setOnClick(maximize_horiz_cmd, 3); | 3469 | newbutton->setOnClick(maximize_horiz_cmd, 3); |
3462 | newbutton->setOnClick(maximize_vert_cmd, 2); | 3470 | newbutton->setOnClick(maximize_vert_cmd, 2); |
3463 | 3471 | ||
3464 | } else if (isClosable() && (*dir)[i] == Fluxbox::CLOSE) { | 3472 | } else if (m_client->isClosable() && (*dir)[i] == Fluxbox::CLOSE) { |
3465 | newbutton = new WinButton(*this, winbutton_theme, | 3473 | newbutton = new WinButton(*this, winbutton_theme, |
3466 | WinButton::CLOSE, | 3474 | WinButton::CLOSE, |
3467 | frame.titlebar(), | 3475 | frame.titlebar(), |