]> git.mdlowis.com Git - proto/labwc.git/commitdiff
view: add minimize method
authorJohan Malm <jgm323@gmail.com>
Sun, 25 Jun 2023 10:37:56 +0000 (11:37 +0100)
committerJohan Malm <johanmalm@users.noreply.github.com>
Sun, 25 Jun 2023 15:25:17 +0000 (16:25 +0100)
...and call wlr_xwayland_surface_set_minimized() for xwayland surfaces on
(un)minimize.

Fixes: #958
include/view.h
src/view.c
src/xdg.c
src/xwayland.c

index 53f8de73a1d0524d406caa7db2d219387ce8dc07..3b3aeba8a1bb1a5ffb13c43c49242d03f5634f16 100644 (file)
@@ -36,6 +36,7 @@ struct view_impl {
        void (*set_fullscreen)(struct view *view, bool fullscreen);
        void (*unmap)(struct view *view);
        void (*maximize)(struct view *view, bool maximize);
+       void (*minimize)(struct view *view, bool minimize);
        void (*move_to_front)(struct view *view);
        void (*move_to_back)(struct view *view);
 };
index 6f287b3a0ada1f409245fe86050bcb13392392e8..7b4592549893e34e79525b65c444d53d2d93561d 100644 (file)
@@ -230,6 +230,9 @@ view_minimize(struct view *view, bool minimized)
                wlr_foreign_toplevel_handle_v1_set_minimized(
                        view->toplevel.handle, minimized);
        }
+       if (view->impl->minimize) {
+               view->impl->minimize(view, minimized);
+       }
        view->minimized = minimized;
        if (minimized) {
                view->impl->unmap(view);
index 6d5a9928260169fe4c313df68be181ec455aa0f7..0df83b04403c1f9592466f7c53347b9329034e2b 100644 (file)
--- a/src/xdg.c
+++ b/src/xdg.c
@@ -314,6 +314,12 @@ xdg_toplevel_view_maximize(struct view *view, bool maximized)
        wlr_xdg_toplevel_set_maximized(xdg_toplevel_from_view(view), maximized);
 }
 
+static void
+xdg_toplevel_view_minimize(struct view *view, bool minimized)
+{
+       /* noop */
+}
+
 static void
 xdg_toplevel_view_set_activated(struct view *view, bool activated)
 {
@@ -465,6 +471,7 @@ static const struct view_impl xdg_toplevel_view_impl = {
        .set_fullscreen = xdg_toplevel_view_set_fullscreen,
        .unmap = xdg_toplevel_view_unmap,
        .maximize = xdg_toplevel_view_maximize,
+       .minimize = xdg_toplevel_view_minimize,
        .move_to_front = view_impl_move_to_front,
        .move_to_back = view_impl_move_to_back,
 };
index 6cf77420f80dee84c9e6f3efcecceb381778b3b6..cb9af47c774292bdcec9ed8d2df9567e14a2f93a 100644 (file)
@@ -510,6 +510,13 @@ xwayland_view_maximize(struct view *view, bool maximized)
                maximized);
 }
 
+static void
+xwayland_view_minimize(struct view *view, bool minimized)
+{
+       wlr_xwayland_surface_set_minimized(xwayland_surface_from_view(view),
+               minimized);
+}
+
 enum z_direction {
        LAB_TO_FRONT,
        LAB_TO_BACK,
@@ -604,6 +611,7 @@ static const struct view_impl xwayland_view_impl = {
        .set_fullscreen = xwayland_view_set_fullscreen,
        .unmap = xwayland_view_unmap,
        .maximize = xwayland_view_maximize,
+       .minimize = xwayland_view_minimize,
        .move_to_front = xwayland_view_move_to_front,
        .move_to_back = xwayland_view_move_to_back,
 };