[studio] Make first tab not draw before selected tab when window opens
This commit is contained in:
		@@ -66,7 +66,9 @@ StudioUI::StudioUI(turbine::Context &ctx, ox::StringParam projectDataDir) noexce
 | 
			
		||||
				auto openFileErr = openFileActiveTab(f, config.activeTabItemName == f);
 | 
			
		||||
				if (openFileErr) {
 | 
			
		||||
					oxErrorf("\nCould not open editor for file:\n\t{}\nReason:\n\t{}\n", f, toStr(openFileErr));
 | 
			
		||||
					continue;
 | 
			
		||||
				}
 | 
			
		||||
				m_activeEditor = m_editors.back().value->get();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
@@ -194,19 +196,19 @@ void StudioUI::drawTabBar() noexcept {
 | 
			
		||||
 | 
			
		||||
void StudioUI::drawTabs() noexcept {
 | 
			
		||||
	for (auto it = m_editors.begin(); it != m_editors.end();) {
 | 
			
		||||
		auto const &e = *it;
 | 
			
		||||
		auto const&e = *it;
 | 
			
		||||
		auto open = true;
 | 
			
		||||
		auto const unsavedChanges = e->unsavedChanges() ? ImGuiTabItemFlags_UnsavedDocument : 0;
 | 
			
		||||
		auto const selected = m_activeEditorUpdatePending == e.get() ?  ImGuiTabItemFlags_SetSelected : 0;
 | 
			
		||||
		auto const flags = unsavedChanges | selected;
 | 
			
		||||
		if (ImGui::BeginTabItem(e->itemDisplayName().c_str(), &open, flags)) {
 | 
			
		||||
			if (m_activeEditor != e.get()) {
 | 
			
		||||
			if (m_activeEditor != e.get()) [[unlikely]] {
 | 
			
		||||
				m_activeEditor = e.get();
 | 
			
		||||
				studio::editConfig<StudioConfig>(keelCtx(m_ctx), [&](StudioConfig &config) {
 | 
			
		||||
					config.activeTabItemName = m_activeEditor->itemPath();
 | 
			
		||||
				});
 | 
			
		||||
			}
 | 
			
		||||
			if (m_activeEditorUpdatePending == e.get()) {
 | 
			
		||||
			} else [[likely]] {
 | 
			
		||||
				if (m_activeEditorUpdatePending == e.get()) [[unlikely]] {
 | 
			
		||||
					m_activeEditorUpdatePending = nullptr;
 | 
			
		||||
				}
 | 
			
		||||
				if (m_activeEditorOnLastDraw != e.get()) [[unlikely]] {
 | 
			
		||||
@@ -214,6 +216,7 @@ void StudioUI::drawTabs() noexcept {
 | 
			
		||||
				}
 | 
			
		||||
				e->draw(m_sctx);
 | 
			
		||||
				m_activeEditorOnLastDraw = e.get();
 | 
			
		||||
			}
 | 
			
		||||
			ImGui::EndTabItem();
 | 
			
		||||
		}
 | 
			
		||||
		if (!open) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user