Commit 7a675b0 committed Jul 14, 2024 · 4 / 4
1 parent 33059c9 commit 7a675b0 Copy full SHA for 7a675b0
File tree 3 files changed +62
-11
lines changed
3 files changed +62
-11
lines changed Original file line number Diff line number Diff line change @@ -751,6 +751,9 @@ void clipboard(std::string const& text)
751
751
forType: NSPasteboardTypeString ];
752
752
}
753
753
754
+ #pragma clang diagnostic push
755
+ #pragma clang diagnostic ignored "-Wundeclared-selector"
756
+
754
757
void set_cursor (cursor_type type)
755
758
{
756
759
switch (type)
@@ -768,13 +771,32 @@ void set_cursor(cursor_type type)
768
771
[[NSCursor openHandCursor ] set ];
769
772
break ;
770
773
case cursor_type::h_resize:
771
- [[NSCursor resizeLeftRightCursor ] set ];
774
+ {
775
+ NSCursor * cursor = [NSCursor performSelector: @selector (_windowResizeEastWestCursor )];
776
+ [cursor set ];
772
777
break ;
778
+ }
773
779
case cursor_type::v_resize:
774
- [[NSCursor resizeUpDownCursor ] set ];
780
+ {
781
+ NSCursor * cursor = [NSCursor performSelector: @selector (_windowResizeNorthSouthCursor )];
782
+ [cursor set ];
783
+ break ;
784
+ }
785
+ case cursor_type::ne_resize:
786
+ {
787
+ NSCursor * cursor = [NSCursor performSelector: @selector (_windowResizeNorthWestSouthEastCursor )];
788
+ [cursor set ];
789
+ break ;
790
+ }
791
+ case cursor_type::sw_resize:
792
+ {
793
+ NSCursor * cursor = [NSCursor performSelector: @selector (_windowResizeNorthEastSouthWestCursor )];
794
+ [cursor set ];
775
795
break ;
796
+ }
776
797
}
777
798
}
799
+ #pragma clang diagnostic pop
778
800
779
801
point scroll_direction ()
780
802
{
Original file line number Diff line number Diff line change @@ -385,7 +385,9 @@ namespace cycfi::elements
385
385
cross_hair,
386
386
hand,
387
387
h_resize,
388
- v_resize
388
+ v_resize,
389
+ ne_resize,
390
+ sw_resize
389
391
};
390
392
391
393
void set_cursor (cursor_type type);
Original file line number Diff line number Diff line change @@ -130,20 +130,47 @@ namespace cycfi::elements
130
130
if (ctx.enabled && is_enabled () && ctx.bounds .includes (p) && !inner.includes (p))
131
131
{
132
132
auto const & b = ctx.bounds ;
133
- bool h_resize = false ;
134
- bool v_resize = false ;
133
+ bool l_resize = false ;
134
+ bool r_resize = false ;
135
+ bool t_resize = false ;
136
+ bool b_resize = false ;
135
137
if (p.x > b.left && p.x < b.left + resize_margin)
136
- h_resize = true ;
138
+ l_resize = true ;
137
139
else if (p.x > b.right - resize_margin && p.x < b.right )
138
- h_resize = true ;
140
+ r_resize = true ;
139
141
140
142
if (p.y > b.top && p.y < b.top + resize_margin)
141
- v_resize = true ;
143
+ t_resize = true ;
142
144
else if (p.y > b.bottom - resize_margin && p.y < b.bottom )
143
- v_resize = true ;
145
+ b_resize = true ;
146
+
147
+ if (l_resize)
148
+ {
149
+ if (t_resize)
150
+ set_cursor (cursor_type::ne_resize);
151
+ else if (b_resize)
152
+ set_cursor (cursor_type::sw_resize);
153
+ else
154
+ set_cursor (cursor_type::h_resize);
155
+ }
156
+ else if (r_resize)
157
+ {
158
+ if (t_resize)
159
+ set_cursor (cursor_type::sw_resize);
160
+ else if (b_resize)
161
+ set_cursor (cursor_type::ne_resize);
162
+ else
163
+ set_cursor (cursor_type::h_resize);
164
+ }
165
+ else if (t_resize || b_resize)
166
+ {
167
+ set_cursor (cursor_type::v_resize);
168
+ }
169
+ else
170
+ {
171
+ set_cursor (cursor_type::arrow);
172
+ }
144
173
145
- if (h_resize != v_resize)
146
- set_cursor (h_resize? cursor_type::h_resize : cursor_type::v_resize);
147
174
return true ;
148
175
}
149
176
return r;
You can’t perform that action at this time.
0 commit comments