This should fix the surface not going back to its original position
after unsetting fullscreen or maximized states.
---
desktop-shell/shell.c | 3 +++
src/compositor.c | 1 +
2 files changed, 4 insertions(+)
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index de54e37..d270c27 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -2213,6 +2213,7 @@ unset_fullscreen(struct shell_surface *shsurf)
weston_surface_destroy(shsurf->fullscreen.black_view->surface);
shsurf->fullscreen.black_view = NULL;
+ printf(">>> restored position: %d,%d\n", shsurf->saved_x,
shsurf->saved_y);
weston_view_set_position(shsurf->view,
shsurf->saved_x, shsurf->saved_y);
if (shsurf->saved_rotation_valid) {
@@ -2364,6 +2365,7 @@ set_full_output(struct shell_surface *shsurf)
{
shsurf->saved_x = shsurf->view->geometry.x;
shsurf->saved_y = shsurf->view->geometry.y;
+ printf(">>> saved position: %d,%d\n", shsurf->saved_x, shsurf->saved_y);
shsurf->saved_width = shsurf->surface->width;
shsurf->saved_height = shsurf->surface->height;
shsurf->saved_size_valid = true;
@@ -2399,6 +2401,7 @@ set_surface_type(struct shell_surface *shsurf)
pev->geometry.x +
shsurf->transient.x,
pev->geometry.y +
shsurf->transient.y);
}
+ break;
case SHELL_SURFACE_XWAYLAND:
weston_view_set_position(shsurf->view, shsurf->transient.x,
diff --git a/src/compositor.c b/src/compositor.c
index 8f4bdef..7bb17a9 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -1077,6 +1077,7 @@ weston_view_set_position(struct weston_view *view, float
x, float y)
view->geometry.x = x;
view->geometry.y = y;
+ printf(">>> view set position: %0.3f,%0.3f\n", x, y);
weston_view_geometry_dirty(view);
}
--
1.8.3.1
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel