diff options
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/src/Window.cc b/src/Window.cc index ebc5923..6c7cf11 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -533,7 +533,8 @@ void FluxboxWindow::init() { | |||
533 | if (iconic) { | 533 | if (iconic) { |
534 | iconic = false; | 534 | iconic = false; |
535 | iconify(); | 535 | iconify(); |
536 | } | 536 | } else |
537 | deiconify(false); | ||
537 | 538 | ||
538 | sendConfigureNotify(); | 539 | sendConfigureNotify(); |
539 | // no focus default | 540 | // no focus default |
@@ -2336,28 +2337,11 @@ void FluxboxWindow::mapRequestEvent(XMapRequestEvent &re) { | |||
2336 | return; | 2337 | return; |
2337 | } | 2338 | } |
2338 | 2339 | ||
2339 | // rest of current state checking is in initialisation | 2340 | // Note: this function never gets called from WithdrawnState |
2340 | if (m_current_state == WithdrawnState) | 2341 | // initial state is handled in restoreAttributes() and init() |
2341 | withdraw(true); | 2342 | setCurrentClient(*client, false); // focus handled on MapNotify |
2342 | else { | 2343 | deiconify(false); |
2343 | |||
2344 | // if this window was destroyed while autogrouping | ||
2345 | bool destroyed = false; | ||
2346 | |||
2347 | // check WM_CLASS only when we changed state to NormalState from | ||
2348 | // WithdrawnState (ICCC 4.1.2.5) | ||
2349 | client->updateWMClassHint(); | ||
2350 | 2344 | ||
2351 | Workspace *wsp = screen().getWorkspace(m_workspace_number); | ||
2352 | if (wsp != 0 && isGroupable()) | ||
2353 | destroyed = wsp->checkGrouping(*this); | ||
2354 | |||
2355 | // if we weren't grouped with another window we deiconify ourself | ||
2356 | // make sure iconified windows stay that way on fluxbox start | ||
2357 | if (!destroyed && !(iconic && Fluxbox::instance()->isStartup())) | ||
2358 | deiconify(false); | ||
2359 | |||
2360 | } | ||
2361 | } | 2345 | } |
2362 | 2346 | ||
2363 | 2347 | ||