From 067588845bd653888433d8d5c73a5187bb10627d Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Tue, 29 Dec 2020 22:00:02 +0900
Subject: [PATCH] UI tweaks

---
 src/client/components/ui/button.vue   |  2 +-
 src/client/pages/timeline.vue         |  3 +++
 src/client/ui/deck/main-column.vue    | 19 ++++++++++++++++++-
 src/client/ui/deck/widgets-column.vue |  4 +++-
 4 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/src/client/components/ui/button.vue b/src/client/components/ui/button.vue
index 05ef9a76c6..3901e8ae44 100644
--- a/src/client/components/ui/button.vue
+++ b/src/client/components/ui/button.vue
@@ -123,7 +123,7 @@ export default defineComponent({
 	box-shadow: none;
 	text-decoration: none;
 	background: var(--buttonBg);
-	border-radius: 8px;
+	border-radius: 999px;
 	overflow: hidden;
 
 	&:not(:disabled):hover {
diff --git a/src/client/pages/timeline.vue b/src/client/pages/timeline.vue
index 3d753997e4..cb3ec2a7ef 100644
--- a/src/client/pages/timeline.vue
+++ b/src/client/pages/timeline.vue
@@ -232,6 +232,9 @@ export default defineComponent({
 			white-space: nowrap;
 			overflow: auto;
 
+			// 影の都合上
+			position: relative;
+
 			> .right {
 				margin-left: auto;
 			}
diff --git a/src/client/ui/deck/main-column.vue b/src/client/ui/deck/main-column.vue
index f652b01f6e..a4f1de44f0 100644
--- a/src/client/ui/deck/main-column.vue
+++ b/src/client/ui/deck/main-column.vue
@@ -7,7 +7,7 @@
 	<router-view v-slot="{ Component }">
 		<transition>
 			<keep-alive :include="['timeline']">
-				<component :is="Component" :ref="changePage"/>
+				<component :is="Component" :ref="changePage" @contextmenu.stop="onContextmenu"/>
 			</keep-alive>
 		</transition>
 	</router-view>
@@ -16,10 +16,12 @@
 
 <script lang="ts">
 import { defineComponent } from 'vue';
+import { faWindowMaximize } from '@fortawesome/free-solid-svg-icons';
 import XColumn from './column.vue';
 import XNotes from '@/components/notes.vue';
 import XHeader from '@/ui/_common_/header.vue';
 import { deckStore } from '@/ui/deck/deck-store';
+import * as os from '@/os';
 
 export default defineComponent({
 	components: {
@@ -54,6 +56,21 @@ export default defineComponent({
 				this.pageInfo = page.INFO;
 			}
 		},
+
+		onContextmenu(e) {
+			if (['INPUT', 'TEXTAREA'].includes(e.target.tagName) || e.target.attributes['contenteditable']) return;
+			const path = this.$route.path;
+			os.contextMenu([{
+				type: 'label',
+				text: path,
+			}, {
+				icon: faWindowMaximize,
+				text: this.$ts.openInWindow,
+				action: () => {
+					os.pageWindow(path);
+				}
+			}], e);
+		},
 	}
 });
 </script>
diff --git a/src/client/ui/deck/widgets-column.vue b/src/client/ui/deck/widgets-column.vue
index 32dab4d866..5cf7dde26f 100644
--- a/src/client/ui/deck/widgets-column.vue
+++ b/src/client/ui/deck/widgets-column.vue
@@ -114,7 +114,9 @@ export default defineComponent({
 
 <style lang="scss" scoped>
 .wtdtxvec {
-	padding-top: 1px; // ウィジェットのbox-shadowを利用した1px borderを隠さないようにするため
+	._panel {
+		box-shadow: none;
+	}
 
 	> header {
 		padding: 16px;