Unpin preview with middle click
This commit is contained in:
		
							parent
							
								
									34cb62b1ad
								
							
						
					
					
						commit
						ac52f30679
					
				| @ -1,7 +1,13 @@ | ||||
| # Changelog | ||||
| 
 | ||||
| ## 1.12.0 | ||||
| *   Post length preference is now part of the profile match score | ||||
| *   Improved kink match scoring | ||||
| *   Middle click a link to pin or unpin preview | ||||
| 
 | ||||
| 
 | ||||
| ## 1.11.0 | ||||
| *   Kinks are now part of the profile matching score | ||||
| *   Kinks are now part of the profile match score | ||||
| *   Merged with the latest official F-Chat codebase | ||||
| *   Fixed broken `[collapse]` when wrapped in `[heading]` | ||||
| 
 | ||||
|  | ||||
| @ -93,6 +93,7 @@ This repository contains a heavily customized version of the mainline F-Chat 3.0 | ||||
|    *   Sexual preference | ||||
|    *   Dominance preference | ||||
|    *   Human/anthro preference | ||||
|    *   Post length preference | ||||
|    *   Non-custom kinks | ||||
|    *   Species | ||||
| 1. Maching for non-binary genders relies on kinks. For example, if your non-binary character has a preference for females, make sure 'females' are listed as a favorite kink. | ||||
|  | ||||
| @ -5,7 +5,7 @@ | ||||
|   @mouseover.prevent="show()" | ||||
|   @mouseenter.prevent="show()" | ||||
|   @mouseleave.prevent="dismiss()" | ||||
|   @click.middle.prevent="toggleStickyness()" | ||||
|   @click.middle.prevent.stop="toggleStickyness()" | ||||
|   @click.right.passive="dismiss(true)" | ||||
|   @click.left.passive="dismiss(true)" | ||||
|   ><img :src="`${Utils.staticDomain}images/avatar/${character.toLowerCase()}.png`" class="character-avatar icon" :title="character" :alt="character" v-once></a> | ||||
|  | ||||
| @ -11,7 +11,7 @@ | ||||
|             @mouseover.prevent="show()" | ||||
|             @mouseenter.prevent="show()" | ||||
|             @mouseleave.prevent="dismiss()" | ||||
|             @click.middle.prevent="toggleStickyness()" | ||||
|             @click.middle.prevent.stop="toggleStickyness()" | ||||
|         >{{text}}</a> | ||||
|         <span | ||||
|             class="link-domain bbcode-pseudo" | ||||
|  | ||||
| @ -20,7 +20,7 @@ | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|         <chat v-else></chat> | ||||
|         <chat ref="chatview" v-else></chat> | ||||
|         <modal :action="l('chat.disconnected.title')" :buttonText="l('action.cancel')" ref="reconnecting" @submit="cancelReconnect" | ||||
|             :showCancel="false" buttonClass="btn-danger"> | ||||
|             <div class="alert alert-danger" v-show="error">{{error}}</div> | ||||
| @ -220,6 +220,10 @@ | ||||
| 
 | ||||
|             core.connection.connect(this.selectedCharacter.name); | ||||
|         } | ||||
| 
 | ||||
|         getChatView(): ChatView | undefined { | ||||
|           return this.$refs['chatview'] as ChatView; | ||||
|         } | ||||
|     } | ||||
| </script> | ||||
| 
 | ||||
|  | ||||
| @ -34,7 +34,7 @@ | ||||
|                 <a v-for="conversation in conversations.privateConversations" href="#" @click.prevent="conversation.show()" | ||||
|                     :class="getClasses(conversation)" :data-character="conversation.character.name" data-touch="false" | ||||
|                     class="list-group-item list-group-item-action item-private" :key="conversation.key" | ||||
|                     @click.middle.prevent="conversation.close()"> | ||||
|                     @click.middle.prevent.stop="conversation.close()"> | ||||
|                     <img :src="characterImage(conversation.character.name)" v-if="showAvatars"/> | ||||
|                     <div class="name"> | ||||
|                         <span>{{conversation.character.name}}</span> | ||||
| @ -54,7 +54,7 @@ | ||||
|             <div class="list-group conversation-nav" ref="channelConversations"> | ||||
|                 <a v-for="conversation in conversations.channelConversations" href="#" @click.prevent="conversation.show()" | ||||
|                     :class="getClasses(conversation)" class="list-group-item list-group-item-action item-channel" :key="conversation.key" | ||||
|                     @click.middle.prevent="conversation.close()"> | ||||
|                     @click.middle.prevent.stop="conversation.close()"> | ||||
|                     <span class="name">{{conversation.name}}</span> | ||||
|                     <span> | ||||
|                         <span v-if="conversation.hasAutomatedAds()" class="fas fa-ad" :class="{'active': conversation.isSendingAutomatedAds()}" aria-label="Toggle ads" | ||||
| @ -129,6 +129,7 @@ | ||||
|     import PrivateConversation = Conversation.PrivateConversation; | ||||
|     import * as _ from 'lodash'; | ||||
|     import NoteStatus from '../site/NoteStatus.vue'; | ||||
|     // import { EventBus } from './preview/event-bus'; | ||||
| 
 | ||||
|     const unreadClasses = { | ||||
|         [Conversation.UnreadState.None]: '', | ||||
| @ -366,6 +367,10 @@ | ||||
|         isColorblindModeActive(): boolean { | ||||
|           return core.state.settings.risingColorblindMode; | ||||
|         } | ||||
| 
 | ||||
|         getImagePreview(): ImagePreview | undefined { | ||||
|           return this.$refs['imagePreview'] as ImagePreview; | ||||
|         } | ||||
|     } | ||||
| </script> | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| <!-- Linebreaks inside this template will break BBCode views --> | ||||
| <template><span :class="userClass" v-bind:bbcodeTag.prop="'user'" v-bind:character.prop="character" v-bind:channel.prop="channel" @mouseover.prevent="show()" @mouseenter.prevent="show()" @mouseleave.prevent="dismiss()" @click.middle.prevent="toggleStickyness()" @click.right.passive="dismiss(true)" @click.left.passive="dismiss(true)"><span v-if="!!statusClass" :class="statusClass"></span><span v-if="!!rankIcon" :class="rankIcon"></span>{{character.name}}<span v-if="!!matchClass" :class="matchClass">{{getMatchScoreTitle(matchScore)}}</span></span></template> | ||||
| <template><span :class="userClass" v-bind:bbcodeTag.prop="'user'" v-bind:character.prop="character" v-bind:channel.prop="channel" @mouseover.prevent="show()" @mouseenter.prevent="show()" @mouseleave.prevent="dismiss()" @click.middle.prevent.stop="toggleStickyness()" @click.right.passive="dismiss(true)" @click.left.passive="dismiss(true)"><span v-if="!!statusClass" :class="statusClass"></span><span v-if="!!rankIcon" :class="rankIcon"></span>{{character.name}}<span v-if="!!matchClass" :class="matchClass">{{getMatchScoreTitle(matchScore)}}</span></span></template> | ||||
| 
 | ||||
| 
 | ||||
| <script lang="ts"> | ||||
|  | ||||
| @ -169,8 +169,16 @@ | ||||
| 
 | ||||
|                     const eventUrl = this.jsMutator.mutateUrl(this.negotiateUrl(eventData.url as string || '')); | ||||
| 
 | ||||
|                     if ((this.url === eventUrl) && (this.visible)) | ||||
|                     if ( | ||||
|                       ((eventData.force === true) || (this.url === eventUrl)) | ||||
|                       && (this.visible) | ||||
|                     ) { | ||||
|                         this.sticky = !this.sticky; | ||||
| 
 | ||||
|                         if (eventData.force) { | ||||
|                           this.hide(); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             ); | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <div @mouseover="onMouseOver" id="page" style="position:relative;padding:5px 10px 10px" :class="getThemeClass()" @auxclick.prevent> | ||||
|     <div @mouseover="onMouseOver" id="page" style="position:relative;padding:5px 10px 10px" :class="getThemeClass()" @auxclick.prevent @click.middle="unpinUrlPreview"> | ||||
|         <div v-html="styling"></div> | ||||
|         <div v-if="!characters" style="display:flex; align-items:center; justify-content:center; height: 100%;"> | ||||
|             <div class="card bg-light" style="width: 400px;"> | ||||
| @ -138,6 +138,7 @@ | ||||
| 
 | ||||
|     import BBCodeTester from '../bbcode/Tester.vue'; | ||||
| 
 | ||||
|     // import ImagePreview from '../chat/preview/ImagePreview.vue'; | ||||
|     // import Bluebird from 'bluebird'; | ||||
|     // import Connection from '../fchat/connection'; | ||||
|     // import Notifications from './notifications'; | ||||
| @ -555,6 +556,21 @@ | ||||
|         async openDefinitionWithWikipedia(): Promise<void> { | ||||
|           (this.$refs.wordDefinitionLookup as any).setMode('wikipedia'); | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         unpinUrlPreview(e: Event): void { | ||||
|           const imagePreview = (this.$refs['chat'] as Chat)?.getChatView()?.getImagePreview(); | ||||
| 
 | ||||
|           // const imagePreview = this.$refs['imagePreview'] as ImagePreview; | ||||
| 
 | ||||
|           if ((imagePreview) && (imagePreview.isVisible()) && (imagePreview.sticky)) { | ||||
|             e.stopPropagation(); | ||||
|             e.preventDefault(); | ||||
| 
 | ||||
|             EventBus.$emit('imagepreview-toggle-stickyness', {force: true}); | ||||
|           } | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| </script> | ||||
| 
 | ||||
|  | ||||
| @ -94,7 +94,7 @@ | ||||
|         async mounted(): Promise<void> { | ||||
|             log.debug('init.window.mounting'); | ||||
|             // top bar devtools | ||||
|             browserWindow.webContents.openDevTools({ mode: 'detach' }); | ||||
|             // browserWindow.webContents.openDevTools({ mode: 'detach' }); | ||||
| 
 | ||||
|             updateSupportedLanguages(browserWindow.webContents.session.availableSpellCheckerLanguages); | ||||
| 
 | ||||
| @ -262,7 +262,7 @@ | ||||
|             ); | ||||
| 
 | ||||
|             // tab devtools | ||||
|             view.webContents.openDevTools(); | ||||
|             // view.webContents.openDevTools(); | ||||
| 
 | ||||
|             // console.log('ADD TAB LANGUAGES', getSafeLanguages(this.settings.spellcheckLang), this.settings.spellcheckLang); | ||||
|             view.webContents.session.setSpellCheckerLanguages(getSafeLanguages(this.settings.spellcheckLang)); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user