From 019da77c56f951793dfdcb4f04a2fe827f26a835 Mon Sep 17 00:00:00 2001 From: mathias Date: Sat, 18 Jun 2005 13:47:36 +0000 Subject: Fixes #1116965, shadwd windows on restart: shaded icons behaved badly on restart, they went into a real stupid state: somehow shaded, but at the same time iconic, so you werent able to unshade, resize them properly. i fixed that by applying NormalState on shutdowntime (see FluxboxWindow::restore(), unshading a shaded frame to get good window dimensions and on init() i mark the window initialized and connect it to Fluxbox::attachSignals() a bit later. --- ChangeLog | 2 ++ src/Window.cc | 28 ++++++++++++---------------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 62d3d7e..34907bb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,8 @@ (Format: Year/Month/Day) Changes for 0.9.14: *05/06/18: + * Fixes #1116965, shadwd windows on restart (Mathias) + Window.cc * little Fix for font effects (Mathias) FbTk/ThemeItems.cc *05/06/15: diff --git a/src/Window.cc b/src/Window.cc index 2c7103b..59739a7 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -504,19 +504,8 @@ void FluxboxWindow::init() { } associateClientWindow(true, wattrib.x, wattrib.y, wattrib.width, wattrib.height); - - - Fluxbox::instance()->attachSignals(*this); - - // this window is managed, we are now allowed to modify actual state - m_initialized = true; - - - applyDecorations(true); - grabButtons(); - restoreAttributes(); if (m_workspace_number < 0 || m_workspace_number >= screen().getCount()) @@ -548,8 +537,6 @@ void FluxboxWindow::init() { if (wattrib.height <= 0) wattrib.height = 1; - - // if we're a transient then we should be on the same layer as our parent if (m_client->isTransient() && m_client->transientFor()->fbwindow() && @@ -570,12 +557,9 @@ void FluxboxWindow::init() { if (!place_window) moveResize(frame().x(), frame().y(), frame().width(), frame().height()); - - screen().getWorkspace(m_workspace_number)->addWindow(*this, place_window); setWorkspace(m_workspace_number); - if (shaded) { // start shaded shaded = false; shade(); @@ -594,6 +578,10 @@ void FluxboxWindow::init() { stick(); deiconify(); //we're omnipresent and visible } + + Fluxbox::instance()->attachSignals(*this); + // this window is managed, we are now allowed to modify actual state + m_initialized = true; sendConfigureNotify(); // no focus default @@ -3545,6 +3533,14 @@ void FluxboxWindow::restore(bool remap) { #ifdef DEBUG cerr<<"restore("<