cairo-util: Fix geometry for frames with buttons but without title
authorBoyan Ding <stu_dby@126.com>
Fri, 4 Jul 2014 07:19:22 +0000 (15:19 +0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Sat, 5 Jul 2014 08:05:06 +0000 (01:05 -0700)
There exist frames which have buttons without title such as a simple
X application piped through xwayland which doesn't specify a title.
We draw the title bar with buttons, but hide it under the window
because geometry thinks a window needs titlebar only if it has title.

This patch change the condition, making it titlebar is needed if a
frame has title or has button(s), which makes more sense.

Signed-off-by: Boyan Ding <stu_dby@126.com>
shared/frame.c

index 35e6b65..aacca60 100644 (file)
@@ -426,7 +426,7 @@ frame_resize_inside(struct frame *frame, int32_t width, int32_t height)
        struct theme *t = frame->theme;
        int decoration_width, decoration_height, titlebar_height;
 
-       if (frame->title)
+       if (frame->title || !wl_list_empty(&frame->buttons))
                titlebar_height = t->titlebar_height;
        else
                titlebar_height = t->width;
@@ -467,7 +467,7 @@ frame_refresh_geometry(struct frame *frame)
        if (!frame->geometry_dirty)
                return;
 
-       if (frame->title)
+       if (frame->title || !wl_list_empty(&frame->buttons))
                titlebar_height = t->titlebar_height;
        else
                titlebar_height = t->width;