Skip to content

Commit 5c00be4

Browse files
committed
staticPosition
1 parent c665f6d commit 5c00be4

File tree

3 files changed

+51
-17
lines changed

3 files changed

+51
-17
lines changed

searchJumper.user.js

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2233,7 +2233,7 @@
22332233
#search-jumper #search-jumper-alllist.new-mode .sitelist a+p>span:hover {
22342234
background: rgb(160 160 160 / 20%);
22352235
}
2236-
#search-jumper #search-jumper-alllist.new-mode .sitelist a:hover>img {
2236+
#search-jumper #search-jumper-alllist.new-mode .sitelist a:hover>div>img {
22372237
transform: scale(1.1);
22382238
}
22392239
#search-jumper #search-jumper-alllist.new-mode .sitelistCon>div:hover>p {
@@ -2651,6 +2651,9 @@
26512651
background-image: initial;
26522652
filter: drop-shadow(1px 1px 3px #00000030);
26532653
}
2654+
.search-jumper-btn[data-disable] {
2655+
opacity: 0.5;
2656+
}
26542657
#search-jumper.funcKeyCall .search-jumper-btn {
26552658
padding: ${1 * this.tilesZoom}px!important;
26562659
margin: ${3 * this.tilesZoom}px!important;
@@ -9532,6 +9535,14 @@
95329535
let shownSitesNum = 0;
95339536
let baseSize = this.scale * 40;
95349537
let taggleHide = (se, show) => {
9538+
if (searchData.prefConfig.staticPosition) {
9539+
if (show) {
9540+
delete se.dataset.disable;
9541+
} else {
9542+
se.dataset.disable = 'true';
9543+
}
9544+
return;
9545+
}
95359546
if (show) {
95369547
se.style.display = '';
95379548
if (ele.children.length > 2) ele.insertBefore(se, ele.children[2]);
@@ -9858,14 +9869,7 @@
98589869

98599870
if (data && localKeywords && data.kwFilter) {
98609871
let pass = self.checkKwFilter(data.kwFilter, localKeywords);
9861-
if (pass) {
9862-
se.style.display = '';
9863-
} else {
9864-
se.style.display = 'none';
9865-
if (self.searchJumperExpand.parentNode == ele) {
9866-
ele.insertBefore(se, self.searchJumperExpand);
9867-
} else ele.appendChild(se);
9868-
}
9872+
taggleHide(se, pass);
98699873
}
98709874
if (se.style.display != 'none' && si && !si.src && si.dataset.src) {
98719875
if (shownIconNum >= 0 && !/^data/.test(si.dataset.src)) {
@@ -11055,6 +11059,7 @@
1105511059
let clicked = false;
1105611060
let alt, ctrl, meta, shift;
1105711061
let action = async e => {
11062+
if (ele.dataset.disable) return;
1105811063
delete ele.href;
1105911064
if (!e) e = {};
1106011065
alt = e.altKey;
@@ -11213,6 +11218,7 @@
1121311218
};
1121411219
let clickHandler = e => {
1121511220
e && e.stopPropagation && e.stopPropagation();
11221+
if (ele.dataset.disable) return;
1121611222
if (targetElement) {
1121711223
targetElement.focus && targetElement.focus();
1121811224
}
@@ -11625,6 +11631,7 @@
1162511631
}
1162611632
};
1162711633
let showTipsHandler = async (target, time = 1000) => {
11634+
if (ele.dataset.disable) return;
1162811635
if (!target || target.nodeType !== 1) return;
1162911636
if (self.preList) {
1163011637
self.preList.style.visibility = "hidden";
@@ -11704,6 +11711,7 @@
1170411711
};
1170511712
ele.addEventListener('mouseenter', e => {
1170611713
if (e.stopPropagation) e.stopPropagation();
11714+
if (ele.dataset.disable) return;
1170711715
if (tipsShowing && self.lastTips === ele && self.tips.style.opacity == 1) {
1170811716
return;
1170911717
}
@@ -11725,10 +11733,12 @@
1172511733
showTipsHandler(ele);
1172611734
}, true);
1172711735
ele.addEventListener('mousemove', e => {
11736+
if (ele.dataset.disable) return;
1172811737
scaleMove(e);
1172911738
self.clingPos(ele, self.tips);
1173011739
}, false);
1173111740
ele.addEventListener('showTips', e => {
11741+
if (ele.dataset.disable) return;
1173211742
self.waitForHide(0);
1173311743
self.appendBar();
1173411744
self.closeOpenType();
@@ -11737,6 +11747,7 @@
1173711747
showTipsHandler(e.detail || targetElement, 0);
1173811748
}, false);
1173911749
ele.addEventListener('mouseleave', e => {
11750+
if (ele.dataset.disable) return;
1174011751
if (!tipsShowing) {
1174111752
self.tips.style.opacity = 0;
1174211753
self.tips.style.pointerEvents = '';
@@ -14591,6 +14602,7 @@
1459114602
}, { passive: false, capture: false });
1459214603

1459314604
searchBar.bar.addEventListener(getSupportWheelEventName(), e => {
14605+
e.stopPropagation();
1459414606
if (e.target.parentNode && (e.target.parentNode.className == "sitelistCon" ||
1459514607
(e.target.parentNode.parentNode && e.target.parentNode.parentNode.className == "sitelistCon"))) return;
1459614608
let targetClassList = searchBar.con.classList;
@@ -14621,7 +14633,6 @@
1462114633
deltaY = e.deltaY;
1462214634
}
1462314635
e.preventDefault();
14624-
e.stopPropagation();
1462514636

1462614637
searchBar.con.scrollLeft += deltaY;
1462714638
}, { passive: false, capture: false });

src/index.js

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,8 @@ window.setLang = (_lang) => {
204204
historyLengthTips: '在默认展开的分组末尾插入数个最近访问的站点',
205205
historyInsertFirst: '将历史站点插入到分组开头',
206206
historyInsertFirstTips: '将最近访问的站点插入到分组开头,否则插入到末尾',
207+
staticPosition: '保持引擎位置',
208+
staticPositionTips: '保持引擎位置,不将激活的引擎提前到分组前面',
207209
shiftLastUsedType: '前移上次使用的分组',
208210
shiftLastUsedTypeTips: '将上次使用的分组前移至当前分组之后',
209211
sortType: '自动排序分组',
@@ -557,6 +559,8 @@ window.setLang = (_lang) => {
557559
historyLengthTips: '在默認展開的分組末尾插入數個最近訪問的站點',
558560
historyInsertFirst: '將歷史站點插入到分組開頭',
559561
historyInsertFirstTips: '將最近訪問的站點插入到分組開頭,否則插入到末尾',
562+
staticPosition: '保持引擎位置',
563+
staticPositionTips: '保持引擎位置,不將啟動的引擎提前到分組前面',
560564
shiftLastUsedType: '前移上次使用的分組',
561565
shiftLastUsedTypeTips: '將上次使用的分組前移至當前分組之後',
562566
sortType: '自動排序分組',
@@ -826,10 +830,10 @@ window.setLang = (_lang) => {
826830
shiftKey: 'Shift',
827831
metaKey: 'Meta',
828832
configContent: '構成ソースコード',
829-
batchOpenconfirm: 'バッチ検索の確認',
830-
batchOpenconfirmDefault: 'デフォルト',
831-
batchOpenconfirmAlways: '常に確認',
832-
batchOpenconfirmNo: '確認なし',
833+
batchOpenConfirm: 'バッチ検索の確認',
834+
batchOpenConfirmDefault: 'デフォルト',
835+
batchOpenConfirmAlways: '常に確認',
836+
batchOpenConfirmNo: '確認なし',
833837
copy: 'コピー',
834838
save: '保存',
835839
autoClose: '自動終了タイプ',
@@ -909,8 +913,10 @@ window.setLang = (_lang) => {
909913
historyLengthTips: '現在展開されているカテゴリの最後に、最近訪問したサイトをいくつか挿入します',
910914
historyInsertFirst: '現在のグループの先頭に履歴サイトを挿入します',
911915
historyInsertFirstTips: '最近アクセスしたサイトをグループの先頭に挿入し、それ以外の場合は最後に挿入します',
912-
shiftLastusedType: '最後に使用したカテゴリを前方に移動',
913-
shiftLastusedTypeTips: '最後に使用したグループを現在のカテゴリの後ろに移動します',
916+
staticPosition: 'エンジン位置を維持する',
917+
staticPositionTips: 'エンジン位置を維持する。アクティブなエンジンをグループの先頭に移動させない',
918+
shiftLastUsedType: '最後に使用したカテゴリを前方に移動',
919+
shiftLastUsedTypeTips: '最後に使用したグループを現在のカテゴリの後ろに移動します',
914920
sortType: 'カテゴリを自動並べ替え',
915921
sortTypeTips: '訪問数に応じてカテゴリを自動的に並べ替えます',
916922
sortSite: '自動並べ替えエンジン',
@@ -947,7 +953,7 @@ window.setLang = (_lang) => {
947953
cloneconfirm: 'これらのサイトを【#t#】にクローン作成しますか?',
948954
cloneAction: '単一サイトではなく 1 つのグループとしてクローンを作成しますか?',
949955
groupName: 'グループ名',
950-
donate: 'こんにちは! 私は SearchJumper の作者、Hoothinです。\n\nSearchJumper を皆さんと共有できることを嬉しく思います。 これは完全にオープンソースで無料のプロジェクトです。 私はその開発にかなりの時間を費やしてきましたが、それが皆さんのお役に立ったと知ると、すべての価値があると感じています。\n\nもし、SearchJumper が有益であると感じて、私の取り組みをサポートしたいと思ったら、私は 以下の方法をご検討いただき、誠にありがとうございます。 あなたのサポートは、改善を続け、より良いサービスを提供し続ける動機になります。\n\n- 寄付: SearchJumper の将来の開発をサポートするために寄付を検討することができます。 たとえ小さな貢献であっても、私は大きな励みとインスピレーションを得ることができます。\n- フィードバックと共有: SearchJumper に関するフィードバックや提案がある場合、またはユーザー エクスペリエンスを他の人と共有したい場合は、非常に嬉しく思います。 あなたのフィードバックは、より多くの人々の利益のために SearchJumper を継続的に改善および最適化するのに役立ちます。\n- コミュニティへの参加: Discord チャンネルに参加して、洞察や経験を他のユーザーと共有することを歓迎します。 これは相互学習とサポートのためのプラットフォームであり、あなたの参加がその繁栄に貢献します。\n\nSearchJumper のサポートに改めて感謝いたします。 私は強化されたヘルプを提供し、このプロジェクトの改善に継続的に取り組むことに尽力します。 寄付と温かいお言葉に感謝いたします。 本当に感謝しています!',
956+
donate: 'こんにちは! SearchJumper の作者、Hoothinです。\n\nSearchJumper を皆さんと共有できることを嬉しく思います。 これは完全にオープンソースで無料のプロジェクトです。 私はその開発にかなりの時間を費やしてきましたが、それが皆さんのお役に立ったと知ると、すべての価値があると感じています。\n\nもし、SearchJumper が有益であると感じて、私の取り組みをサポートしたいと思ったら、私は 以下の方法をご検討いただき、誠にありがとうございます。 あなたのサポートは、改善を続け、より良いサービスを提供し続ける動機になります。\n\n- 寄付: SearchJumper の将来の開発をサポートするために寄付を検討することができます。 たとえ小さな貢献であっても、私は大きな励みとインスピレーションを得ることができます。\n- フィードバックと共有: SearchJumper に関するフィードバックや提案がある場合、またはユーザー エクスペリエンスを他の人と共有したい場合は、非常に嬉しく思います。 あなたのフィードバックは、より多くの人々の利益のために SearchJumper を継続的に改善および最適化するのに役立ちます。\n- コミュニティへの参加: Discord チャンネルに参加して、洞察や経験を他のユーザーと共有することを歓迎します。 これは相互学習とサポートのためのプラットフォームであり、あなたの参加がその繁栄に貢献します。\n\nSearchJumper のサポートに改めて感謝いたします。 私は強化されたヘルプを提供し、このプロジェクトの改善に継続的に取り組むことに尽力します。 寄付と温かいお言葉に感謝いたします。 本当に感謝しています!',
951957
share: '使用説明書',
952958
importBookmarks: 'ブラウザのブックマークをインポート',
953959
sync: 'WebDAV で同期',
@@ -1259,6 +1265,8 @@ window.setLang = (_lang) => {
12591265
historyLengthTips: 'Вставляет несколько недавно посещенных сайтов в конец группы Sidebar меню текущего объекта (текста, изображения, ссылки)',
12601266
historyInsertFirst: 'Вставка недавних сайтов в начало группы',
12611267
historyInsertFirstTips: 'Вставляет недавно посещенные сайты в начало группы Sidebar меню текущего объекта',
1268+
staticPosition: 'Сохранять положение двигателя',
1269+
staticPositionTips: 'Сохранять положение двигателя, не перемещать активный двигатель в начало группы',
12621270
shiftLastUsedType: 'Переместить вперед последнюю использованную группу',
12631271
shiftLastUsedTypeTips: 'Переместить последнюю использованную группу после текущей группы',
12641272
sortType: 'Автосортировка групп',
@@ -1613,6 +1621,8 @@ window.setLang = (_lang) => {
16131621
historyLengthTips: 'Insert several recently visited sites at the end of current expanded group',
16141622
historyInsertFirst: 'Insert the history sites at the beginning of current group',
16151623
historyInsertFirstTips: 'Insert the most recently visited sites at the beginning of the group, otherwise at the end',
1624+
staticPosition: 'Maintain engine position',
1625+
staticPositionTips: 'Maintain engine position, do not move the active engine to the front of the group',
16161626
shiftLastUsedType: 'Move forward the last used group',
16171627
shiftLastUsedTypeTips: 'Move the last used group forward after the current group',
16181628
sortType: 'Auto sort groups',

src/page/General.jsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,6 +1178,19 @@ export default function General() {
11781178
</FormControl>
11791179
</Box>
11801180
</Box>
1181+
<Box>
1182+
<Typography gutterBottom component="div">
1183+
<h4>{window.i18n('staticPosition')}</h4>
1184+
</Typography>
1185+
<FormControl sx={{ m: 1, minWidth: 80 }}>
1186+
<FormControlLabel
1187+
control={
1188+
<Switch checked={state.staticPosition} onChange={handleCheckChange} name="staticPosition" />
1189+
}
1190+
label={window.i18n('staticPositionTips')}
1191+
/>
1192+
</FormControl>
1193+
</Box>
11811194
</Box>
11821195
<Box sx={{ flexGrow: 1, display: 'flex'}}>
11831196
<Box>

0 commit comments

Comments
 (0)