diff --git a/css/window.css b/css/window.css index 24e902d6..2f5149e4 100644 --- a/css/window.css +++ b/css/window.css @@ -643,6 +643,8 @@ overflow-x: auto; overflow-y: hidden; margin-right: auto; + scrollbar-width: none; + scroll-behavior: smooth; } #tab_bar .project_tab { cursor: pointer; diff --git a/index.html b/index.html index 539622b4..f97f505d 100644 --- a/index.html +++ b/index.html @@ -236,7 +236,7 @@
-
+
{ return (a.modes ? modes.indexOf(a.modes[0]) : -1) - (b.modes ? modes.indexOf(b.modes[0]) : -1); }) - let mode = tools[0].modes[0]; + let mode = tools[0].modes?.[0]; for (let i = 0; i < tools.length; i++) { - if (tools[i].modes[0] !== mode) { - mode = tools[i].modes[0]; + if (tools[i].modes?.[0] !== mode) { + mode = tools[i].modes?.[0]; tools.splice(i, 0, '_'); i++; } diff --git a/js/io/formats/bbmodel.js b/js/io/formats/bbmodel.js index d4990020..3d7c9d89 100644 --- a/js/io/formats/bbmodel.js +++ b/js/io/formats/bbmodel.js @@ -313,7 +313,9 @@ var codec = new Codec('project', { for (var key in ModelProject.properties) { ModelProject.properties[key].merge(Project, model) } - if (path) Project.name = pathToName(path, false); + if (path && path != 'backup.bbmodel') { + Project.name = pathToName(path, false); + } if (model.overrides) { Project.overrides = model.overrides; diff --git a/js/io/project.js b/js/io/project.js index 3ca5e357..18f4868a 100644 --- a/js/io/project.js +++ b/js/io/project.js @@ -946,6 +946,12 @@ onVueSetup(() => { delete this.thumbnail_timeout; }, 80) } + }, + mousewheelBar(event) { + if (event.deltaY) { + event.preventDefault(); + this.$refs.tab_bar_list.scrollLeft += event.deltaY; + } } }, watch: { diff --git a/js/texturing/uv.js b/js/texturing/uv.js index e9982786..ee8ab11f 100644 --- a/js/texturing/uv.js +++ b/js/texturing/uv.js @@ -620,9 +620,11 @@ const UVEditor = { }, loadViewportOffset() { let uv_viewport = this.vue.$refs.viewport; - if (!uv_viewport) return; + if (!uv_viewport || !Project) return; UVEditor.setZoom(Project.uv_viewport.zoom); + let project = Project; Vue.nextTick(() => { + if (!Project || project != Project) return; uv_viewport.scrollLeft = Project.uv_viewport.offset[0] * this.vue.inner_width + this.width/2; uv_viewport.scrollTop = Project.uv_viewport.offset[1] * this.vue.inner_height + this.height/2; })