window.c: Fix SIGSEGV in pointer_handle_motion
Move null pointer check and assignments before first window dereference.
diff --git a/clients/window.c b/clients/window.c
index cee436c..4f63132 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -2904,6 +2904,12 @@
float sx = wl_fixed_to_double(sx_w);
float sy = wl_fixed_to_double(sy_w);
+ input->sx = sx;
+ input->sy = sy;
+
+ if (!window)
+ return;
+
/* when making the window smaller - e.g. after a unmaximise we might
* still have a pending motion event that the compositor has picked
* based on the old surface dimensions
@@ -2912,12 +2918,6 @@
sy > window->main_surface->allocation.height)
return;
- input->sx = sx;
- input->sy = sy;
-
- if (!window)
- return;
-
if (!(input->grab && input->grab_button)) {
widget = window_find_widget(window, sx, sy);
input_set_focus_widget(input, widget, sx, sy);