MCPcopy Create free account
hub / github.com/KDE/kwin / toggleWindowOnActivity

Method toggleWindowOnActivity

src/activities.cpp:161–196  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

159}
160
161void Activities::toggleWindowOnActivity(Window *window, const QString &activity, bool dont_activate)
162{
163 // int old_desktop = window->desktop();
164 bool was_on_activity = window->isOnActivity(activity);
165 bool was_on_all = window->isOnAllActivities();
166 // note: all activities === no activities
167 bool enable = was_on_all || !was_on_activity;
168 window->setOnActivity(activity, enable);
169 if (window->isOnActivity(activity) == was_on_activity && window->isOnAllActivities() == was_on_all) { // No change
170 return;
171 }
172
173 Workspace *ws = Workspace::self();
174 if (window->isOnCurrentActivity()) {
175 if (window->wantsTabFocus() && options->focusPolicyIsReasonable() && !was_on_activity && // for stickiness changes
176 // FIXME not sure if the line above refers to the correct activity
177 !dont_activate) {
178 ws->requestFocus(window);
179 } else {
180 ws->restackWindowUnderActive(window);
181 }
182 } else {
183 ws->raiseWindow(window);
184 }
185
186 // notifyWindowDesktopChanged( c, old_desktop );
187
188 const auto transients_stacking_order = ws->ensureStackingOrder(window->transients());
189 for (auto *const window : transients_stacking_order) {
190 if (!window) {
191 continue;
192 }
193 toggleWindowOnActivity(window, activity, dont_activate);
194 }
195 ws->rearrange();
196}
197
198} // namespace
199

Callers 1

Calls 11

selfFunction · 0.85
setOnActivityMethod · 0.80
wantsTabFocusMethod · 0.80
requestFocusMethod · 0.80
ensureStackingOrderMethod · 0.80
isOnActivityMethod · 0.45
isOnAllActivitiesMethod · 0.45
isOnCurrentActivityMethod · 0.45
raiseWindowMethod · 0.45
rearrangeMethod · 0.45

Tested by

no test coverage detected