all repos — fluxbox @ b8c1d3e5ee0674bfe33d6af78cb6d3ff5cf1d85e

custom fork of the fluxbox windowmanager

title change signal
fluxgen fluxgen
commit

b8c1d3e5ee0674bfe33d6af78cb6d3ff5cf1d85e

parent

d9e485077fed2aad909cd17970969bc778d6f42c

2 files changed, 11 insertions(+), 23 deletions(-)

jump to
M src/Window.ccsrc/Window.cc

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Window.cc,v 1.247 2003/12/04 21:31:02 fluxgen Exp $ +// $Id: Window.cc,v 1.248 2003/12/07 17:47:42 fluxgen Exp $ #include "Window.hh"

@@ -257,6 +257,7 @@ m_layersig(*this),

m_workspacesig(*this), m_diesig(*this), m_focussig(*this), + m_titlesig(*this), moving(false), resizing(false), shaded(false), iconic(false), focused(false), stuck(false), m_managed(false),

@@ -1057,7 +1058,7 @@ if (changed)

setupWindow(); } -void FluxboxWindow::updateBlackboxHintsFromClient(WinClient &client) { +void FluxboxWindow::updateBlackboxHintsFromClient(const WinClient &client) { const FluxboxWindow::BlackboxHints *hint = client.getBlackboxHint(); if (!hint) return;

@@ -1225,7 +1226,7 @@ void FluxboxWindow::iconify() {

if (isIconic()) // no need to iconify if we're already return; - m_windowmenu.hide(); + menu().hide(); iconic = true; setState(IconicState);

@@ -2133,20 +2134,11 @@ hintSig().notify(); // notify listeners

break; case XA_WM_ICON_NAME: - client.updateIconTitle(); - updateIconNameFromClient(client); - updateIcon(); - break; - + // update icon title and then do normal XA_WM_NAME stuff + client.updateIconTitle(); case XA_WM_NAME: updateTitleFromClient(client); - - if (! iconic) - screen().getWorkspace(m_workspace_number)->update(); - else - updateIcon(); - - + m_titlesig.notify(); break; case XA_WM_NORMAL_HINTS: {

@@ -3026,10 +3018,6 @@ }

} m_attaching_tab = 0; -} - -void FluxboxWindow::updateIcon() { - //!! TODO: notify listeners about icon name change } void FluxboxWindow::restore(WinClient *client, bool remap) {
M src/Window.hhsrc/Window.hh

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Window.hh,v 1.100 2003/10/28 02:17:03 rathnor Exp $ +// $Id: Window.hh,v 1.101 2003/12/07 17:47:42 fluxgen Exp $ #ifndef WINDOW_HH #define WINDOW_HH

@@ -344,6 +344,7 @@ const FbTk::Subject &workspaceSig() const { return m_workspacesig; }

FbTk::Subject &dieSig() { return m_diesig; } const FbTk::Subject &dieSig() const { return m_diesig; } FbTk::Subject &focusSig() { return m_focussig; } + FbTk::Subject &titleSig() { return m_titlesig; } /** @} */ // end group signals const timeval &lastFocusTime() const { return m_last_focus_time;}

@@ -375,7 +376,6 @@ void startMoving(Window win);

void stopMoving(); void startResizing(Window win, int x, int y); void stopResizing(Window win=0); - void updateIcon(); /// try to attach current attaching client to a window at pos x, y void attachTo(int x, int y);

@@ -385,7 +385,7 @@ void updateTitleFromClient(WinClient &client);

/// gets icon name from client window void updateIconNameFromClient(WinClient &client); void updateMWMHintsFromClient(WinClient &client); - void updateBlackboxHintsFromClient(WinClient &client); + void updateBlackboxHintsFromClient(const WinClient &client); void saveBlackboxAttribs(); void setNetWMAttributes(); void associateClientWindow(bool use_attrs = false, int x = 0, int y = 0, unsigned int width = 1, unsigned int height = 1);

@@ -404,7 +404,7 @@ void moveResizeClient(WinClient &client, int x, int y, unsigned int width, unsigned int height);

/// sends configurenotify to all clients void sendConfigureNotify(bool send_to_netizens = true); // state and hint signals - WinSubject m_hintsig, m_statesig, m_layersig, m_workspacesig, m_diesig, m_focussig; + WinSubject m_hintsig, m_statesig, m_layersig, m_workspacesig, m_diesig, m_focussig, m_titlesig; // Window states bool moving, resizing, shaded, iconic,