Skip to content

Commit 7f92ec9

Browse files
committed
Added toggle Pin menu on button click
1 parent 588e574 commit 7f92ec9

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed

bravegpt/greasemonkey/bravegpt.user.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@
148148
// @description:zu Yengeza izimpendulo ze-AI ku-Brave Search (inikwa amandla yi-GPT-4o!)
149149
// @author KudoAI
150150
// @namespace https://kudoai.com
151-
// @version 2025.3.31.3
151+
// @version 2025.3.31.4
152152
// @license MIT
153153
// @icon https://cdn.jsdelivr.net/gh/KudoAI/bravegpt@df624b0/assets/images/icons/bravegpt/icon48.png
154154
// @icon64 https://cdn.jsdelivr.net/gh/KudoAI/bravegpt@df624b0/assets/images/icons/bravegpt/icon64.png
@@ -1673,7 +1673,10 @@
16731673
toggle(event) { // visibility
16741674
clearTimeout(menus.pin.hide.timeout) // in case rapid re-enter before ran
16751675
if (!menus.pin.div) menus.pin.createAppend()
1676-
if (event.type == 'mouseenter' && menus.pin.status == 'hidden' && event.target != menus.pin.div) {
1676+
if (menus.pin.status == 'hidden' && (
1677+
event.type == 'mouseenter' && event.target != menus.pin.div // Pin btn hovered-on
1678+
|| event.type == 'click' ) // Pin btn clicked
1679+
) { // show menu
16771680
menus.pin.div.style.display = '' // for rects calc
16781681
const pinBtn = appDiv.querySelector(`#${app.slug}-pin-btn`)
16791682
const rects = {
@@ -1687,7 +1690,7 @@
16871690
menus.pin.rightPos = rects.appDiv.right - event.clientX - menus.pin.div.offsetWidth/2
16881691
Object.assign(menus.pin.div.style, { right: `${menus.pin.rightPos}px`, opacity: 1 })
16891692
menus.pin.status = 'visible'
1690-
} else if (event.type == 'mouseleave')
1693+
} else if (/click|mouseleave/.test(event.type)) // Pin menu/btn hovered-off or btn clicked, hide menu
16911694
return menus.pin.hide.timeout = setTimeout(() => menus.pin.hide(), 55)
16921695
}
16931696
}
@@ -2733,7 +2736,8 @@
27332736
else if (btn.id.endsWith('about-btn')) btn.onclick = () => modals.open('about')
27342737
else if (btn.id.endsWith('settings-btn')) btn.onclick = () => modals.open('settings')
27352738
else if (btn.id.endsWith('font-size-btn')) btn.onclick = () => fontSizeSlider.toggle()
2736-
else if (btn.id.endsWith('pin-btn')) btn.onmouseenter = btn.onmouseleave = menus.pin.toggle
2739+
else if (btn.id.endsWith('pin-btn'))
2740+
btn.onmouseenter = btn.onmouseleave = btn.onclick = menus.pin.toggle
27372741
else if (btn.id.endsWith('wsb-btn'))
27382742
btn.onclick = event => { toggle.sidebar('wider') ; tooltip.toggle(event) }
27392743
else if (btn.id.endsWith('arrows-btn')) btn.onclick = () => toggle.expandedMode()

duckduckgpt/greasemonkey/duckduckgpt.user.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@
148148
// @description:zu Yengeza izimpendulo ze-AI ku-DuckDuckGo (inikwa amandla yi-GPT-4o!)
149149
// @author KudoAI
150150
// @namespace https://kudoai.com
151-
// @version 2025.3.31.2
151+
// @version 2025.3.31.3
152152
// @license MIT
153153
// @icon https://cdn.jsdelivr.net/gh/KudoAI/duckduckgpt@06af076/assets/images/icons/duckduckgpt/icon48.png
154154
// @icon64 https://cdn.jsdelivr.net/gh/KudoAI/duckduckgpt@06af076/assets/images/icons/duckduckgpt/icon64.png
@@ -1637,7 +1637,7 @@
16371637

16381638
hide() { Object.assign(this.div.style, { display: 'none', opacity: 0 }) ; this.status = 'hidden' },
16391639

1640-
update() {
1640+
update() { // items
16411641

16421642
// Init elems
16431643
this.ul.textContent = ''
@@ -1676,7 +1676,10 @@
16761676
toggle(event) { // visibility
16771677
clearTimeout(menus.pin.hide.timeout) // in case rapid re-enter before ran
16781678
if (!menus.pin.div) menus.pin.createAppend()
1679-
if (event.type == 'mouseenter' && menus.pin.status == 'hidden' && event.target != menus.pin.div) {
1679+
if (menus.pin.status == 'hidden' && (
1680+
event.type == 'mouseenter' && event.target != menus.pin.div // Pin btn hovered-on
1681+
|| event.type == 'click' ) // Pin btn clicked
1682+
) { // show menu
16801683
menus.pin.div.style.display = '' // for rects calc
16811684
const pinBtn = appDiv.querySelector(`#${app.slug}-pin-btn`)
16821685
const rects = {
@@ -1690,7 +1693,7 @@
16901693
menus.pin.rightPos = rects.appDiv.right - event.clientX - menus.pin.div.offsetWidth/2
16911694
Object.assign(menus.pin.div.style, { right: `${menus.pin.rightPos}px`, opacity: 1 })
16921695
menus.pin.status = 'visible'
1693-
} else if (event.type == 'mouseleave')
1696+
} else if (/click|mouseleave/.test(event.type)) // Pin menu/btn hovered-off or btn clicked, hide menu
16941697
return menus.pin.hide.timeout = setTimeout(() => menus.pin.hide(), 55)
16951698
}
16961699
}
@@ -2740,7 +2743,8 @@
27402743
else if (btn.id.endsWith('about-btn')) btn.onclick = () => modals.open('about')
27412744
else if (btn.id.endsWith('settings-btn')) btn.onclick = () => modals.open('settings')
27422745
else if (btn.id.endsWith('font-size-btn')) btn.onclick = () => fontSizeSlider.toggle()
2743-
else if (btn.id.endsWith('pin-btn')) btn.onmouseenter = btn.onmouseleave = menus.pin.toggle
2746+
else if (btn.id.endsWith('pin-btn'))
2747+
btn.onmouseenter = btn.onmouseleave = btn.onclick = menus.pin.toggle
27442748
else if (btn.id.endsWith('wsb-btn'))
27452749
btn.onclick = event => { toggle.sidebar('wider') ; tooltip.toggle(event) }
27462750
else if (btn.id.endsWith('arrows-btn')) btn.onclick = () => toggle.expandedMode()

googlegpt/greasemonkey/googlegpt.user.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@
149149
// @description:zu Yengeza izimpendulo ze-AI ku-Google Search (inikwa amandla yi-Google Gemma + GPT-4o!)
150150
// @author KudoAI
151151
// @namespace https://kudoai.com
152-
// @version 2025.3.31.2
152+
// @version 2025.3.31.3
153153
// @license MIT
154154
// @icon https://cdn.jsdelivr.net/gh/KudoAI/googlegpt@59409b2/assets/images/icons/googlegpt/black/icon48.png
155155
// @icon64 https://cdn.jsdelivr.net/gh/KudoAI/googlegpt@59409b2/assets/images/icons/googlegpt/black/icon64.png
@@ -1820,7 +1820,10 @@
18201820
toggle(event) { // visibility
18211821
clearTimeout(menus.pin.hide.timeout) // in case rapid re-enter before ran
18221822
if (!menus.pin.div) menus.pin.createAppend()
1823-
if (event.type == 'mouseenter' && menus.pin.status == 'hidden' && event.target != menus.pin.div) {
1823+
if (menus.pin.status == 'hidden' && (
1824+
event.type == 'mouseenter' && event.target != menus.pin.div // Pin btn hovered-on
1825+
|| event.type == 'click' ) // Pin btn clicked
1826+
) { // show menu
18241827
menus.pin.div.style.display = '' // for rects calc
18251828
const pinBtn = appDiv.querySelector(`#${app.slug}-pin-btn`)
18261829
const rects = {
@@ -1834,7 +1837,7 @@
18341837
menus.pin.rightPos = rects.appDiv.right - event.clientX - menus.pin.div.offsetWidth/2
18351838
Object.assign(menus.pin.div.style, { right: `${menus.pin.rightPos}px`, opacity: 1 })
18361839
menus.pin.status = 'visible'
1837-
} else if (event.type == 'mouseleave')
1840+
} else if (/click|mouseleave/.test(event.type)) // Pin menu/btn hovered-off or btn clicked, hide menu
18381841
return menus.pin.hide.timeout = setTimeout(() => menus.pin.hide(), 55)
18391842
}
18401843
}
@@ -2912,7 +2915,8 @@
29122915
else if (btn.id.endsWith('about-btn')) btn.onclick = () => modals.open('about')
29132916
else if (btn.id.endsWith('settings-btn')) btn.onclick = () => modals.open('settings')
29142917
else if (btn.id.endsWith('font-size-btn')) btn.onclick = () => fontSizeSlider.toggle()
2915-
else if (btn.id.endsWith('pin-btn')) btn.onmouseenter = btn.onmouseleave = menus.pin.toggle
2918+
else if (btn.id.endsWith('pin-btn'))
2919+
btn.onmouseenter = btn.onmouseleave = btn.onclick = menus.pin.toggle
29162920
else if (btn.id.endsWith('wsb-btn'))
29172921
btn.onclick = event => { toggle.sidebar('wider') ; tooltip.toggle(event) }
29182922
else if (btn.id.endsWith('arrows-btn')) btn.onclick = () => toggle.expandedMode()

0 commit comments

Comments
 (0)