aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Window.cc28
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