]> git.mdlowis.com Git - proto/labwc.git/commitdiff
ssd: fix pixman error when SSD is created for tiny windows
authortokyo4j <hrak1529@gmail.com>
Mon, 18 Nov 2024 22:18:36 +0000 (07:18 +0900)
committerJohan Malm <johanmalm@users.noreply.github.com>
Sun, 1 Dec 2024 19:11:14 +0000 (19:11 +0000)
set_squared_corners(false) was always called when titlebar is created.
However, set_squared_corners(false) sets the width of the titlebar
background buffer to (view width) - (corner radius), which causes pixman
errors due to the negative width set for titlebar background buffer when
the view is so small.

src/ssd/ssd-titlebar.c

index 3f194603d27126473f8581326799502307b48db5..47ab4ef1a6e1a22dd30c6da5c135191740a31bd4 100644 (file)
@@ -95,14 +95,16 @@ ssd_titlebar_create(struct ssd *ssd)
        ssd_update_title(ssd);
        ssd_update_window_icon(ssd);
 
-       set_squared_corners(ssd, false);
-
        bool maximized = view->maximized == VIEW_AXIS_BOTH;
+       bool squared = ssd_should_be_squared(ssd);
        if (maximized) {
-               set_squared_corners(ssd, true);
                set_alt_button_icon(ssd, LAB_SSD_BUTTON_MAXIMIZE, true);
                ssd->state.was_maximized = true;
        }
+       if (squared) {
+               ssd->state.was_squared = true;
+       }
+       set_squared_corners(ssd, maximized || squared);
 
        if (view->shaded) {
                set_alt_button_icon(ssd, LAB_SSD_BUTTON_SHADE, true);
@@ -111,11 +113,6 @@ ssd_titlebar_create(struct ssd *ssd)
        if (view->visible_on_all_workspaces) {
                set_alt_button_icon(ssd, LAB_SSD_BUTTON_OMNIPRESENT, true);
        }
-
-       if (ssd_should_be_squared(ssd)) {
-               set_squared_corners(ssd, true);
-               ssd->state.was_squared = true;
-       }
 }
 
 static void