Index: uspace/srv/hid/compositor/compositor.c
===================================================================
--- uspace/srv/hid/compositor/compositor.c	(revision 69c1995350adfe31ce9f6f2a6810575aa43f26bf)
+++ uspace/srv/hid/compositor/compositor.c	(revision e80d8f80769540a1b89ed77cf77e774ce257c705)
@@ -266,5 +266,5 @@
 }
 
-static void comp_coord_from_client(sysarg_t x_in, sysarg_t y_in, transform_t win_trans,
+static void comp_coord_from_client(double x_in, double y_in, transform_t win_trans,
     sysarg_t *x_out, sysarg_t *y_out)
 {
@@ -279,6 +279,6 @@
 }
 
-static void comp_coord_bounding_rect(sysarg_t x_in, sysarg_t y_in,
-    sysarg_t w_in, sysarg_t h_in, transform_t win_trans,
+static void comp_coord_bounding_rect(double x_in, double y_in,
+    double w_in, double h_in, transform_t win_trans,
     sysarg_t *x_out, sysarg_t *y_out, sysarg_t *w_out, sysarg_t *h_out)
 {
@@ -303,4 +303,6 @@
 		(*h_out) = (*h_out) - (*y_out) + 1;
 	} else {
+		(*x_out) = 0;
+		(*y_out) = 0;
 		(*w_out) = 0;
 		(*h_out) = 0;
@@ -547,8 +549,8 @@
 static void comp_window_damage(window_t *win, ipc_callid_t iid, ipc_call_t *icall)
 {
-	sysarg_t x = IPC_GET_ARG1(*icall);
-	sysarg_t y = IPC_GET_ARG2(*icall);
-	sysarg_t width = IPC_GET_ARG3(*icall);
-	sysarg_t height = IPC_GET_ARG4(*icall);
+	double x = IPC_GET_ARG1(*icall);
+	double y = IPC_GET_ARG2(*icall);
+	double width = IPC_GET_ARG3(*icall);
+	double height = IPC_GET_ARG4(*icall);
 
 	if (width == 0 || height == 0) {
@@ -556,8 +558,9 @@
 	} else {
 		fibril_mutex_lock(&window_list_mtx);
+		sysarg_t x_dmg_glob, y_dmg_glob, w_dmg_glob, h_dmg_glob;
 		comp_coord_bounding_rect(x - 1, y - 1, width + 2, height + 2,
-		    win->transform, &x, &y, &width, &height);
+		    win->transform, &x_dmg_glob, &y_dmg_glob, &w_dmg_glob, &h_dmg_glob);
 		fibril_mutex_unlock(&window_list_mtx);
-		comp_damage(x, y, width, height);
+		comp_damage(x_dmg_glob, y_dmg_glob, w_dmg_glob, h_dmg_glob);
 	}
 
