@@ -1411,15 +1411,18 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature {
1411
1411
}
1412
1412
1413
1413
moveTabToWorkspace ( tab , workspaceID ) {
1414
- if ( tab . getAttribute ( 'zen-workspace-id' ) === workspaceID ) {
1415
- return ;
1414
+ const parent = tab . pinned ? '#vertical-pinned-tabs-container ' : '#tabbrowser-arrowscrollbox ' ;
1415
+ const container = document . querySelector ( parent + `.zen-workspace-tabs-section[zen-workspace-id="${ workspaceID } "]` ) ;
1416
+
1417
+ if ( container . contains ( tab ) ) {
1418
+ return false ;
1416
1419
}
1420
+
1417
1421
tab . setAttribute ( 'zen-workspace-id' , workspaceID ) ;
1418
1422
if ( tab . hasAttribute ( 'zen-essential' ) ) {
1419
- return ;
1423
+ return false ;
1420
1424
}
1421
- const parent = tab . pinned ? '#vertical-pinned-tabs-container ' : '#tabbrowser-arrowscrollbox ' ;
1422
- const container = document . querySelector ( parent + `.zen-workspace-tabs-section[zen-workspace-id="${ workspaceID } "]` ) ;
1425
+
1423
1426
if ( container ) {
1424
1427
container . insertBefore ( tab , container . lastChild ) ;
1425
1428
}
@@ -1428,6 +1431,8 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature {
1428
1431
if ( glanceTab ) {
1429
1432
glanceTab . setAttribute ( 'zen-workspace-id' , workspaceID ) ;
1430
1433
}
1434
+
1435
+ return true ;
1431
1436
}
1432
1437
1433
1438
_prepareNewWorkspace ( window ) {
@@ -1974,7 +1979,16 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature {
1974
1979
async onTabBrowserInserted ( event ) {
1975
1980
let tab = event . originalTarget ;
1976
1981
const isEssential = tab . getAttribute ( 'zen-essential' ) === 'true' ;
1977
- if ( tab . getAttribute ( 'zen-workspace-id' ) || ! this . workspaceEnabled || isEssential ) {
1982
+ const workspaceID = tab . getAttribute ( 'zen-workspace-id' ) ;
1983
+
1984
+ if ( ! this . workspaceEnabled || isEssential ) {
1985
+ return ;
1986
+ }
1987
+
1988
+ if ( workspaceID ) {
1989
+ if ( tab . hasAttribute ( 'change-workspace' ) && this . moveTabToWorkspace ( tab , workspaceID ) )
1990
+ this . _lastSelectedWorkspaceTabs [ workspaceID ] = tab ;
1991
+
1978
1992
return ;
1979
1993
}
1980
1994
0 commit comments