commit 3ff7943
dalem
·
2026-01-27 16:36:27 +0000 UTC
parent ee6d5a8
add fullscreen support
2 files changed,
+21,
-5
+16,
-5
1@@ -194,12 +194,23 @@ EXPORT void
2 swc_window_set_fullscreen(struct swc_window *base, struct swc_screen *screen)
3 {
4 struct window *window = INTERNAL(base);
5+ struct swc_rectangle geom;
6+ swc_window_get_geometry(base, &geom);
7+
8+ if (window->mode != WINDOW_MODE_FULLSCREEN) {
9+ window->prev.geom = geom;
10+ window->prev.mode = window->mode;
11+ swc_window_set_geometry(base, &screen->usable_geometry);
12+
13+ if (window->impl->set_mode)
14+ window->impl->set_mode(window, WINDOW_MODE_FULLSCREEN);
15+ window->mode = WINDOW_MODE_FULLSCREEN;
16+ }
17
18- /* TODO: Implement fullscreen windows. */
19-
20- if (window->impl->set_mode)
21- window->impl->set_mode(window, WINDOW_MODE_FULLSCREEN);
22- window->mode = WINDOW_MODE_FULLSCREEN;
23+ else {
24+ swc_window_set_geometry(base, &window->prev.geom);
25+ window->mode = window->prev.mode;
26+ }
27 }
28
29 EXPORT void
+5,
-0
1@@ -52,6 +52,11 @@ struct window {
2 struct view_handler view_handler;
3 bool managed;
4 unsigned mode;
5+
6+ struct {
7+ struct swc_rectangle geom;
8+ unsigned mode;
9+ } prev;
10
11 struct {
12 struct window_pointer_interaction interaction;