window.c: Don't put buttons on frames for custom windows
authorKristian Høgsberg <krh@bitplanet.net>
Tue, 31 Dec 2013 23:35:39 +0000 (15:35 -0800)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 31 Dec 2013 23:35:51 +0000 (15:35 -0800)
Custom windows don't have a wl_shell_surface and can't do anything in
response to these button (except crash).  This only affects the unlock
dialog.

https://bugs.freedesktop.org/show_bug.cgi?id=72542

clients/window.c

index 43761ca..d586244 100644 (file)
@@ -2467,10 +2467,17 @@ struct widget *
 window_frame_create(struct window *window, void *data)
 {
        struct window_frame *frame;
+       uint32_t buttons;
+
+       if (window->type == TYPE_CUSTOM) {
+               buttons = FRAME_BUTTON_NONE;
+       } else {
+               buttons = FRAME_BUTTON_ALL;
+       }
 
        frame = xzalloc(sizeof *frame);
        frame->frame = frame_create(window->display->theme, 0, 0,
-                                   FRAME_BUTTON_ALL, window->title);
+                                   buttons, window->title);
 
        frame->widget = window_add_widget(window, frame);
        frame->child = widget_add_widget(frame->widget, data);