Changeset View
Changeset View
Standalone View
Standalone View
manage.cpp
Show First 20 Lines • Show All 274 Lines • ▼ Show 20 Line(s) | 274 | if (isMapped || session) { | |||
---|---|---|---|---|---|
275 | area = workspace()->clientArea(FullArea, geom.center(), desktop()); | 275 | area = workspace()->clientArea(FullArea, geom.center(), desktop()); | ||
276 | checkOffscreenPosition(&geom, area); | 276 | checkOffscreenPosition(&geom, area); | ||
277 | } else { | 277 | } else { | ||
278 | int screen = asn_data.xinerama() == -1 ? screens()->current() : asn_data.xinerama(); | 278 | int screen = asn_data.xinerama() == -1 ? screens()->current() : asn_data.xinerama(); | ||
279 | screen = rules()->checkScreen(screen, !isMapped); | 279 | screen = rules()->checkScreen(screen, !isMapped); | ||
280 | area = workspace()->clientArea(PlacementArea, screens()->geometry(screen).center(), desktop()); | 280 | area = workspace()->clientArea(PlacementArea, screens()->geometry(screen).center(), desktop()); | ||
281 | } | 281 | } | ||
282 | 282 | | |||
283 | if (int type = checkFullScreenHack(geom)) { | | |||
284 | m_fullscreenMode = FullScreenHack; | | |||
285 | if (rules()->checkStrictGeometry(false)) { | | |||
286 | geom = type == 2 // 1 = It's xinerama-aware fullscreen hack, 2 = It's full area | | |||
287 | ? workspace()->clientArea(FullArea, geom.center(), desktop()) | | |||
288 | : workspace()->clientArea(ScreenArea, geom.center(), desktop()); | | |||
289 | } else | | |||
290 | geom = workspace()->clientArea(FullScreenArea, geom.center(), desktop()); | | |||
291 | placementDone = true; | | |||
292 | } | | |||
293 | | ||||
294 | if (isDesktop()) | 283 | if (isDesktop()) | ||
295 | // KWin doesn't manage desktop windows | 284 | // KWin doesn't manage desktop windows | ||
296 | placementDone = true; | 285 | placementDone = true; | ||
297 | 286 | | |||
298 | bool usePosition = false; | 287 | bool usePosition = false; | ||
299 | if (isMapped || session || placementDone) | 288 | if (isMapped || session || placementDone) | ||
300 | placementDone = true; // Use geometry | 289 | placementDone = true; // Use geometry | ||
301 | else if (isTransient() && !isUtility() && !isDialog() && !isSplash()) | 290 | else if (isTransient() && !isUtility() && !isDialog() && !isSplash()) | ||
▲ Show 20 Lines • Show All 225 Lines • ▼ Show 20 Line(s) | 510 | if (session) { | |||
527 | setSkipPager(session->skipPager); | 516 | setSkipPager(session->skipPager); | ||
528 | setSkipSwitcher(session->skipSwitcher); | 517 | setSkipSwitcher(session->skipSwitcher); | ||
529 | setShade(session->shaded ? ShadeNormal : ShadeNone); | 518 | setShade(session->shaded ? ShadeNormal : ShadeNone); | ||
530 | setOpacity(session->opacity); | 519 | setOpacity(session->opacity); | ||
531 | geom_restore = session->restore; | 520 | geom_restore = session->restore; | ||
532 | if (session->maximized != MaximizeRestore) { | 521 | if (session->maximized != MaximizeRestore) { | ||
533 | maximize(MaximizeMode(session->maximized)); | 522 | maximize(MaximizeMode(session->maximized)); | ||
534 | } | 523 | } | ||
535 | if (session->fullscreen == FullScreenHack) | 524 | if (session->fullscreen != FullScreenNone) { | ||
536 | ; // Nothing, this should be already set again above | | |||
537 | else if (session->fullscreen != FullScreenNone) { | | |||
538 | setFullScreen(true, false); | 525 | setFullScreen(true, false); | ||
539 | geom_fs_restore = session->fsrestore; | 526 | geom_fs_restore = session->fsrestore; | ||
540 | } | 527 | } | ||
541 | checkOffscreenPosition(&geom_restore, area); | 528 | checkOffscreenPosition(&geom_restore, area); | ||
542 | checkOffscreenPosition(&geom_fs_restore, area); | 529 | checkOffscreenPosition(&geom_fs_restore, area); | ||
543 | } else { | 530 | } else { | ||
544 | // Window may want to be maximized | 531 | // Window may want to be maximized | ||
545 | // done after checking that the window isn't larger than the workarea, so that | 532 | // done after checking that the window isn't larger than the workarea, so that | ||
Show All 15 Lines | |||||
561 | setKeepBelow(rules()->checkKeepBelow(info->state() & NET::KeepBelow, !isMapped)); | 548 | setKeepBelow(rules()->checkKeepBelow(info->state() & NET::KeepBelow, !isMapped)); | ||
562 | setOriginalSkipTaskbar(rules()->checkSkipTaskbar(info->state() & NET::SkipTaskbar, !isMapped)); | 549 | setOriginalSkipTaskbar(rules()->checkSkipTaskbar(info->state() & NET::SkipTaskbar, !isMapped)); | ||
563 | setSkipPager(rules()->checkSkipPager(info->state() & NET::SkipPager, !isMapped)); | 550 | setSkipPager(rules()->checkSkipPager(info->state() & NET::SkipPager, !isMapped)); | ||
564 | setSkipSwitcher(rules()->checkSkipSwitcher(info->state() & NET::SkipSwitcher, !isMapped)); | 551 | setSkipSwitcher(rules()->checkSkipSwitcher(info->state() & NET::SkipSwitcher, !isMapped)); | ||
565 | if (info->state() & NET::DemandsAttention) | 552 | if (info->state() & NET::DemandsAttention) | ||
566 | demandAttention(); | 553 | demandAttention(); | ||
567 | if (info->state() & NET::Modal) | 554 | if (info->state() & NET::Modal) | ||
568 | setModal(true); | 555 | setModal(true); | ||
569 | if (m_fullscreenMode != FullScreenHack) { | 556 | | ||
570 | setFullScreen(rules()->checkFullScreen(info->state() & NET::FullScreen, !isMapped), false); | 557 | setFullScreen(rules()->checkFullScreen(info->state() & NET::FullScreen, !isMapped), false); | ||
571 | } | 558 | } | ||
572 | } | | |||
573 | 559 | | |||
574 | updateAllowedActions(true); | 560 | updateAllowedActions(true); | ||
575 | 561 | | |||
576 | // Set initial user time directly | 562 | // Set initial user time directly | ||
577 | m_userTime = readUserTimeMapTimestamp(asn_valid ? &asn_id : NULL, asn_valid ? &asn_data : NULL, session); | 563 | m_userTime = readUserTimeMapTimestamp(asn_valid ? &asn_id : NULL, asn_valid ? &asn_data : NULL, session); | ||
578 | group()->updateUserTime(m_userTime); // And do what Client::updateUserTime() does | 564 | group()->updateUserTime(m_userTime); // And do what Client::updateUserTime() does | ||
579 | 565 | | |||
580 | // This should avoid flicker, because real restacking is done | 566 | // This should avoid flicker, because real restacking is done | ||
▲ Show 20 Lines • Show All 230 Lines • Show Last 20 Lines |