]> git.mdlowis.com Git - proto/labwc.git/commitdiff
ssd: refactor in preparation for making ssd_visible_box() private
authorJohan Malm <jgm323@gmail.com>
Sun, 22 Aug 2021 13:12:05 +0000 (14:12 +0100)
committerJohan Malm <jgm323@gmail.com>
Sun, 22 Aug 2021 13:12:05 +0000 (14:12 +0100)
Prepare to move code from output/render functions to ssd. We want
rendering functions to just render, not calculate decoration geometry
and such like.

include/ssd.h
src/server.c
src/ssd.c
src/xdg.c
src/xwayland.c

index 040cc3afa267912161f45b6fd87a23af1d39d329..111ea729311d712f3ceba5d58cf4f6188386c12b 100644 (file)
@@ -60,6 +60,6 @@ uint32_t ssd_resize_edges(enum ssd_part_type type);
 void ssd_update_title(struct view *view);
 void ssd_create(struct view *view);
 void ssd_destroy(struct view *view);
-void ssd_update_geometry(struct view *view);
+void ssd_update_geometry(struct view *view, bool force);
 
 #endif /* __LABWC_SSD_H */
index cfcac22fa0ab5787767c562eda31907783cf9856..45e30ef286a0e7b5999f67d296ecf27244299cf0 100644 (file)
@@ -36,14 +36,10 @@ reload_config_and_theme(void)
                        continue;
                }
                view->margin = ssd_thickness(view);
-               struct ssd_part *part;
-               wl_list_for_each(part, &view->ssd.parts, link) {
-                       part->box = ssd_visible_box(view, part->type);
-               }
+               ssd_update_geometry(view, true);
        }
 
        menu_reconfigure(g_server, g_server->rootmenu);
-
        damage_all_outputs(g_server);
 }
 
index ac90642e1769a4cad08c9febbec84e7b276e044b..3ef64684460c8cee6230e69e736da6dc5c82fc2d 100644 (file)
--- a/src/ssd.c
+++ b/src/ssd.c
@@ -354,9 +354,9 @@ geometry_changed(struct view *view)
 }
 
 void
-ssd_update_geometry(struct view *view)
+ssd_update_geometry(struct view *view, bool force)
 {
-       if (!geometry_changed(view)) {
+       if (!geometry_changed(view) && !force) {
                return;
        }
        struct ssd_part *part;
index d456fd8fc2aab82e93e57ecc1262484e9cadd673..8b33350789960f00ecf31248a0e2c1fb2633934e 100644 (file)
--- a/src/xdg.c
+++ b/src/xdg.c
@@ -69,7 +69,7 @@ handle_commit(struct wl_listener *listener, void *data)
                        view->pending_move_resize.configure_serial = 0;
                }
        }
-       ssd_update_geometry(view);
+       ssd_update_geometry(view, false);
        damage_view_part(view);
 }
 
@@ -164,7 +164,7 @@ xdg_toplevel_view_configure(struct view *view, struct wlr_box geo)
        } else if (view->pending_move_resize.configure_serial == 0) {
                view->x = geo.x;
                view->y = geo.y;
-               ssd_update_geometry(view);
+               ssd_update_geometry(view, false);
                damage_all_outputs(view->server);
        }
 }
@@ -174,7 +174,7 @@ xdg_toplevel_view_move(struct view *view, double x, double y)
 {
        view->x = x;
        view->y = y;
-       ssd_update_geometry(view);
+       ssd_update_geometry(view, false);
        damage_all_outputs(view->server);
 }
 
index ed434ba8402d91518321a041a653d85aab0e70d9..ed2f989c05611ad4a9311a4624849217d2af4187 100644 (file)
@@ -22,7 +22,7 @@ handle_commit(struct wl_listener *listener, void *data)
                        view->pending_move_resize.height - view->h;
                view->pending_move_resize.update_y = false;
        }
-       ssd_update_geometry(view);
+       ssd_update_geometry(view, false);
        damage_view_whole(view);
 }
 
@@ -107,7 +107,7 @@ move(struct view *view, double x, double y)
        struct wlr_xwayland_surface *s = view->xwayland_surface;
        wlr_xwayland_surface_configure(s, (int16_t)x, (int16_t)y,
                (uint16_t)s->width, (uint16_t)s->height);
-       ssd_update_geometry(view);
+       ssd_update_geometry(view, false);
        damage_all_outputs(view->server);
 }