summaryrefslogtreecommitdiff
path: root/gui-libs/wf-overview/files/wf-overview-0.1.0_p20260228-wayfire-api.patch
blob: 9f1a76a6a07903e848f053a410730a35b723886d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
--- a/src/overview.cpp
+++ b/src/overview.cpp
@@ -297,8 +297,8 @@
   void update_transformer() {
     if (!transformer || !view || !view->is_mapped() || orig_geo.width <= 0 || orig_geo.height <= 0) return;
     auto cur = anim.current();
-    float sx = std::clamp((float)cur.width / orig_geo.width, 0.1f, 10.0f);
-    float sy = std::clamp((float)cur.height / orig_geo.height, 0.1f, 10.0f);
+    float sx = std::clamp(float(cur.width / orig_geo.width), 0.1f, 10.0f);
+    float sy = std::clamp(float(cur.height / orig_geo.height), 0.1f, 10.0f);
     transformer->translation_x = (cur.x + cur.width/2.0f) - (orig_geo.x + orig_geo.width/2.0f);
     transformer->translation_y = (cur.y + cur.height/2.0f) - (orig_geo.y + orig_geo.height/2.0f);
     transformer->scale_x = sx; transformer->scale_y = sy;
@@ -962,10 +962,10 @@
   public:
     instance_t(panel_node_t *s, wf::scene::damage_callback pd) : self(s), push_damage(pd) {}
     void schedule_instructions(std::vector<wf::scene::render_instruction_t> &instr,
-                               const wf::render_target_t &target, wf::region_t &damage) override {
+                               const wf::render_target_t &target, wf::regionf_t &damage) override {
       if (self->overview_active && *self->overview_active) return;
       auto bbox = self->get_bounding_box();
-      wf::region_t our_damage = damage & bbox;
+      wf::regionf_t our_damage = damage & bbox;
       if (!our_damage.empty()) instr.push_back({.instance = this, .target = target, .damage = our_damage});
     }
     void render(const wf::scene::render_instruction_t &data) override {
@@ -974,7 +974,7 @@
           render_tex(self->progs->tex, self->output, self->panel->tex_id, self->panel->get_render_geometry(), 1.0f, true);
       });
     }
-    void compute_visibility(wf::output_t*, wf::region_t&) override {}
+    void compute_visibility(wf::output_t*, wf::regionf_t&) override {}
   };
 
   panel_node_t(wf::output_t *out, top_panel_t *p, gl_programs_t *pr, bool *active)
@@ -999,7 +999,7 @@
   struct ws_capture_t {
     std::shared_ptr<wf::workspace_stream_node_t> stream;
     std::vector<wf::scene::render_instance_uptr> instances;
-    wf::region_t damage; wf::auxilliary_buffer_t fb; wf::point_t ws;
+    wf::regionf_t damage; wf::auxilliary_buffer_t fb; wf::point_t ws;
   };
 
   class render_instance_t : public wf::scene::render_instance_t {
@@ -1015,7 +1015,7 @@
           ws_capture_t c; c.ws = {x, y};
           c.stream = std::make_shared<wf::workspace_stream_node_t>(s->output, c.ws);
           auto idx = captures.size();
-          c.stream->gen_render_instances(c.instances, [this, idx](const wf::region_t &d) {
+          c.stream->gen_render_instances(c.instances, [this, idx](const wf::regionf_t &d) {
             if (idx < captures.size()) captures[idx].damage |= d;
             push_damage(self->get_bounding_box());
           }, s->output);
@@ -1043,10 +1043,10 @@
       s.transformer->translation_x = s.transformer->translation_y = 0;
 
       std::vector<wf::scene::render_instance_uptr> vi;
-      s.view->get_transformed_node()->gen_render_instances(vi, [](const wf::region_t&){}, self->output);
+      s.view->get_transformed_node()->gen_render_instances(vi, [](const wf::regionf_t&){}, self->output);
       wf::render_target_t st{drg.snapshot_fb}; st.geometry = geo; st.scale = scale;
       wf::render_pass_params_t sp;
-      sp.instances = &vi; sp.damage = wf::region_t{geo};
+      sp.instances = &vi; sp.damage = wf::regionf_t{geo};
       sp.reference_output = self->output; sp.target = st;
       sp.flags = wf::RPASS_CLEAR_BACKGROUND;
       wf::render_pass_t::run(sp);
@@ -1057,7 +1057,7 @@
     }
 
     void schedule_instructions(std::vector<wf::scene::render_instruction_t> &instr,
-                               const wf::render_target_t &target, wf::region_t &damage) override {
+                               const wf::render_target_t &target, wf::regionf_t &damage) override {
       auto bbox = self->get_bounding_box();
       float scale = self->output->handle->scale;
       if (self->activities->drag.needs_capture) capture_drag_snapshot(scale);
@@ -1069,7 +1069,7 @@
         c.fb.allocate(wf::dimensions(wb), scale);
         wf::render_target_t t{c.fb}; t.geometry = wb; t.scale = scale;
         wf::render_pass_params_t p;
-        p.instances = &c.instances; p.damage = force ? wf::region_t{wb} : c.damage;
+        p.instances = &c.instances; p.damage = force ? wf::regionf_t{wb} : c.damage;
         p.reference_output = self->output; p.target = t;
         p.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
         wf::render_pass_t::run(p); c.damage.clear();
@@ -1079,8 +1079,8 @@
     }
 
     void render(const wf::scene::render_instruction_t &data) override { self->do_render(data, captures); }
-    void compute_visibility(wf::output_t *out, wf::region_t &) override {
-      for (auto &c : captures) for (auto &i : c.instances) { wf::region_t r = c.stream->get_bounding_box(); i->compute_visibility(out, r); }
+    void compute_visibility(wf::output_t *out, wf::regionf_t &) override {
+      for (auto &c : captures) for (auto &i : c.instances) { wf::regionf_t r = c.stream->get_bounding_box(); i->compute_visibility(out, r); }
     }
   };
 
@@ -1492,12 +1492,12 @@
   }
   void handle_motion() {
     auto c = wf::get_core().get_cursor_position();
-    auto o = wf::get_core().output_layout->get_output_at(c.x, c.y);
+    auto o = wf::get_core().output_layout->find_closest_output(c);
     if (o && outputs.count(o)) outputs[o]->handle_motion(c);
   }
   void handle_button(wlr_pointer_button_event *ev) {
     auto c = wf::get_core().get_cursor_position();
-    auto o = wf::get_core().output_layout->get_output_at(c.x, c.y);
+    auto o = wf::get_core().output_layout->find_closest_output(c);
     if (o && outputs.count(o)) outputs[o]->handle_button(ev->button, ev->state, c);
   }
 };