Comments (9)
Could you try shake your mouse cursor over other tabs before you release the button at outside of the sidebar area? Sometimes TST fails to detect your releasing of the button at outside of the sidebar, due to DOM event un-firing when you move your cursor across the sidebar immediately. Moving cursor across multiple DOM elements fires DOM event more certainly.
from treestyletab.
@piroor Here's a video
https://github.com/piroor/treestyletab/assets/42646062/52846fbb-39aa-4b08-828c-66f9f4b619ea
from treestyletab.
Thanks! Hmm, more debugging on macOS looks required...
from treestyletab.
@piroor Would you want me to do some debugging?
from treestyletab.
I get this occasionally, when it happens tabs go greyed out and I can't move them using either tree tab interface or the normal firefox interface, also when it happens at the bottom of the tree tab interface it starts scrolling this help text: "Dropping ot outside of sidebar will detach tabs from window [...]"
only way to fix it is restart firefox
from treestyletab.
After some investigation, I've realized that the problem is triggered due to delayed notification of changes to the local storage.
When you try to detach a tab from the window:
- dragenter event is dispatched, and internal config
lastDragOverSidebarOwnerWindowId
is updated with a specific window id. - dragleave event is dispatched, and internal config
lastDragOverSidebarOwnerWindowId
is cleared. storage.local.onChanged
listener is called withlastDragOverSidebarOwnerWindowId=id
(it was triggered by dragenter) and internal value oflastDragOverSidebarOwnerWindowId
is unexpectedly overwritten with a specific window id.- dragend event is dispatched when you release the mouse button.
lastDragOverSidebarOwnerWindowId
has a window id, so TST treats the dragend event as "happens at inside the sidebar area", becauselastDragOverSidebarOwnerWindowId
should be cleared by dragleave. As the result TST does not detach the tab from the window.
I've introduced a change to avoid such a timing issue. A new development build is available at https://github.com/piroor/treestyletab/actions/runs/7193861829 so could you try it? @YousufSSyed
from treestyletab.
@piroor I installed Firefox Dev Edition and sideloaded it on the about:debugging page. It works very inconsistently, I thought it wasn't working at all until I did it like 5 times.
from treestyletab.
TST intentionally ignores tabs dropped near to the sidebar within (tab-height / 2) pixels for safety. For example, tabs dropped within 10 pixels from the sidebar area won't be detached if your tabs are shown with 20px height. Is your case described with this behavior?
Otherwise, some old workarounds may cause mis-detection of coordinates. Could you collect debug logs with a new development build? Steps are:
- Download XPI from https://github.com/piroor/treestyletab/actions/runs/7203396156 and install it.
- Go to TST's options page.
- Under the "Development" section, set as:
- "Debug mode" => checked
- "Log with timestamp" => checked
- "sidebar/drag-and-drop" => checked
- All other checkboxes under "Detailed logging" => unchecked
- Go to about:debugging
- "This Firefox" => "Temporary Extensions" or "Extensions" => "Tree Style Tab" => click the "Inspect" button.
- A remote debugger window is opened for TST. Ensure that "always on top" is activated.
- Click "Console" in the debugger window.
- Click the trash box button to clear contents.
- Try to detach an individual tab with drag and drop.
- You'll see logs like this:
All logs below the message "onDragStart: start" are from your drag session. This is an example when a tab is successfully detached - please note there is a message "trying to detach tab from window". - Look at logs below the message "onDragEnd,". Some detailed parameters are collapsed with ellipses like "Object { a:0, b:1, ... }", for example "dragend at:" in the screenshot. It means some parameters are not disclosed, so click their triangle to expand them. You don't need to expand parameters recursively - only the top level needs to become visible, like as:
- Copy logs below the message "onDragStart: start" and paste it here.
from treestyletab.
This issue has been closed due to no response within 14 days after labeled as "maybe fixed", 7 days after last reopened, and 7 days after last commented.
from treestyletab.
Related Issues (20)
- [Bug] No longer able to prevent automatic tree expand / collapse? HOT 6
- [Bug] Previously visited website's favicon is reused unexpectedly HOT 3
- [Bug] TST stuck loading indefinitely HOT 28
- [Bug] "High Contrast" Theme renders without tab button borders in 4.0.10 HOT 4
- TST doesn't remember tabs created by extensions like Stylish HOT 2
- [Bug] changing --tab-size breaks tab drag HOT 3
- [Bug]new tabs that inherit a container load then get blanked immediately HOT 4
- [Bug] Drag and drop parent-child / subtree broken on 4.0.11 HOT 2
- [Bug] Recent update shows booksmark manager, not tabs HOT 4
- [Bug] Move to New Window button causes all tab bars to reload twice after the new window opens HOT 10
- "Scroll Lock" does not work (How to disable automatic scrolling of tab column when manually closing second-to-last tab?) HOT 5
- [Bug] photon sidebar backround is too light on linux HOT 6
- New version 4.0.12 changed some of the styling HOT 9
- "Open new blank tab as" setting is ignored HOT 4
- new tab from non-existing tab HOT 1
- [Bug] "Undefined" entries at bottom of sidebar HOT 2
- [Bug] Switches tabs with certain sequences of keypresses/mouse clicks
- [Bug] TST Tab Search extension no longer works correctly with TST HOT 7
- [Bug] Drag and droping outside of sidebar not working when maximised HOT 1
- [Enhancement] toggle expand/collapse function HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from treestyletab.