Changeset View
Changeset View
Standalone View
Standalone View
workspace.cpp
Show First 20 Lines • Show All 590 Lines • ▼ Show 20 Line(s) | 588 | { | |||
---|---|---|---|---|---|
591 | connect(c, &AbstractClient::minimizedChanged, this, std::bind(&Workspace::clientMinimizedChanged, this, c)); | 591 | connect(c, &AbstractClient::minimizedChanged, this, std::bind(&Workspace::clientMinimizedChanged, this, c)); | ||
592 | } | 592 | } | ||
593 | 593 | | |||
594 | Client* Workspace::createClient(xcb_window_t w, bool is_mapped) | 594 | Client* Workspace::createClient(xcb_window_t w, bool is_mapped) | ||
595 | { | 595 | { | ||
596 | StackingUpdatesBlocker blocker(this); | 596 | StackingUpdatesBlocker blocker(this); | ||
597 | Client* c = new Client(); | 597 | Client* c = new Client(); | ||
598 | setupClientConnections(c); | 598 | setupClientConnections(c); | ||
599 | connect(c, &Client::blockingCompositingChanged, m_compositor, &Compositor::updateClientCompositeBlocking); | 599 | if (X11Compositor *compositor = X11Compositor::self()) { | ||
600 | connect(c, &Client::blockingCompositingChanged, compositor, &X11Compositor::updateClientCompositeBlocking); | ||||
601 | } | ||||
600 | connect(c, SIGNAL(clientFullScreenSet(KWin::Client*,bool,bool)), ScreenEdges::self(), SIGNAL(checkBlocking())); | 602 | connect(c, SIGNAL(clientFullScreenSet(KWin::Client*,bool,bool)), ScreenEdges::self(), SIGNAL(checkBlocking())); | ||
601 | if (!c->manage(w, is_mapped)) { | 603 | if (!c->manage(w, is_mapped)) { | ||
602 | Client::deleteClient(c); | 604 | Client::deleteClient(c); | ||
603 | return NULL; | 605 | return NULL; | ||
604 | } | 606 | } | ||
605 | addClient(c); | 607 | addClient(c); | ||
606 | return c; | 608 | return c; | ||
607 | } | 609 | } | ||
▲ Show 20 Lines • Show All 136 Lines • ▼ Show 20 Line(s) | |||||
744 | void Workspace::removeDeleted(Deleted* c) | 746 | void Workspace::removeDeleted(Deleted* c) | ||
745 | { | 747 | { | ||
746 | assert(deleted.contains(c)); | 748 | assert(deleted.contains(c)); | ||
747 | emit deletedRemoved(c); | 749 | emit deletedRemoved(c); | ||
748 | deleted.removeAll(c); | 750 | deleted.removeAll(c); | ||
749 | unconstrained_stacking_order.removeAll(c); | 751 | unconstrained_stacking_order.removeAll(c); | ||
750 | stacking_order.removeAll(c); | 752 | stacking_order.removeAll(c); | ||
751 | markXStackingOrderAsDirty(); | 753 | markXStackingOrderAsDirty(); | ||
752 | if (c->wasClient() && m_compositor) { | 754 | if (!c->wasClient()) { | ||
753 | m_compositor->updateCompositeBlocking(); | 755 | return; | ||
756 | } | ||||
757 | if (X11Compositor *compositor = X11Compositor::self()) { | ||||
758 | compositor->updateClientCompositeBlocking(); | ||||
754 | } | 759 | } | ||
755 | } | 760 | } | ||
756 | 761 | | |||
757 | void Workspace::updateToolWindows(bool also_hide) | 762 | void Workspace::updateToolWindows(bool also_hide) | ||
758 | { | 763 | { | ||
759 | // TODO: What if Client's transiency/group changes? should this be called too? (I'm paranoid, am I not?) | 764 | // TODO: What if Client's transiency/group changes? should this be called too? (I'm paranoid, am I not?) | ||
760 | if (!options->isHideUtilityWindowsForInactive()) { | 765 | if (!options->isHideUtilityWindowsForInactive()) { | ||
761 | for (ClientList::ConstIterator it = clients.constBegin(); it != clients.constEnd(); ++it) | 766 | for (ClientList::ConstIterator it = clients.constBegin(); it != clients.constEnd(); ++it) | ||
▲ Show 20 Lines • Show All 1029 Lines • Show Last 20 Lines |