From 982a2d0c99f4128a7cf2236ca190dd9b4e6d7828 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 16 Aug 2018 22:41:10 +1000 Subject: Fix geometry --- sway/desktop/render.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'sway/desktop/render.c') diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 6e1e31f0..93fcfbf4 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -192,10 +192,12 @@ static void render_view_toplevels(struct sway_view *view, .damage = damage, .alpha = alpha, }; + struct wlr_box geometry; + view_get_geometry(view, &geometry); // Render all toplevels without descending into popups output_surface_for_each_surface(output, view->surface, - view->swayc->current.view_x - output->wlr_output->lx, - view->swayc->current.view_y - output->wlr_output->ly, + view->swayc->current.view_x - output->wlr_output->lx - geometry.x, + view->swayc->current.view_y - output->wlr_output->ly - geometry.y, render_surface_iterator, &data); } @@ -232,6 +234,10 @@ static void render_saved_view(struct sway_view *view, .width = view->saved_buffer_width, .height = view->saved_buffer_height, }; + struct wlr_box geometry; + view_get_geometry(view, &geometry); + box.x -= geometry.x; + box.y -= geometry.y; struct wlr_box output_box = { .width = output->swayc->current.swayc_width, -- cgit v1.2.3 From 8034c2542620cc9f2699b242cda94c04fee03051 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 17 Aug 2018 00:03:57 +1000 Subject: Render saved buffer using saved geometry --- sway/desktop/render.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'sway/desktop/render.c') diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 93fcfbf4..28c5a3ed 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -234,10 +234,8 @@ static void render_saved_view(struct sway_view *view, .width = view->saved_buffer_width, .height = view->saved_buffer_height, }; - struct wlr_box geometry; - view_get_geometry(view, &geometry); - box.x -= geometry.x; - box.y -= geometry.y; + box.x -= view->saved_geometry.x; + box.y -= view->saved_geometry.y; struct wlr_box output_box = { .width = output->swayc->current.swayc_width, -- cgit v1.2.3 From b0a5f3a25f52bc1d48d771cb02820042006d8d9e Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 18 Aug 2018 15:10:06 +1000 Subject: Store geometry in the view and handle any floating view resizing --- sway/desktop/render.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'sway/desktop/render.c') diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 28c5a3ed..a4b624b8 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -192,12 +192,12 @@ static void render_view_toplevels(struct sway_view *view, .damage = damage, .alpha = alpha, }; - struct wlr_box geometry; - view_get_geometry(view, &geometry); // Render all toplevels without descending into popups - output_surface_for_each_surface(output, view->surface, - view->swayc->current.view_x - output->wlr_output->lx - geometry.x, - view->swayc->current.view_y - output->wlr_output->ly - geometry.y, + double ox = + view->swayc->current.view_x - output->wlr_output->lx - view->geometry.x; + double oy = + view->swayc->current.view_y - output->wlr_output->ly - view->geometry.y; + output_surface_for_each_surface(output, view->surface, ox, oy, render_surface_iterator, &data); } -- cgit v1.2.3 From ce78f6770e9c950d5335bedfd123979428561ae1 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 18 Aug 2018 15:11:46 +1000 Subject: Fix nitpick --- sway/desktop/render.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'sway/desktop/render.c') diff --git a/sway/desktop/render.c b/sway/desktop/render.c index a4b624b8..7c48d0d2 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -229,13 +229,13 @@ static void render_saved_view(struct sway_view *view, return; } struct wlr_box box = { - .x = view->swayc->current.view_x - output->swayc->current.swayc_x, - .y = view->swayc->current.view_y - output->swayc->current.swayc_y, + .x = view->swayc->current.view_x - output->swayc->current.swayc_x - + view->saved_geometry.x, + .y = view->swayc->current.view_y - output->swayc->current.swayc_y - + view->saved_geometry.y, .width = view->saved_buffer_width, .height = view->saved_buffer_height, }; - box.x -= view->saved_geometry.x; - box.y -= view->saved_geometry.y; struct wlr_box output_box = { .width = output->swayc->current.swayc_width, -- cgit v1.2.3