xwm: Set input region for fullscreen surfaces correctly
authorKristian Høgsberg <krh@bitplanet.net>
Thu, 31 Oct 2013 06:46:08 +0000 (23:46 -0700)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 31 Oct 2013 06:46:08 +0000 (23:46 -0700)
The logic here broke at some point so that we would only update the
input region for non-fullscreen windows.  Thus, a fullscreen window would
be stuck with whatever size the most recent non-fullscreen size was.

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

src/xwayland/window-manager.c

index 9c500e1..b2776a0 100644 (file)
@@ -961,12 +961,19 @@ weston_wm_window_draw_decoration(void *data)
                }
                if (window->view)
                        weston_view_geometry_dirty(window->view);
-       }
 
-       if (window->surface && !window->fullscreen) {
                pixman_region32_fini(&window->surface->pending.input);
-               frame_input_rect(window->frame, &input_x, &input_y,
-                                &input_w, &input_h);
+
+               if (window->fullscreen) {
+                       input_x = 0;
+                       input_y = 0;
+                       input_w = window->width;
+                       input_h = window->height;
+               } else if (window->decorate) {
+                       frame_input_rect(window->frame, &input_x, &input_y,
+                                        &input_w, &input_h);
+               }
+
                pixman_region32_init_rect(&window->surface->pending.input,
                                          input_x, input_y, input_w, input_h);
        }