diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Window.cc | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/Window.cc b/src/Window.cc index 59739a7..2c7103b 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -504,8 +504,19 @@ void FluxboxWindow::init() { | |||
504 | } | 504 | } |
505 | 505 | ||
506 | associateClientWindow(true, wattrib.x, wattrib.y, wattrib.width, wattrib.height); | 506 | associateClientWindow(true, wattrib.x, wattrib.y, wattrib.width, wattrib.height); |
507 | |||
508 | |||
509 | Fluxbox::instance()->attachSignals(*this); | ||
510 | |||
511 | // this window is managed, we are now allowed to modify actual state | ||
512 | m_initialized = true; | ||
513 | |||
514 | |||
515 | |||
507 | applyDecorations(true); | 516 | applyDecorations(true); |
517 | |||
508 | grabButtons(); | 518 | grabButtons(); |
519 | |||
509 | restoreAttributes(); | 520 | restoreAttributes(); |
510 | 521 | ||
511 | if (m_workspace_number < 0 || m_workspace_number >= screen().getCount()) | 522 | if (m_workspace_number < 0 || m_workspace_number >= screen().getCount()) |
@@ -537,6 +548,8 @@ void FluxboxWindow::init() { | |||
537 | if (wattrib.height <= 0) | 548 | if (wattrib.height <= 0) |
538 | wattrib.height = 1; | 549 | wattrib.height = 1; |
539 | 550 | ||
551 | |||
552 | |||
540 | // if we're a transient then we should be on the same layer as our parent | 553 | // if we're a transient then we should be on the same layer as our parent |
541 | if (m_client->isTransient() && | 554 | if (m_client->isTransient() && |
542 | m_client->transientFor()->fbwindow() && | 555 | m_client->transientFor()->fbwindow() && |
@@ -557,9 +570,12 @@ void FluxboxWindow::init() { | |||
557 | if (!place_window) | 570 | if (!place_window) |
558 | moveResize(frame().x(), frame().y(), frame().width(), frame().height()); | 571 | moveResize(frame().x(), frame().y(), frame().width(), frame().height()); |
559 | 572 | ||
573 | |||
574 | |||
560 | screen().getWorkspace(m_workspace_number)->addWindow(*this, place_window); | 575 | screen().getWorkspace(m_workspace_number)->addWindow(*this, place_window); |
561 | setWorkspace(m_workspace_number); | 576 | setWorkspace(m_workspace_number); |
562 | 577 | ||
578 | |||
563 | if (shaded) { // start shaded | 579 | if (shaded) { // start shaded |
564 | shaded = false; | 580 | shaded = false; |
565 | shade(); | 581 | shade(); |
@@ -578,10 +594,6 @@ void FluxboxWindow::init() { | |||
578 | stick(); | 594 | stick(); |
579 | deiconify(); //we're omnipresent and visible | 595 | deiconify(); //we're omnipresent and visible |
580 | } | 596 | } |
581 | |||
582 | Fluxbox::instance()->attachSignals(*this); | ||
583 | // this window is managed, we are now allowed to modify actual state | ||
584 | m_initialized = true; | ||
585 | 597 | ||
586 | sendConfigureNotify(); | 598 | sendConfigureNotify(); |
587 | // no focus default | 599 | // no focus default |
@@ -3533,14 +3545,6 @@ void FluxboxWindow::restore(bool remap) { | |||
3533 | #ifdef DEBUG | 3545 | #ifdef DEBUG |
3534 | cerr<<"restore("<<remap<<")"<<endl; | 3546 | cerr<<"restore("<<remap<<")"<<endl; |
3535 | #endif // DEBUG | 3547 | #endif // DEBUG |
3536 | |||
3537 | if (isShaded()) { | ||
3538 | if (!isIconic()) | ||
3539 | setState(NormalState, false); | ||
3540 | if (frame().isShaded()) | ||
3541 | frame().shade(); | ||
3542 | } | ||
3543 | |||
3544 | while (!clientList().empty()) { | 3548 | while (!clientList().empty()) { |
3545 | restore(clientList().back(), remap); | 3549 | restore(clientList().back(), remap); |
3546 | // deleting winClient removes it from the clientList | 3550 | // deleting winClient removes it from the clientList |