Renamed IsRectClipped to IsRectVisible for consistency. Note that return value is opposite! Kept inline redirection function (will obsolete)
diff --git a/imgui.cpp b/imgui.cpp
index db77e16..28a8f5c 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -136,6 +136,7 @@
Occasionally introducing changes that are breaking the API. The breakage are generally minor and easy to fix.
Here is a change-log of API breaking changes, if you are using one of the functions listed, expect to have to fix some code.
+ - 2015/05/31 (1.39) - renamed IsRectClipped to IsRectVisible for consistency. Note that return value is opposite! Kept inline redirection function (will obsolete).
- 2015/05/27 (1.39) - removed the third 'repeat_if_held' parameter from Button() - sorry! it was rarely used and inconsistent. Use PushButtonRepeat(true) / PopButtonRepeat() to enable repeat on desired buttons.
- 2015/05/11 (1.39) - changed BeginPopup() API, takes a string identifier instead of a bool. ImGui needs to manage the open/closed state of popups. Call OpenPopup() to actually set the "opened" state of a popup. BeginPopup() returns true if the popup is opened.
- 2015/05/03 (1.39) - removed style.AutoFitPadding, using style.WindowPadding makes more sense (the default values were already the same).
@@ -8042,10 +8043,11 @@
return false;
}
-bool ImGui::IsRectClipped(const ImVec2& size)
+bool ImGui::IsRectVisible(const ImVec2& size)
{
ImGuiWindow* window = GetCurrentWindow();
- return IsClippedEx(ImRect(window->DC.CursorPos, window->DC.CursorPos + size), NULL, true);
+ ImRect r(window->ClipRectStack.back());
+ return r.Overlaps(ImRect(window->DC.CursorPos, window->DC.CursorPos + size));
}
// Declare item bounding box for clipping and interaction.
diff --git a/imgui.h b/imgui.h
index fad8984..3ddb05a 100644
--- a/imgui.h
+++ b/imgui.h
@@ -344,9 +344,9 @@
IMGUI_API ImVec2 GetItemRectMax(); // "
IMGUI_API ImVec2 GetItemRectSize(); // "
IMGUI_API bool IsWindowFocused(); // is current window focused (differentiate child windows from each others)
- IMGUI_API bool IsRootWindowFocused(); // is current root window focused
+ IMGUI_API bool IsRootWindowFocused(); // is current root window focused (top parent window in case of child windows)
IMGUI_API bool IsRootWindowOrAnyChildFocused(); // is current root window or any of its child (including current window) focused
- IMGUI_API bool IsRectClipped(const ImVec2& size); // test if rectangle of given size starting from cursor pos is out of clipping region. to perform coarse clipping on user's side (as an optimization)
+ IMGUI_API bool IsRectVisible(const ImVec2& size); // test if rectangle of given size starting from cursor pos is visible (not clipped). to perform coarse clipping on user's side (as an optimization)
IMGUI_API bool IsKeyDown(int key_index); // key_index into the keys_down[512] array, imgui doesn't know the semantic of each entry
IMGUI_API bool IsKeyPressed(int key_index, bool repeat = true); // "
IMGUI_API bool IsMouseDown(int button);
@@ -392,7 +392,8 @@
static inline bool GetWindowIsFocused() { return ImGui::IsWindowFocused(); } // OBSOLETE
static inline ImVec2 GetItemBoxMin() { return GetItemRectMin(); } // OBSOLETE
static inline ImVec2 GetItemBoxMax() { return GetItemRectMax(); } // OBSOLETE
- static inline bool IsClipped(const ImVec2& size) { return IsRectClipped(size); } // OBSOLETE
+ static inline bool IsClipped(const ImVec2& size) { return !IsRectVisible(size); } // OBSOLETE
+ static inline bool IsRectClipped(const ImVec2& size) { return !IsRectVisible(size); } // OBSOLETE
static inline bool IsMouseHoveringBox(const ImVec2& rect_min, const ImVec2& rect_max) { return IsMouseHoveringRect(rect_min, rect_max); } // OBSOLETE
} // namespace ImGui