TreeTabs issueshttps://gitlab.com/kroppy/TreeTabs/-/issues2024-02-02T19:18:36Zhttps://gitlab.com/kroppy/TreeTabs/-/issues/311x "close" buttons on Tree Tabs tabs stop responding to mouse clicks2024-02-02T19:18:36ZArdemusx "close" buttons on Tree Tabs tabs stop responding to mouse clicks**When did it start:**
At least 3 months ago
**Steps to reproduce:**
1. ... ? I'm not sure yet. May have something to do with YouTube, switching groups, or opening multiple child tabs using the middle click on a web page?
2. Press the x...**When did it start:**
At least 3 months ago
**Steps to reproduce:**
1. ... ? I'm not sure yet. May have something to do with YouTube, switching groups, or opening multiple child tabs using the middle click on a web page?
2. Press the x "close" button on a Tree Tabs tab
3. Repeat as often as desired on any Tree Tabs tab
**Expected:**
1. target tab closes immediately
2. next tab (as specified in settings) becomes selected and active
**Actual:**
1. nothing, button does not seem to trigger an event
**To Resolve:**
- Minimize and restore the Firefox Window
- Old Solution: Wait. The x "close" buttons will start working again in the next 5-30 minutes of normal Firefox use. Normal use often involves switching or minimizing Firefox tabs but I can't but I can't be sure that's the only reason waiting works.
**System details:**
- Firefox: "Firefox 122.0 (64-bit) / Mozilla Firefox for Manjaro Linux / Manjaro 1.0"
- Tree Tabs: Version 1.9.3 / Last Updated June 17, 2022https://gitlab.com/kroppy/TreeTabs/-/issues/310How to manually refresh Tree Tabs - location of extension folder?2024-01-15T22:29:50ZPiecevcakeHow to manually refresh Tree Tabs - location of extension folder?Can you please tell us where the customized data is stored for Tree Tabs?
I would like to reinstall Tree Tabs without settings then manually restore saved session, hibernated groups and theme, to get rid of some bugs like
- new, orphan, ...Can you please tell us where the customized data is stored for Tree Tabs?
I would like to reinstall Tree Tabs without settings then manually restore saved session, hibernated groups and theme, to get rid of some bugs like
- new, orphan, tabs open in the wrong places
- autosave stopped working and saved autosaves can't be deleted
Thank youhttps://gitlab.com/kroppy/TreeTabs/-/issues/309TreeTabs does not work anymore on Firefox2024-01-15T22:31:23ZMelchior HofTreeTabs does not work anymore on FirefoxTreeTabs does not work anymore on Firefox since the last update.TreeTabs does not work anymore on Firefox since the last update.https://gitlab.com/kroppy/TreeTabs/-/issues/308groups are not recovered when restart after firefox crashed2024-01-15T22:32:58Zharry mayrgroups are not recovered when restart after firefox crashed**Steps to reproduce:**
1. create two or more _groups_ with a few browser-tabs within each group
2. make firefox close (crash) unexpectedly
3. open firefox again
4. all tabs are restored (from each group), but all tabs are moved to the g...**Steps to reproduce:**
1. create two or more _groups_ with a few browser-tabs within each group
2. make firefox close (crash) unexpectedly
3. open firefox again
4. all tabs are restored (from each group), but all tabs are moved to the group "untitled" and all other custom group names are removed
**Expected behaviour:**
TreeTabs should also restore all custom groups.https://gitlab.com/kroppy/TreeTabs/-/issues/307style for "active group"2024-01-15T22:36:54Zharry mayrstyle for "active group"Please add a configuration to adjust the background color for an **active group**. Actually, we can only adjust the background color of a "hovered" group ("Group on mouse hover"), but not of an "active" group.Please add a configuration to adjust the background color for an **active group**. Actually, we can only adjust the background color of a "hovered" group ("Group on mouse hover"), but not of an "active" group.https://gitlab.com/kroppy/TreeTabs/-/issues/306Update Vivaldi to version 5.3.2679.33, error occured in Tree Tabs 1.9.2.2022-06-06T09:32:03ZkuoneUpdate Vivaldi to version 5.3.2679.33, error occured in Tree Tabs 1.9.2.
Update Vivaldi to version 5.3.2679.33, error occured in Tree Tabs 1.9.2.
Error details.
```
Manifest version 2 is deprecated, and support will be removed in 2023. See https://developer.chrome.com/blog/mv2-transition/ for more details...
Update Vivaldi to version 5.3.2679.33, error occured in Tree Tabs 1.9.2.
Error details.
```
Manifest version 2 is deprecated, and support will be removed in 2023. See https://developer.chrome.com/blog/mv2-transition/ for more details.
{
"manifest_version": 2,
"default_locale": "en",
"background": {
"scripts": [ "global.js", "./scripts/preferences.js", "background_firefox.js", "background_opera.js", "background_vivaldi.js", "background.js" ],
"persistent": true
},
"name": "Tree Tabs",
"description": "__MSG_extDesc__",
"icons": {
"128": "icons/128.png",
"48": "icons/48.png",
"38": "icons/24.png",
"19": "icons/16.png",
"16": "icons/16.png"
},
"permissions": [ "tabs", "sessions", "<all_urls>", "storage", "unlimitedStorage", "bookmarks" ],
"browser_action": {
"default_icon": "icons/24.png",
"default_popup": "sidebar.html"
},
"options_ui": {
"page": "options/options.html",
"open_in_tab": false
},
"commands": {
"close_tree": {
"suggested_key": { "default": "Alt+W" },
"description": "close tree"
}
},
"version": "1.9.2"
}
```
```
Error handling response: TypeError: Cannot read properties of undefined (reading 'match')
コンテキスト
_generated_background_page.html
スタック トレース
background_vivaldi.js:150 (VivaldiAddWindowData)
background_vivaldi.js:21 (無名関数)
// VIVALDI
function VivaldiStart() {
chrome.windows.getAll({ windowTypes: ['normal'], populate: true }, function(w) {
chrome.storage.local.get(null, function(storage) {
// LOAD PREFERENCES
Preferences_GetCurrentPreferences(storage);
if (storage.data_version == undefined || storage.data_version == 2) {
// load tabs and windows from storage
let refTabs = {};
let tabs_matched = 0;
let LoadedWindows = storage.windows ? storage.windows : {};
let LoadedTabs = storage.tabs ? storage.tabs : {};
// load debug log
if (opt.debug == true) {
if (storage.debug_log != undefined) b.debug = storage.debug_log;
}
// add data
for (let win of w) {
VivaldiAddWindowData(win);
for (let tab of win.tabs) {
VivaldiAddTabData(tab);
}
}
// if not skipping loading data
if (opt.skip_load == false) {
for (let win of w) {
if (LoadedWindows[b.windows[win.id].ttid] != undefined) {
b.windows[win.id] = Object.assign({}, LoadedWindows[b.windows[win.id].ttid]);
}
for (let tab of win.tabs) {
if (LoadedTabs[b.tabs[tab.id].ttid] != undefined) {
b.tabs[tab.id] = Object.assign({}, LoadedTabs[b.tabs[tab.id].ttid]);
refTabs[b.tabs[tab.id].ttid] = tab.id;
tabs_matched++;
} else {
if (LoadedTabs["_"+tab.index+"_"+b.windows[win.id].ttid] != undefined) {
b.tabs[tab.id] = Object.assign({}, LoadedTabs["_"+tab.index+"_"+b.windows[win.id].ttid]);
refTabs["_"+tab.index+"_"+b.windows[win.id].ttid] = tab.id;
tabs_matched++;
}
}
if (tab.active) b.windows[tab.windowId].activeTabId = tab.id;
}
}
// replace ttids to browser tabIds for parents
for (let tabId in b.tabs) {
if (refTabs[b.tabs[tabId].parent] != undefined) {
b.tabs[tabId].parent = refTabs[b.tabs[tabId].parent];
}
}
// replace ttids to browser tabIds, but of active tabs in groups
for (let winId in b.windows) {
for (let group in b.windows[winId].groups) {
if (refTabs[b.windows[winId].groups[group].active_tab] != undefined) {
b.windows[winId].groups[group].active_tab = refTabs[b.windows[winId].groups[group].active_tab];
}
if (refTabs[b.windows[winId].groups[group].prev_active_tab] != undefined) {
b.windows[winId].groups[group].prev_active_tab = refTabs[b.windows[winId].groups[group].prev_active_tab];
}
}
}
if (tabs_matched < LoadedTabs.length*0.5) {
b.safe_mode = true;
SafeModeCheck();
if (opt.debug) pushlog("started in safe mode");
if (storage.recovered_BAK) {
chrome.storage.local.set({ tabs: storage["tabs_BAK"+storage.recovered_BAK] });
chrome.storage.local.set({ windows: storage["windows_BAK"+storage.recovered_BAK] });
if (storage.recovered_BAK == 3) {
chrome.storage.local.remove("recovered_BAK");
} else {
chrome.storage.local.set({ recovered_BAK: (storage.recovered_BAK+1) });
}
} else {
chrome.storage.local.set({ recovered_BAK: 1 });
}
} else {
chrome.storage.local.remove("recovered_BAK");
}
if (opt.debug) pushlog("VivaldiStart, Current windows count is: " + w.length + ", Saved windows count is: " + Object.keys(LoadedWindows).length + ", Loaded tabs count is: " + Object.keys(LoadedTabs).length + ", Matching tabs: " + tabs_matched);
}
}
b.bg_running = true;
VivaldiAutoSaveData(0, 1000);
VivaldiAutoSaveData(1, 300000);
VivaldiAutoSaveData(2, 600000);
VivaldiAutoSaveData(3, 1800000);
VivaldiStartListeners();
delete DefaultToolbar;
delete DefaultTheme;
delete DefaultPreferences;
delete DefaultMenu;
chrome.runtime.sendMessage({ command: "bg_started" });
});
});
}
async function VivaldiAutoSaveData(BAK, LoopTimer) {
setInterval(function() {
if (b.schedule_save > 1 || BAK > 0) {
b.schedule_save = 1;
}
if (b.bg_running && b.schedule_save > 0 && Object.keys(b.tabs).length > 1) {
chrome.windows.getAll({ windowTypes: ['normal'], populate: true }, function(w) {
let Windows = {};
let Tabs = {};
for (let win of w) {
if (b.windows[win.id] != undefined) {
if (b.windows[win.id].ttid != undefined && b.windows[win.id].group_bar != undefined && b.windows[win.id].search_filter != undefined && b.windows[win.id].active_shelf != undefined && b.windows[win.id].active_group != undefined && b.windows[win.id].groups != undefined && b.windows[win.id].folders != undefined) {
Windows[b.windows[win.id].ttid] = { ttid: b.windows[win.id].ttid, group_bar: b.windows[win.id].group_bar, search_filter: b.windows[win.id].search_filter, active_shelf: b.windows[win.id].active_shelf, active_group: b.windows[win.id].active_group, groups: b.windows[win.id].groups, folders: b.windows[win.id].folders };
for (let groupId in b.windows[win.id].groups) {
if (b.tabs[b.windows[win.id].groups[groupId].active_tab]) Windows[b.windows[win.id].ttid].groups[groupId].active_tab = b.tabs[b.windows[win.id].groups[groupId].active_tab].ttid;
if (b.tabs[b.windows[win.id].groups[groupId].prev_active_tab]) Windows[b.windows[win.id].ttid].groups[groupId].prev_active_tab = b.tabs[b.windows[win.id].groups[groupId].prev_active_tab].ttid;
}
}
} else {
VivaldiAddWindowData(win);
b.schedule_save++;
}
for (let tab of win.tabs) {
if (b.tabs[tab.id] != undefined) {
if (b.tabs[tab.id].ttid != undefined && b.tabs[tab.id].parent != undefined && b.tabs[tab.id].index != undefined && b.tabs[tab.id].expand != undefined) {
Tabs[b.tabs[tab.id].ttid] = { ttid: b.tabs[tab.id].ttid, parent: (b.tabs[b.tabs[tab.id].parent] ? b.tabs[b.tabs[tab.id].parent].ttid : b.tabs[tab.id].parent), index: b.tabs[tab.id].index, expand: b.tabs[tab.id].expand };
}
} else {
VivaldiAddTabData(tab);
}
}
}
chrome.storage.local.set((BAK == 0 ? { data_version: 2, windows: Windows, tabs: Tabs } : (BAK == 1 ? { windows_BAK1: Windows, tabs_BAK1: Tabs } : (BAK == 2 ? { windows_BAK2: Windows, tabs_BAK2: Tabs } : { windows_BAK3: Windows, tabs_BAK3: Tabs }))));
b.schedule_save--;
});
}
if (opt.debug == true) chrome.storage.local.set({ debug_log: b.debug });
}, LoopTimer);
}
function VivaldiAddWindowData(win) {
let extData = win.extData.match("ext_id") != null ? JSON.parse(win.extData).ext_id : win.index;
if (b.windows[win.id] == undefined) b.windows[win.id] = { ttid: extData, activeTabId: 0, group_bar: opt.groups_toolbar_default, search_filter: "url", active_shelf: "", active_group: "tab_list", groups: { tab_list: { id: "tab_list", index: 0, active_tab: 0, prev_active_tab: 0, name: labels.ungrouped_group, font: "" } }, folders: {} };
if (extData == win.index) {
let retry = setInterval(function() {
chrome.windows.get(win.id, {populate: false}, function(retry_win) {
if (retry_win.extData.match("ext_id") != null) {
b.windows[retry_win.id].ttid = JSON.parse(retry_win.extData).ext_id;
clearInterval(retry);
}
});
}, 2000);
}
return b.windows[win.id].ttid;
}
function VivaldiAddTabData(tab) {
if (b.tabs[tab.id] == undefined) {
b.tabs[tab.id] = { ttid: "_", parent: tab.pinned ? "pin_list" : (b.windows[tab.windowId] ? b.windows[tab.windowId].active_group : "tab_list"), index: (Object.keys(b.tabs).length + 1), expand: "n" };
}
if (tab.extData.match("ext_id") != null) {
b.tabs[tab.id].ttid = JSON.parse(tab.extData).ext_id;
b.schedule_save++;
} else {
b.tabs[tab.id].ttid = "_"+tab.index+"_"+b.windows[tab.windowId].ttid;
b.schedule_save++;
}
return b.tabs[tab.id].ttid;
}
function VivaldiStartListeners() { // start all listeners
chrome.tabs.onCreated.addListener(function(tab) {
// VivaldiAddWindowData(tab.windowId);
// let extData = tab.extData.match("ext_id") != null ? JSON.parse(tab.extData).ext_id : false;
// if (extData) {
// for (let tabId in b.tabs) {
// if (extData === b.tabs[tabId].ttid) {
// b.tabs[tab.id] = b.tabs[tabId];
// delete b.tabs[tabId];
// break;
// }
// }
// }
let prevActiveTabId = b.windows[tab.windowId].activeTabId;
VivaldiAddTabData(tab);
OnMessageTabCreated(tab, prevActiveTabId);
});
chrome.tabs.onRemoved.addListener(function(tabId, removeInfo) {
let SiblingTabs = b.tabs[tabId] ? GetChildren(b.tabs, b.tabs[tabId].parent) : [];
let SiblingFolders = b.tabs[tabId] ? GetChildren(b.windows[removeInfo.windowId].folders, b.tabs[tabId].parent) : [];
UnshiftChildrenIndexes(SiblingTabs, b.tabs[tabId].index, SiblingFolders, removeInfo.windowId);
if (b.EmptyTabs.indexOf(tabId) != -1) {
b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1);
}
setTimeout(function() { chrome.runtime.sendMessage({ command: "tab_removed", windowId: removeInfo.windowId, tabId: tabId }); }, 5);
delete b.tabs[tabId];
b.schedule_save++;
});
chrome.tabs.onAttached.addListener(function(tabId, attachInfo) {
chrome.tabs.get(tabId, function(tab) {
chrome.runtime.sendMessage({ command: "tab_attached", windowId: attachInfo.newWindowId, tab: tab, tabId: tabId, ParentId: b.tabs[tabId].parent });
});
b.schedule_save++;
});
chrome.tabs.onDetached.addListener(function(tabId, detachInfo) {
chrome.runtime.sendMessage({ command: "tab_detached", windowId: detachInfo.oldWindowId, tabId: tabId });
b.schedule_save++;
});
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo.pinned != undefined) {
if (changeInfo.pinned == true) {
b.tabs[tabId].parent = "pin_list";
}
if (changeInfo.pinned == false) {
b.tabs[tabId].parent = "tab_list";
}
b.schedule_save++;
}
if (changeInfo.url != undefined) { // if set to append when url changes and matches pre-set group
if (tab.pinned == false) {
if (opt.move_tabs_on_url_change == "always" || ((opt.move_tabs_on_url_change == "from_empty" || opt.move_tabs_on_url_change == "from_empty_b") && b.EmptyTabs.indexOf(tabId) != -1)) {
AppendTabToGroupOnRegexMatch(tabId, tab.windowId, changeInfo.url);
}
}
if (changeInfo.url != b.newTabUrl && b.EmptyTabs.indexOf(tabId) != -1) {
b.EmptyTabs.splice(b.EmptyTabs.indexOf(tabId), 1);
}
}
if (changeInfo.title != undefined && !tab.active) {
chrome.runtime.sendMessage({ command: "tab_attention", windowId: tab.windowId, tabId: tabId });
}
chrome.runtime.sendMessage({ command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tabId, changeInfo: changeInfo });
});
chrome.tabs.onMoved.addListener(function(tabId, moveInfo) {
b.schedule_save++;
});
chrome.tabs.onReplaced.addListener(function(addedTabId, removedTabId) {
chrome.tabs.get(addedTabId, function(tab) {
if (addedTabId == removedTabId) {
chrome.runtime.sendMessage({ command: "tab_updated", windowId: tab.windowId, tab: tab, tabId: tab.id, changeInfo: { status: tab.status, url: tab.url, title: tab.title, audible: tab.audible, mutedInfo: tab.mutedInfo } });
} else {
ReplaceParents(tabId, tab.id);
if (b.tabs[removedTabId]) {
b.tabs[addedTabId] = b.tabs[removedTabId];
} else {
VivaldiAddTabData(tab);
}
chrome.runtime.sendMessage({ command: "tab_removed", windowId: tab.windowId, tabId: removedTabId });
chrome.runtime.sendMessage({ command: "tab_attached", windowId: tab.windowId, tab: tab, tabId: addedTabId });
delete b.tabs[removedTabId];
}
b.schedule_save++;
});
});
chrome.tabs.onActivated.addListener(function(activeInfo) {
if (b.windows[activeInfo.windowId]) {
b.windows[activeInfo.windowId].activeTabId = activeInfo.tabId;
}
chrome.runtime.sendMessage({ command: "tab_activated", windowId: activeInfo.windowId, tabId: activeInfo.tabId });
setTimeout(function() {chrome.tabs.query({windowId: activeInfo.windowId}, function(tabs) {for (let tab of tabs) {if ((b.tabs[tab.id].ttid).startsWith("_") || tab.id === activeInfo.tabId) VivaldiAddTabData(tab);}});}, 500);
b.schedule_save++;
});
chrome.windows.onCreated.addListener(function(window) {
VivaldiAddWindowData(window);
b.schedule_save++;
});
chrome.windows.onRemoved.addListener(function(windowId) {
delete b.windows[windowId];
b.schedule_save++;
});
chrome.runtime.onSuspend.addListener(function() {
b.bg_running = false;
});
}
```https://gitlab.com/kroppy/TreeTabs/-/issues/305Add dropdown option for copying tab url2024-01-18T21:24:08ZChristopher SmallAdd dropdown option for copying tab urlThanks so much for making this tool; It has made a huge difference for me in my ability to organize my time on the web (which, as a developer, is all the time).
I find that for cleaning up old tabs, I often want to be able to copy out t...Thanks so much for making this tool; It has made a huge difference for me in my ability to organize my time on the web (which, as a developer, is all the time).
I find that for cleaning up old tabs, I often want to be able to copy out the urls into a notetaking app, like roamresearch or athensresearch. It would be great if you could right click on a tab and have an option to copy the url, so you don't have to load the tab and copy out the url from the address bar. This would save small increments of time (which add up when going through a large backlog of tabs) and reduce memory footprint from having to load each of the tabs that you want to copy out.
A slick alternative would be the ability to drag tabs into a text field on the active tab and have it paste the url there. Currently this moves the tab to a new window, which is a great feature, but maybe this behavior could only be triggered if the tab is dragged away from the active window? Probably more work and may not be possible, but would be much slicker if possible.
Finally, there's some question about whether copying out url for a tree of tabs should copy out just the single url, or all of the nested urls in nested list (markdown) format; This would (again) be great for tools like roam or athens which handle markdown, and interpet as native lists. This may not be what folks want all the time though, so could maybe be a separate option, though I realize that too many options in a menu could be problematic. Maybe there could be settings options for what features you want in the dropdown though?
Anyway; Thanks for hearing me out.https://gitlab.com/kroppy/TreeTabs/-/issues/304[Feature Request] Override Tab Title2024-01-15T22:38:10ZDani[Feature Request] Override Tab TitleI frequently need to keep several tabs open that all have a common title, making it difficult to keep them organized. It would be awesome if there was a way to set a specific title on a tab and have that _always_ displayed, even if I re...I frequently need to keep several tabs open that all have a common title, making it difficult to keep them organized. It would be awesome if there was a way to set a specific title on a tab and have that _always_ displayed, even if I refresh the page (I can tweak it manually by overriding the title in the source via console, but it goes away if I have to reload). TIA, this is a great add-on.
Firefox (if it matters).https://gitlab.com/kroppy/TreeTabs/-/issues/303Groups not shown and not creating in new FF windows2024-01-15T22:40:11ZСергей СафоновGroups not shown and not creating in new FF windowsSteps:
- Open several windows in FF
- Create groups on the first window - all ok
- Open another window
- Create group, set color, name - nothing happens.
I can't find any new created group in all opened windows.
UPD1: in settings i set...Steps:
- Open several windows in FF
- Create groups on the first window - all ok
- Open another window
- Create group, set color, name - nothing happens.
I can't find any new created group in all opened windows.
UPD1: in settings i set a flag, so on new windows it began to work.
But old windows are without groupshttps://gitlab.com/kroppy/TreeTabs/-/issues/302Skip Tree Tabs? Go Sidebery - Better Option?2024-01-15T22:41:56ZMichael LeeSkip Tree Tabs? Go Sidebery - Better Option?So I just found another Tree Tab replacement option that may be better - Sidebery.
It looks super similar to Tree Tabs and appears to have a continued development cycle (vs. Tree Tabs at ~2 yrs)
Best o luck y'all... as much as I've loved...So I just found another Tree Tab replacement option that may be better - Sidebery.
It looks super similar to Tree Tabs and appears to have a continued development cycle (vs. Tree Tabs at ~2 yrs)
Best o luck y'all... as much as I've loved Tree Tabs, having it crash doesn't work for me.
Sidebery is my next stop.https://gitlab.com/kroppy/TreeTabs/-/issues/301Skip Tree Tabs? Go Vertical Tree Tabs - NEW2024-01-15T22:50:46ZMichael LeeSkip Tree Tabs? Go Vertical Tree Tabs - NEWWhile I love the functionality here, the bugs / issues persist with my tabs falling apart, going missing, or getting totally shuffled.
With over 3500 tabs, having to re-sort / fix the issue every other week defeats the purpose of having ...While I love the functionality here, the bugs / issues persist with my tabs falling apart, going missing, or getting totally shuffled.
With over 3500 tabs, having to re-sort / fix the issue every other week defeats the purpose of having a tab organizer.
Being over a year since any new updates or follow up on reported issues, I'm figuring that Karol isn't interested in supporting the product (I've donated in the past and would happily do so if the product works). If so, there appears to be another option coming up with similar functionality BUT the updates and activity appears much more frequent - as in the last update was yesterday.
I'll look to migrate over and see how that goes. Couldn't be any worse than what I've got here when it breaks each week.
All the best y'all.https://gitlab.com/kroppy/TreeTabs/-/issues/300Tabs matching regex don't move2021-05-27T19:17:18ZAlexander Breinigalexander.breinig1@t-mobile.comTabs matching regex don't moveIf this actually does work, please provide a working example. Thank you.If this actually does work, please provide a working example. Thank you.https://gitlab.com/kroppy/TreeTabs/-/issues/299Dragging of multiple tabs is not working properly2021-05-24T10:35:01ZJohn van KootenDragging of multiple tabs is not working properlyWhen I select multiple tabs and try to drag them to another position in the tree, it often (most of the time) happens that one or more tabs are NOT moved. Sometimes even, NONE of the tabs move. This issue is persistent but intermittent. ...When I select multiple tabs and try to drag them to another position in the tree, it often (most of the time) happens that one or more tabs are NOT moved. Sometimes even, NONE of the tabs move. This issue is persistent but intermittent. It does not always happen.
I have recorded a video of the issue. In the video you can see that 3 of the 4 selected tabs ALWAYS move, while ONE (always the same one in this example) does not move at all. All 4 of the tabs are next to each other in the Firefox tabs row. So, there is no "gap" filled with other tabs between them.
This is just one example of how dragging seems to fail. It is not always exactly the same as described above.
I have also included a TreeTabs log file. This log file is the recording of the events as they happen in the video. so, you can use the video to check exactly what I did when the event was logged.
I hope it can be solved because it is a very annoying issue (the only one I am experiencing, actually) in what is otherwise an EXCELLENT(!!) add in!
Thanks in advance for your help!
Regards,
John
![Tree_Tabs_-_Dragp___Drop_not_Working_properly](/uploads/152f0c537a69f826b4714dcfaf3b9517/Tree_Tabs_-_Dragp___Drop_not_Working_properly.mp4)
[TreeTabs__related_to_video--_Tree_Tabs_-_Dragp___Drop_not_Working_properly_.log](/uploads/ebd18687b2ded94060cd802aa84892d1/TreeTabs__related_to_video--_Tree_Tabs_-_Dragp___Drop_not_Working_properly_.log)https://gitlab.com/kroppy/TreeTabs/-/issues/298[IMPROVEMENT] after closing active tab why not --> activate the previous acti...2024-01-16T14:08:22Zahahahaah[IMPROVEMENT] after closing active tab why not --> activate the previous active tabhello,
in the "after closing active tab" choices, there is not the possibility to activate the previous active tab.
i don't know if it is because of a technical reason or if it is an oversight, but this choice is really lacking.
thankshello,
in the "after closing active tab" choices, there is not the possibility to activate the previous active tab.
i don't know if it is because of a technical reason or if it is an oversight, but this choice is really lacking.
thankshttps://gitlab.com/kroppy/TreeTabs/-/issues/297[BUG]x2 new tab created by empty space below tabs2021-04-21T16:09:53Zahahahaah[BUG]x2 new tab created by empty space below tabshello,
**when you create a new tab by double-clicking in the empty space below tabs i have notices 2 bugs:**
**the 1st bug:**
normaly the created tab is an "orphan" tab so it should take action from the "place orphan" option. In my case...hello,
**when you create a new tab by double-clicking in the empty space below tabs i have notices 2 bugs:**
**the 1st bug:**
normaly the created tab is an "orphan" tab so it should take action from the "place orphan" option. In my case i have set this option to "after active tab".
as expected when i open a new tab from the "toolbar +" (new tab button) or from a double-clic on a tab, then the orphan new tab opens after the active tab
**B U T :** when i double clic in the empty space below the tabs, then the orphan new tab opens at the end of the tabs and not after the active tab...
**the 2nd bug:**
when i open a new tab from the empty space below the tabs, then the "go back to previous active tab" action doesn't work, as if the last active tab history was lost.https://gitlab.com/kroppy/TreeTabs/-/issues/296duplicate tab when "double clic" or "middle clic" it2021-04-21T10:59:53ZG. Gamez Gamezduplicate tab when "double clic" or "middle clic" ithello,
why not give more possible action choices for the "double clic" and "middle clic" options?
for example to duplicate a tab.
i do it very often and it will be faster than right clic and choose duplicate in the list
thxhello,
why not give more possible action choices for the "double clic" and "middle clic" options?
for example to duplicate a tab.
i do it very often and it will be faster than right clic and choose duplicate in the list
thxhttps://gitlab.com/kroppy/TreeTabs/-/issues/295switch to the previous active tab when clicking the current tab2021-04-21T10:56:10ZG. Gamez Gamezswitch to the previous active tab when clicking the current tabhello,
why not give the ossibility to switch to the previous active tab when clicking on the current tab?
it allows to compare quickly 2 pages.
thxhello,
why not give the ossibility to switch to the previous active tab when clicking on the current tab?
it allows to compare quickly 2 pages.
thxhttps://gitlab.com/kroppy/TreeTabs/-/issues/294Question about new tab creation behavior (Opera)2021-03-27T19:58:12ZCronyx RavageQuestion about new tab creation behavior (Opera)When I use the keystroke shortcut ctrl+t, it creates the new tab as a child of my current tab. Instead, I'd like it to create an entirely new top level tab, at the bottom of the list.
What settings do I need to change to make that happe...When I use the keystroke shortcut ctrl+t, it creates the new tab as a child of my current tab. Instead, I'd like it to create an entirely new top level tab, at the bottom of the list.
What settings do I need to change to make that happen? Thanks!https://gitlab.com/kroppy/TreeTabs/-/issues/293All Tabs (but not folders) Moved to Ungrouped2021-02-04T18:54:39ZTuRDMaNAll Tabs (but not folders) Moved to UngroupedI hadn't used Firefox on my main desktop for a couple of days. In that time, I added a new computer to my Firefox Sync account.
Today, when I opened Firefox on my main desktop PC again, all of my tabs were moved into the Ungrouped group...I hadn't used Firefox on my main desktop for a couple of days. In that time, I added a new computer to my Firefox Sync account.
Today, when I opened Firefox on my main desktop PC again, all of my tabs were moved into the Ungrouped group, but all of my folders were still in their correct place and tree hierarchy in the correct groups.
I tried restoring a recent backup of my AppData\Roaming\Mozilla\Firefox folder to see if that would restore everything, but then the Tree Tabs sidebar just stayed white and said "Starting" at the bottom (and never loaded up).
I don't have a recent backup created from within the Tree Tabs extension, but is there any way to restore my tabs to the correct position by restoring some files in Firefox's AppData folder?https://gitlab.com/kroppy/TreeTabs/-/issues/292Keep Firefox's tab and Tree Tab's tab in position-sync?2021-01-05T00:54:30ZWilliam SalopekKeep Firefox's tab and Tree Tab's tab in position-sync?Hi folks...love Tree Tabs. Question: it seems to me that I used to be able to move a tab to another position, either within Tree Tabs or within the Firefox browser window, and the other would move the tab to the same position. Not sur...Hi folks...love Tree Tabs. Question: it seems to me that I used to be able to move a tab to another position, either within Tree Tabs or within the Firefox browser window, and the other would move the tab to the same position. Not sure if that was ever true, but I've tried every combination of settings I can think of, and I can't get the two lists to stay in position-sync. If I move the tab in Tree Tabs, the tab DOES move in Firefox, but if I move the tab in Firefox, it does NOT move in Tree Tabs.