aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMark Tiefenbruck <mark@fluxbox.org>2008-09-18 18:15:15 (GMT)
committerMark Tiefenbruck <mark@fluxbox.org>2008-09-18 18:15:15 (GMT)
commitea9f80399b4b0468b1c91acda3b5087b042e1673 (patch)
treee65767b7077ad0f548ab78487b675b713b0e3a31 /src
parent8e97963e4211963f960c52c8a8f4bf5cd135ad2f (diff)
downloadfluxbox-ea9f80399b4b0468b1c91acda3b5087b042e1673.zip
fluxbox-ea9f80399b4b0468b1c91acda3b5087b042e1673.tar.bz2
fix crash when trying to set the title on a window that's already closed
Diffstat (limited to 'src')
-rw-r--r--src/CurrentWindowCmd.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/CurrentWindowCmd.cc b/src/CurrentWindowCmd.cc
index 59b0186..dfb5c19 100644
--- a/src/CurrentWindowCmd.cc
+++ b/src/CurrentWindowCmd.cc
@@ -467,13 +467,17 @@ void SetLayerCmd::real_execute() {
467} 467}
468 468
469namespace { 469namespace {
470class SetTitleDialog: public TextDialog { 470class SetTitleDialog: public TextDialog, public FbTk::Observer {
471public: 471public:
472 SetTitleDialog(FluxboxWindow &win, const string &title): 472 SetTitleDialog(FluxboxWindow &win, const string &title):
473 TextDialog(win.screen(), title), window(win) { 473 TextDialog(win.screen(), title), window(win) {
474 win.dieSig().attach(this);
474 setText(win.title()); 475 setText(win.title());
475 } 476 }
476 477
478 // only attached signal is window destruction
479 void update(FbTk::Subject *subj) { delete this; }
480
477private: 481private:
478 void exec(const std::string &text) { 482 void exec(const std::string &text) {
479 window.winClient().setTitle(text); 483 window.winClient().setTitle(text);