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:
parent
a8d7752804
commit
019da77c56
2 changed files with 14 additions and 16 deletions
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue