[PATCH xserver 3/3] xfree86/modes: Simplify in_range logic in xf86_crtc_set_cursor_position

Michel Dänzer michel at daenzer.net
Fri Mar 25 10:12:36 UTC 2016


From: Michel Dänzer <michel.daenzer at amd.com>

Consolidate to a single if/else statement and eliminate the redundant
local variable in_range and assignments to x/y.

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 hw/xfree86/modes/xf86Cursors.c | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c
index 729f927..14ae89f 100644
--- a/hw/xfree86/modes/xf86Cursors.c
+++ b/hw/xfree86/modes/xf86Cursors.c
@@ -395,7 +395,6 @@ xf86_crtc_set_cursor_position(xf86CrtcPtr crtc, int x, int y)
     xf86CursorInfoPtr cursor_info = xf86_config->cursor_info;
     DisplayModePtr mode = &crtc->mode;
     int crtc_x = x, crtc_y = y;
-    Bool in_range;
 
     /*
      * Transform position of cursor on screen
@@ -410,25 +409,18 @@ xf86_crtc_set_cursor_position(xf86CrtcPtr crtc, int x, int y)
     /*
      * Disable the cursor when it is outside the viewport
      */
-    in_range = TRUE;
     if (crtc_x >= mode->HDisplay || crtc_y >= mode->VDisplay ||
         crtc_x <= -cursor_info->MaxWidth || crtc_y <= -cursor_info->MaxHeight) {
-        in_range = FALSE;
-        x = 0;
-        y = 0;
-    }
-
-    crtc->cursor_in_range = in_range;
-
-    if (in_range) {
+        crtc->cursor_in_range = FALSE;
+        xf86_crtc_hide_cursor(crtc);
+    } else {
+        crtc->cursor_in_range = TRUE;
         if (crtc->driverIsPerformingTransform & XF86DriverTransformCursorPosition)
             crtc->funcs->set_cursor_position(crtc, x, y);
         else
             crtc->funcs->set_cursor_position(crtc, crtc_x, crtc_y);
         xf86_crtc_show_cursor(crtc);
     }
-    else
-        xf86_crtc_hide_cursor(crtc);
 }
 
 static void
-- 
2.8.0.rc3



More information about the xorg-devel mailing list