Browse Source

Revert "LibGfx: Implement alternative `Rect` right/bottom edge calculations"

This reverts commit 88a7bb5ba7919ccd76839607891e4331868d2e5a.
Andreas Kling 2 years ago
parent
commit
9ce7681ff2
1 changed files with 13 additions and 37 deletions
  1. 13 37
      Userland/Libraries/LibGfx/Rect.h

+ 13 - 37
Userland/Libraries/LibGfx/Rect.h

@@ -353,54 +353,30 @@ public:
         return right();
     }
 
-    // FIXME: for integral types of T, we assume that the right/bottom edges are offset by minus one.
-    //        Although there are cases where this makes sense, for consistency it would be best if we
-    //        can drop the `- 1` altogether and not specialize these methods.
     [[nodiscard]] ALWAYS_INLINE T left() const { return x(); }
-    [[nodiscard]] ALWAYS_INLINE T right() const
-    requires(IsIntegral<T>)
-    {
-        return x() + width() - 1;
-    }
-    [[nodiscard]] ALWAYS_INLINE T right() const
-    requires(!IsIntegral<T>)
-    {
-        return x() + width();
-    }
+    [[nodiscard]] ALWAYS_INLINE T right() const { return x() + width() - 1; }
     [[nodiscard]] ALWAYS_INLINE T top() const { return y(); }
-    [[nodiscard]] ALWAYS_INLINE T bottom() const
-    requires(IsIntegral<T>)
+    [[nodiscard]] ALWAYS_INLINE T bottom() const { return y() + height() - 1; }
+
+    ALWAYS_INLINE void set_left(T left)
     {
-        return y() + height() - 1;
+        set_x(left);
     }
-    [[nodiscard]] ALWAYS_INLINE T bottom() const
-    requires(!IsIntegral<T>)
+
+    ALWAYS_INLINE void set_top(T top)
     {
-        return y() + height();
+        set_y(top);
     }
 
-    ALWAYS_INLINE void set_left(T left) { set_x(left); }
     ALWAYS_INLINE void set_right(T right)
-    requires(IsIntegral<T>)
     {
         set_width(right - x() + 1);
     }
-    ALWAYS_INLINE void set_right(T right)
-    requires(!IsIntegral<T>)
-    {
-        set_width(right - x());
-    }
-    ALWAYS_INLINE void set_top(T top) { set_y(top); }
+
     ALWAYS_INLINE void set_bottom(T bottom)
-    requires(IsIntegral<T>)
     {
         set_height(bottom - y() + 1);
     }
-    ALWAYS_INLINE void set_bottom(T bottom)
-    requires(!IsIntegral<T>)
-    {
-        set_height(bottom - y());
-    }
 
     void set_right_without_resize(T new_right)
     {
@@ -529,10 +505,10 @@ public:
             return;
         }
 
-        set_x(l);
-        set_y(t);
-        set_right(r);
-        set_bottom(b);
+        m_location.set_x(l);
+        m_location.set_y(t);
+        m_size.set_width((r - l) + 1);
+        m_size.set_height((b - t) + 1);
     }
 
     [[nodiscard]] static Rect<T> centered_on(Point<T> const& center, Size<T> const& size)