Skip to content

Commit 92a44dd

Browse files
committed
output: make workspace set accessible via a method instead of a field
1 parent 6346028 commit 92a44dd

33 files changed

+148
-140
lines changed

plugins/common/wayfire/plugins/common/move-drag-interface.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -701,14 +701,14 @@ inline void adjust_view_on_output(drag_done_signal *ev)
701701
auto grab = ev->grab_position + output_delta;
702702

703703
auto output_geometry = ev->focused_output->get_relative_geometry();
704-
auto current_ws = ev->focused_output->workspace->get_current_workspace();
704+
auto current_ws = ev->focused_output->wset()->get_current_workspace();
705705
wf::point_t target_ws{
706706
(int)std::floor(1.0 * grab.x / output_geometry.width),
707707
(int)std::floor(1.0 * grab.y / output_geometry.height),
708708
};
709709
target_ws = target_ws + current_ws;
710710

711-
auto gsize = ev->focused_output->workspace->get_workspace_grid_size();
711+
auto gsize = ev->focused_output->wset()->get_workspace_grid_size();
712712
target_ws.x = wf::clamp(target_ws.x, 0, gsize.width - 1);
713713
target_ws.y = wf::clamp(target_ws.y, 0, gsize.height - 1);
714714

@@ -750,7 +750,7 @@ inline void adjust_view_on_output(drag_done_signal *ev)
750750
// Ensure that every view is visible on parent's main workspace
751751
for (auto& v : parent->enumerate_views())
752752
{
753-
ev->focused_output->workspace->move_to_workspace(v, target_ws);
753+
ev->focused_output->wset()->move_to_workspace(v, target_ws);
754754
}
755755

756756
ev->focused_output->focus_view(focus_view, true);

plugins/common/wayfire/plugins/common/workspace-stream-sharing.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class workspace_stream_pool_t : public wf::custom_data_t
100100
{
101101
this->output = output;
102102
output->connect(&on_workspace_grid_changed);
103-
resize_pool(this->output->workspace->get_workspace_grid_size());
103+
resize_pool(this->output->wset()->get_workspace_grid_size());
104104
}
105105

106106
void resize_pool(wf::dimensions_t size)
@@ -138,7 +138,7 @@ class workspace_stream_pool_t : public wf::custom_data_t
138138

139139
wf::signal::connection_t<workspace_grid_changed_signal> on_workspace_grid_changed = [=] (auto)
140140
{
141-
resize_pool(this->output->workspace->get_workspace_grid_size());
141+
resize_pool(this->output->wset()->get_workspace_grid_size());
142142
};
143143
};
144144
}

plugins/common/wayfire/plugins/common/workspace-wall.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ class workspace_wall_t : public wf::signal::provider_t
173173
wf::geometry_t get_wall_rectangle() const
174174
{
175175
auto size = this->output->get_screen_size();
176-
auto workspace_size = this->output->workspace->get_workspace_grid_size();
176+
auto workspace_size = this->output->wset()->get_workspace_grid_size();
177177

178178
return {
179179
-gap_size,
@@ -210,7 +210,7 @@ class workspace_wall_t : public wf::signal::provider_t
210210
std::vector<wf::point_t> get_visible_workspaces(wf::geometry_t viewport) const
211211
{
212212
std::vector<wf::point_t> visible;
213-
auto wsize = output->workspace->get_workspace_grid_size();
213+
auto wsize = output->wset()->get_workspace_grid_size();
214214
for (int i = 0; i < wsize.width; i++)
215215
{
216216
for (int j = 0; j < wsize.height; j++)
@@ -227,7 +227,7 @@ class workspace_wall_t : public wf::signal::provider_t
227227

228228
void resize_colors()
229229
{
230-
auto size = this->output->workspace->get_workspace_grid_size();
230+
auto size = this->output->wset()->get_workspace_grid_size();
231231
render_colors.resize(size.width);
232232
for (auto& v : render_colors)
233233
{
@@ -436,7 +436,7 @@ class workspace_wall_t : public wf::signal::provider_t
436436
workspace_wall_node_t(workspace_wall_t *wall) : node_t(false)
437437
{
438438
this->wall = wall;
439-
auto [w, h] = wall->output->workspace->get_workspace_grid_size();
439+
auto [w, h] = wall->output->wset()->get_workspace_grid_size();
440440
workspaces.resize(w);
441441
for (int i = 0; i < w; i++)
442442
{

plugins/cube/cube.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,8 @@ class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer
143143
cube_render_node_t(wayfire_cube *cube) : node_t(false)
144144
{
145145
this->cube = cube;
146-
auto w = cube->output->workspace->get_workspace_grid_size().width;
147-
auto y = cube->output->workspace->get_current_workspace().y;
146+
auto w = cube->output->wset()->get_workspace_grid_size().width;
147+
auto y = cube->output->wset()->get_current_workspace().y;
148148
for (int i = 0; i < w; i++)
149149
{
150150
auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
@@ -234,7 +234,7 @@ class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer
234234

235235
int get_num_faces()
236236
{
237-
return output->workspace->get_workspace_grid_size().width;
237+
return output->wset()->get_workspace_grid_size().width;
238238
}
239239

240240
wf::plugin_activation_data_t grab_interface{
@@ -402,7 +402,7 @@ class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer
402402
wf::get_core().hide_cursor();
403403
input_grab->grab_input(wf::scene::layer::OVERLAY);
404404

405-
auto wsize = output->workspace->get_workspace_grid_size();
405+
auto wsize = output->wset()->get_workspace_grid_size();
406406
animation.side_angle = 2 * M_PI / float(wsize.width);
407407
identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
408408
if (wsize.width == 1)
@@ -444,9 +444,9 @@ class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer
444444
int size = get_num_faces();
445445
int dvx = calculate_viewport_dx_from_rotation();
446446

447-
auto cws = output->workspace->get_current_workspace();
447+
auto cws = output->wset()->get_current_workspace();
448448
int nvx = (cws.x + (dvx % size) + size) % size;
449-
output->workspace->set_workspace({nvx, cws.y});
449+
output->wset()->set_workspace({nvx, cws.y});
450450

451451
/* We are finished with rotation, make sure the next time cube is used
452452
* it is properly reset */
@@ -602,7 +602,7 @@ class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer
602602
GL_CALL(glFrontFace(front_face));
603603
static const GLuint indexData[] = {0, 1, 2, 0, 2, 3};
604604

605-
auto cws = output->workspace->get_current_workspace();
605+
auto cws = output->wset()->get_current_workspace();
606606
for (int i = 0; i < get_num_faces(); i++)
607607
{
608608
int index = (cws.x + i) % get_num_faces();

plugins/cube/skydome.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
155155
program.attrib_pointer("position", 3, 0, vertices.data());
156156
program.attrib_pointer("uvPosition", 2, 0, coords.data());
157157

158-
auto cws = output->workspace->get_current_workspace();
158+
auto cws = output->wset()->get_current_workspace();
159159
auto model = glm::rotate(glm::mat4(1.0),
160160
float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
161161
glm::vec3(0, 1, 0));

plugins/grid/grid.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ class wayfire_grid : public wf::per_output_plugin_instance_t
166166
bool can_adjust_view(wayfire_view view)
167167
{
168168
auto workspace_impl =
169-
output->workspace->get_workspace_implementation();
169+
output->wset()->get_workspace_implementation();
170170

171171
return workspace_impl->view_movable(view) &&
172172
workspace_impl->view_resizable(view);
@@ -220,7 +220,7 @@ class wayfire_grid : public wf::per_output_plugin_instance_t
220220
wf::signal::connection_t<wf::workarea_changed_signal> on_workarea_changed =
221221
[=] (wf::workarea_changed_signal *ev)
222222
{
223-
for (auto& view : output->workspace->get_views(wf::WSET_MAPPED_ONLY))
223+
for (auto& view : output->wset()->get_views(wf::WSET_MAPPED_ONLY))
224224
{
225225
auto data = view->get_data_safe<wf_grid_slot_data>();
226226

@@ -265,7 +265,7 @@ class wayfire_grid : public wf::per_output_plugin_instance_t
265265
wf::geometry_t adjust_for_workspace(wf::geometry_t geometry,
266266
wf::point_t workspace)
267267
{
268-
auto delta_ws = workspace - output->workspace->get_current_workspace();
268+
auto delta_ws = workspace - output->wset()->get_current_workspace();
269269
auto scr_size = output->get_screen_size();
270270
geometry.x += delta_ws.x * scr_size.width;
271271
geometry.y += delta_ws.y * scr_size.height;

plugins/scale/scale.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ class wayfire_scale : public wf::per_output_plugin_instance_t,
174174
return false;
175175
}
176176

177-
auto ws = output->workspace->get_current_workspace() + delta;
177+
auto ws = output->wset()->get_current_workspace() + delta;
178178

179179
// vswitch picks the top view, we want the focused one
180180
std::vector<wayfire_view> fixed_views;
@@ -183,7 +183,7 @@ class wayfire_scale : public wf::per_output_plugin_instance_t,
183183
fixed_views.push_back(current_focus_view);
184184
}
185185

186-
output->workspace->request_workspace(ws, fixed_views);
186+
output->wset()->request_workspace(ws, fixed_views);
187187

188188
return true;
189189
});
@@ -421,7 +421,7 @@ class wayfire_scale : public wf::per_output_plugin_instance_t,
421421
}
422422

423423
auto ws = get_view_main_workspace(view);
424-
output->workspace->request_workspace(ws);
424+
output->wset()->request_workspace(ws);
425425
}
426426

427427
/* Updates current and initial view focus variables accordingly */
@@ -556,7 +556,7 @@ class wayfire_scale : public wf::per_output_plugin_instance_t,
556556
view = view->parent;
557557
}
558558

559-
auto ws = output->workspace->get_current_workspace();
559+
auto ws = output->wset()->get_current_workspace();
560560
auto og = output->get_layout_geometry();
561561
auto vg = view->get_wm_geometry();
562562
auto center = wf::point_t{vg.x + vg.width / 2, vg.y + vg.height / 2};
@@ -644,7 +644,7 @@ class wayfire_scale : public wf::per_output_plugin_instance_t,
644644

645645
case KEY_ESC:
646646
deactivate();
647-
output->workspace->request_workspace(initial_workspace);
647+
output->wset()->request_workspace(initial_workspace);
648648
output->focus_view(initial_focus_view, true);
649649
initial_focus_view = nullptr;
650650

@@ -733,7 +733,7 @@ class wayfire_scale : public wf::per_output_plugin_instance_t,
733733
/* Returns a list of views for all workspaces */
734734
std::vector<wayfire_view> get_all_workspace_views()
735735
{
736-
return output->workspace->get_views(wf::WSET_EXCLUDE_MINIMIZED | wf::WSET_MAPPED_ONLY);
736+
return output->wset()->get_views(wf::WSET_EXCLUDE_MINIMIZED | wf::WSET_MAPPED_ONLY);
737737
}
738738

739739
/* Returns a list of views for the current workspace */
@@ -1300,7 +1300,7 @@ class wayfire_scale : public wf::per_output_plugin_instance_t,
13001300
return false;
13011301
}
13021302

1303-
initial_workspace = output->workspace->get_current_workspace();
1303+
initial_workspace = output->wset()->get_current_workspace();
13041304
initial_focus_view = output->get_active_view();
13051305
current_focus_view = initial_focus_view ?: views.front();
13061306
// Make sure no leftover events from the activation binding

plugins/scale/scale.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ inline wayfire_view scale_find_view_at(wf::pointf_t at, wf::output_t *output)
99
at.x -= offset.x;
1010
at.y -= offset.y;
1111

12-
auto node = output->workspace->get_node()->find_node_at(at);
12+
auto node = output->wset()->get_node()->find_node_at(at);
1313
if (node)
1414
{
1515
return wf::node_to_view(node->node->shared_from_this());

plugins/single_plugins/expo.cpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
2828
wf::point_t convert_workspace_index_to_coords(int index)
2929
{
3030
index--; // compensate for indexing from 0
31-
auto wsize = output->workspace->get_workspace_grid_size();
31+
auto wsize = output->wset()->get_workspace_grid_size();
3232
int x = index % wsize.width;
3333
int y = index / wsize.width;
3434

@@ -93,7 +93,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
9393
for (const auto& [workspace, binding] : workspace_bindings.value())
9494
{
9595
int workspace_index = atoi(workspace.c_str());
96-
auto wsize = output->workspace->get_workspace_grid_size();
96+
auto wsize = output->wset()->get_workspace_grid_size();
9797
if ((workspace_index > (wsize.width * wsize.height)) ||
9898
(workspace_index < 1))
9999
{
@@ -225,7 +225,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
225225
if ((ev->focus_output == output) && can_handle_drag())
226226
{
227227
state.button_pressed = true;
228-
auto [vw, vh] = output->workspace->get_workspace_grid_size();
228+
auto [vw, vh] = output->wset()->get_workspace_grid_size();
229229
drag_helper->set_scale(std::max(vw, vh));
230230
}
231231
};
@@ -291,7 +291,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
291291
output->render->add_effect(&post_frame, wf::OUTPUT_EFFECT_POST);
292292
output->render->schedule_redraw();
293293

294-
auto cws = output->workspace->get_current_workspace();
294+
auto cws = output->wset()->get_current_workspace();
295295
initial_ws = target_ws = cws;
296296

297297
for (size_t i = 0; i < keyboard_select_cbs.size(); i++)
@@ -310,10 +310,10 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
310310
if (zoom_in)
311311
{
312312
zoom_animation.set_start(wall->get_workspace_rectangle(
313-
output->workspace->get_current_workspace()));
313+
output->wset()->get_current_workspace()));
314314

315315
/* Make sure workspaces are centered */
316-
auto wsize = output->workspace->get_workspace_grid_size();
316+
auto wsize = output->wset()->get_workspace_grid_size();
317317
auto size = output->get_screen_size();
318318
const int maxdim = std::max(wsize.width, wsize.height);
319319
const int gap = this->delimiter_offset;
@@ -343,7 +343,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
343343
{
344344
state.accepting_input = false;
345345
start_zoom(false);
346-
output->workspace->set_workspace(target_ws);
346+
output->wset()->set_workspace(target_ws);
347347
for (size_t i = 0; i < keyboard_select_cbs.size(); i++)
348348
{
349349
output->rem_binding(&keyboard_select_cbs[i]);
@@ -352,7 +352,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
352352

353353
wf::geometry_t get_grid_geometry()
354354
{
355-
auto wsize = output->workspace->get_workspace_grid_size();
355+
auto wsize = output->wset()->get_workspace_grid_size();
356356
auto full_g = output->get_layout_geometry();
357357

358358
wf::geometry_t grid;
@@ -391,7 +391,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
391391
void start_moving(wayfire_view view, wf::point_t grab)
392392
{
393393
auto workspace_impl =
394-
output->workspace->get_workspace_implementation();
394+
output->wset()->get_workspace_implementation();
395395
if (!workspace_impl->view_movable(view))
396396
{
397397
return;
@@ -404,7 +404,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
404404
// Make sure that the view is in output-local coordinates!
405405
translate_wobbly(view, grab - ws_coords);
406406

407-
auto [vw, vh] = output->workspace->get_workspace_grid_size();
407+
auto [vw, vh] = output->wset()->get_workspace_grid_size();
408408
wf::move_drag::drag_options_t opts;
409409
opts.initial_scale = std::max(vw, vh);
410410
opts.enable_snap_off = move_enable_snap_off &&
@@ -529,7 +529,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
529529
}
530530

531531
// ensure that the new target is valid (use wrap-around)
532-
auto dim = output->workspace->get_workspace_grid_size();
532+
auto dim = output->wset()->get_workspace_grid_size();
533533
target_ws.x = (target_ws.x + dim.width) % dim.width;
534534
target_ws.y = (target_ws.y + dim.height) % dim.height;
535535

@@ -542,7 +542,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
542542
*/
543543
void highlight_active_workspace()
544544
{
545-
auto dim = output->workspace->get_workspace_grid_size();
545+
auto dim = output->wset()->get_workspace_grid_size();
546546
for (int x = 0; x < dim.width; x++)
547547
{
548548
for (int y = 0; y < dim.height; y++)
@@ -587,7 +587,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
587587
{
588588
auto og = output->get_layout_geometry();
589589

590-
auto wsize = output->workspace->get_workspace_grid_size();
590+
auto wsize = output->wset()->get_workspace_grid_size();
591591
float max = std::max(wsize.width, wsize.height);
592592

593593
float grid_start_x = og.width * (max - wsize.width) / float(max) / 2;
@@ -608,7 +608,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
608608
{
609609
input_coordinates_to_global_coordinates(ip.x, ip.y);
610610

611-
auto cws = output->workspace->get_current_workspace();
611+
auto cws = output->wset()->get_current_workspace();
612612
auto og = output->get_relative_geometry();
613613

614614
/* Translate coordinates into output-local coordinate system,
@@ -631,7 +631,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
631631

632632
if (auto view = wf::node_to_view(node))
633633
{
634-
auto all_views = output->workspace->get_views();
634+
auto all_views = output->wset()->get_views();
635635
if (std::find(all_views.begin(), all_views.end(), view) != all_views.end())
636636
{
637637
return view;
@@ -680,7 +680,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
680680
return;
681681
}
682682

683-
auto size = this->output->workspace->get_workspace_grid_size();
683+
auto size = this->output->wset()->get_workspace_grid_size();
684684
for (int x = 0; x < size.width; x++)
685685
{
686686
for (int y = 0; y < size.height; y++)
@@ -696,7 +696,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
696696

697697
void resize_ws_fade()
698698
{
699-
auto size = this->output->workspace->get_workspace_grid_size();
699+
auto size = this->output->wset()->get_workspace_grid_size();
700700
ws_fade.resize(size.width);
701701
for (auto& v : ws_fade)
702702
{
@@ -719,7 +719,7 @@ class wayfire_expo : public wf::per_output_plugin_instance_t, public wf::keyboar
719719
resize_ws_fade();
720720

721721
// check that the target and initial workspaces are still in the grid
722-
auto size = this->output->workspace->get_workspace_grid_size();
722+
auto size = this->output->wset()->get_workspace_grid_size();
723723
initial_ws.x = std::min(initial_ws.x, size.width - 1);
724724
initial_ws.y = std::min(initial_ws.y, size.height - 1);
725725

0 commit comments

Comments
 (0)