diff --git a/ChangeLog b/ChangeLog index 998ead4d..a8882699 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,5 @@ (Format: Year/Month/Day) -Changes for 1.1.2: +Changes for 1.1.2 *08/09/18: * Changed workspace count signal in BScreen to use the new signal system. (Henrik) @@ -7,6 +7,9 @@ Changes for 1.1.2: * Added new Signal/Slot system to FbTk (Henrik) This is suppose to replace the obsolete Subject/Observer classes. FbTk/Signal.hh, FbTk/Slot.hh, FbTk/MemFun.hh, tests/testSignals.cc + * Fix crash when using SetTitleDialog on a window that's been closed (Mark) + CurrentWindowCmd.cc +----------------------------- Changes for 1.1.1 *08/09/14: * Fixed a minor pixmap resource leak (Henrik) diff --git a/src/CurrentWindowCmd.cc b/src/CurrentWindowCmd.cc index 59b01863..dfb5c198 100644 --- a/src/CurrentWindowCmd.cc +++ b/src/CurrentWindowCmd.cc @@ -467,13 +467,17 @@ void SetLayerCmd::real_execute() { } namespace { -class SetTitleDialog: public TextDialog { +class SetTitleDialog: public TextDialog, public FbTk::Observer { public: SetTitleDialog(FluxboxWindow &win, const string &title): TextDialog(win.screen(), title), window(win) { + win.dieSig().attach(this); setText(win.title()); } + // only attached signal is window destruction + void update(FbTk::Subject *subj) { delete this; } + private: void exec(const std::string &text) { window.winClient().setTitle(text);