|
@@ -2193,6 +2193,7 @@ void ImGui::TableBeginCell(ImGuiTable* table, int column_n)
|
|
|
g.LastItemData.StatusFlags = 0;
|
|
|
}
|
|
|
|
|
|
+ // Also see TablePushColumnChannel()
|
|
|
if (table->Flags & ImGuiTableFlags_NoClip)
|
|
|
{
|
|
|
// FIXME: if we end up drawing all borders/bg in EndTable, could remove this and just assert that channel hasn't changed.
|
|
@@ -2466,10 +2467,38 @@ void ImGui::TablePopBackgroundChannel()
|
|
|
ImGuiContext& g = *GImGui;
|
|
|
ImGuiWindow* window = g.CurrentWindow;
|
|
|
ImGuiTable* table = g.CurrentTable;
|
|
|
- ImGuiTableColumn* column = &table->Columns[table->CurrentColumn];
|
|
|
|
|
|
// Optimization: avoid PopClipRect() + SetCurrentChannel()
|
|
|
SetWindowClipRectBeforeSetChannel(window, table->HostBackupInnerClipRect);
|
|
|
+ table->DrawSplitter->SetCurrentChannel(window->DrawList, table->Columns[table->CurrentColumn].DrawChannelCurrent);
|
|
|
+}
|
|
|
+
|
|
|
+// Also see TableBeginCell()
|
|
|
+void ImGui::TablePushColumnChannel(int column_n)
|
|
|
+{
|
|
|
+ ImGuiContext& g = *GImGui;
|
|
|
+ ImGuiTable* table = g.CurrentTable;
|
|
|
+
|
|
|
+ // Optimization: avoid SetCurrentChannel() + PushClipRect()
|
|
|
+ if (table->Flags & ImGuiTableFlags_NoClip)
|
|
|
+ return;
|
|
|
+ ImGuiWindow* window = g.CurrentWindow;
|
|
|
+ const ImGuiTableColumn* column = &table->Columns[column_n];
|
|
|
+ SetWindowClipRectBeforeSetChannel(window, column->ClipRect);
|
|
|
+ table->DrawSplitter->SetCurrentChannel(window->DrawList, column->DrawChannelCurrent);
|
|
|
+}
|
|
|
+
|
|
|
+void ImGui::TablePopColumnChannel()
|
|
|
+{
|
|
|
+ ImGuiContext& g = *GImGui;
|
|
|
+ ImGuiTable* table = g.CurrentTable;
|
|
|
+
|
|
|
+ // Optimization: avoid PopClipRect() + SetCurrentChannel()
|
|
|
+ if (table->Flags & ImGuiTableFlags_NoClip)
|
|
|
+ return;
|
|
|
+ ImGuiWindow* window = g.CurrentWindow;
|
|
|
+ const ImGuiTableColumn* column = &table->Columns[table->CurrentColumn];
|
|
|
+ SetWindowClipRectBeforeSetChannel(window, column->ClipRect);
|
|
|
table->DrawSplitter->SetCurrentChannel(window->DrawList, column->DrawChannelCurrent);
|
|
|
}
|
|
|
|