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.
This commit is contained in:
mathias 2005-06-18 13:47:36 +00:00
parent a8d7752804
commit 019da77c56
2 changed files with 14 additions and 16 deletions

View file

@ -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:

View file

@ -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("<<remap<<")"<<endl;
#endif // DEBUG
if (isShaded()) {
if (!isIconic())
setState(NormalState, false);
if (frame().isShaded())
frame().shade();
}
while (!clientList().empty()) {
restore(clientList().back(), remap);
// deleting winClient removes it from the clientList