message: PushStyleVar/PopStyleVar: internal tweaks
diff: @@ -4833,7 +4833,7 @@ struct ImGuiStyleVarInfo
  {
  ImGuiDataType Type;
  ImU32 Offset;
  - void* GetVarPtr() const { return (void*)((unsigned char*)&GImGui->Style + Offset); }
  + void* GetVarPtr(ImGuiStyle* style) const { return (void*)((unsigned char*)style + Offset); }
  };
  static const ImGuiStyleVarInfo GStyleVarInfo[ImGuiStyleVar_Count_] =
  @@ -4863,8 +4863,9 @@ void ImGui::PushStyleVar(ImGuiStyleVar idx, float val)
  const ImGuiStyleVarInfo* var_info = GetStyleVarInfo(idx);
  if (var_info->Type == ImGuiDataType_Float)
  {
  - float* pvar = (float*)var_info->GetVarPtr();
  - GImGui->StyleModifiers.push_back(ImGuiStyleMod(idx, *pvar));
  + ImGuiContext& g = *GImGui;
  + float* pvar = (float*)var_info->GetVarPtr(&g.Style);
  + g.StyleModifiers.push_back(ImGuiStyleMod(idx, *pvar));
  *pvar = val;
  return;
  }
  @@ -4876,8 +4877,9 @@ void ImGui::PushStyleVar(ImGuiStyleVar idx, const ImVec2& val)
  const ImGuiStyleVarInfo* var_info = GetStyleVarInfo(idx);
  if (var_info->Type == ImGuiDataType_Float2)
  {
  - ImVec2* pvar = (ImVec2*)var_info->GetVarPtr();
  - GImGui->StyleModifiers.push_back(ImGuiStyleMod(idx, *pvar));
  + ImGuiContext& g = *GImGui;
  + ImVec2* pvar = (ImVec2*)var_info->GetVarPtr(&g.Style);
  + g.StyleModifiers.push_back(ImGuiStyleMod(idx, *pvar));
  *pvar = val;
  return;
  }
  @@ -4891,9 +4893,9 @@ void ImGui::PopStyleVar(int count)
  {
  ImGuiStyleMod& backup = g.StyleModifiers.back();
  const ImGuiStyleVarInfo* info = GetStyleVarInfo(backup.VarIdx);
  - if (info->Type == ImGuiDataType_Float) (*(float*)info->GetVarPtr()) = backup.BackupFloat[0];
  - else if (info->Type == ImGuiDataType_Float2) (*(ImVec2*)info->GetVarPtr()) = ImVec2(backup.BackupFloat[0], backup.BackupFloat[1]);
  - else if (info->Type == ImGuiDataType_Int) (*(int*)info->GetVarPtr()) = backup.BackupInt[0];
  + if (info->Type == ImGuiDataType_Float) (*(float*)info->GetVarPtr(&g.Style)) = backup.BackupFloat[0];
  + else if (info->Type == ImGuiDataType_Float2) (*(ImVec2*)info->GetVarPtr(&g.Style)) = ImVec2(backup.BackupFloat[0], backup.BackupFloat[1]);
  + else if (info->Type == ImGuiDataType_Int) (*(int*)info->GetVarPtr(&g.Style)) = backup.BackupInt[0];
  g.StyleModifiers.pop_back();
  count--;
  }
  