@@ -2567,138 +2567,154 @@ function _show_skip_taskbar_windows(ext: Ext) {
2567
2567
// So it has to be skipped being overriden for now.
2568
2568
2569
2569
// Handle the overview
2570
- if ( ! default_isoverviewwindow_ws )
2570
+ if ( ! default_isoverviewwindow_ws ) {
2571
2571
default_isoverviewwindow_ws = Workspace . prototype . _isOverviewWindow ;
2572
- Workspace . prototype . _isOverviewWindow = function ( win : any ) {
2573
- let meta_win = win ;
2574
- if ( GNOME_VERSION ?. startsWith ( "3.36" ) )
2575
- meta_win = win . get_meta_window ( ) ;
2572
+ Workspace . prototype . _isOverviewWindow = function ( win : any ) {
2573
+ let meta_win = win ;
2574
+ if ( GNOME_VERSION ?. startsWith ( "3.36" ) )
2575
+ meta_win = win . get_meta_window ( ) ;
2576
2576
2577
- // wm_class Gjs needs to be skipped to prevent the ghost window in
2578
- // workspace and overview
2579
- let show_skiptb = ! cfg . skiptaskbar_shall_hide ( meta_win ) ;
2580
- return ( show_skiptb && meta_win . skip_taskbar && meta_win . get_wm_class ( ) !== "Gjs" ) ||
2581
- default_isoverviewwindow_ws ( win ) ;
2582
- } ;
2577
+ let show_skiptb = ! cfg . skiptaskbar_shall_hide ( meta_win ) ;
2578
+ return ( show_skiptb && meta_win . skip_taskbar &&
2579
+ // ignore wm_class == null + Gjs and
2580
+ // are skip taskbar true
2581
+ ( meta_win . get_wm_class ( ) !== null &&
2582
+ meta_win . get_wm_class ( ) !== "Gjs" ) ) ||
2583
+ default_isoverviewwindow_ws ( win ) ;
2584
+ } ;
2585
+ }
2583
2586
}
2584
2587
2585
2588
// Handle _getCaption errors
2586
2589
if ( GNOME_VERSION ?. startsWith ( "3.36" ) ) {
2587
2590
// imports.ui.windowPreview is not in 3.36,
2588
2591
// _getCaption() is still in workspace.js
2589
- if ( ! default_getcaption_workspace )
2592
+ if ( ! default_getcaption_workspace ) {
2590
2593
default_getcaption_workspace = Workspace . prototype . _getCaption ;
2591
- Workspace . prototype . _getCaption = function ( ) {
2592
- if ( this . metaWindow . title )
2593
- return this . metaWindow . title ;
2594
-
2595
- let tracker = Shell . WindowTracker . get_default ( ) ;
2596
- let app = tracker . get_window_app ( this . metaWindow ) ;
2597
- return app ? app . get_name ( ) : "" ;
2594
+ // 3.36 _getCaption
2595
+ Workspace . prototype . _getCaption = function ( ) {
2596
+ let metaWindow = this . _windowClone . metaWindow ;
2597
+ if ( metaWindow . title )
2598
+ return metaWindow . title ;
2599
+
2600
+ let tracker = Shell . WindowTracker . get_default ( ) ;
2601
+ let app = tracker . get_window_app ( metaWindow ) ;
2602
+ return app ? app . get_name ( ) : "" ;
2603
+ }
2598
2604
}
2599
2605
} else {
2600
2606
const { WindowPreview } = imports . ui . windowPreview ;
2601
- if ( ! default_getcaption_windowpreview )
2607
+ if ( ! default_getcaption_windowpreview ) {
2602
2608
default_getcaption_windowpreview = WindowPreview . prototype . _getCaption ;
2603
- WindowPreview . prototype . _getCaption = function ( ) {
2604
- if ( this . metaWindow . title )
2605
- return this . metaWindow . title ;
2609
+ log . debug ( `override workspace._getCaption` ) ;
2610
+ // 3.38 _getCaption
2611
+ WindowPreview . prototype . _getCaption = function ( ) {
2612
+ if ( this . metaWindow . title )
2613
+ return this . metaWindow . title ;
2606
2614
2607
- let tracker = Shell . WindowTracker . get_default ( ) ;
2608
- let app = tracker . get_window_app ( this . metaWindow ) ;
2609
- return app ? app . get_name ( ) : "" ;
2610
- } ;
2615
+ let tracker = Shell . WindowTracker . get_default ( ) ;
2616
+ let app = tracker . get_window_app ( this . metaWindow ) ;
2617
+ return app ? app . get_name ( ) : "" ;
2618
+ } ;
2619
+ }
2611
2620
}
2612
2621
2613
2622
// Handle the workspace thumbnail
2614
- if ( ! default_isoverviewwindow_ws_thumbnail )
2623
+ if ( ! default_isoverviewwindow_ws_thumbnail ) {
2615
2624
default_isoverviewwindow_ws_thumbnail =
2616
2625
WorkspaceThumbnail . prototype . _isOverviewWindow ;
2617
- WorkspaceThumbnail . prototype . _isOverviewWindow = function ( win : any ) {
2618
- let meta_win = win . get_meta_window ( ) ;
2619
- // wm_class Gjs needs to be skipped to prevent the ghost window in
2620
- // workspace and overview
2621
- let show_skiptb = ! cfg . skiptaskbar_shall_hide ( meta_win ) ;
2622
- return ( show_skiptb && meta_win . skip_taskbar && meta_win . get_wm_class ( ) !== "Gjs" ) ||
2623
- default_isoverviewwindow_ws_thumbnail ( win ) ;
2624
- } ;
2626
+ WorkspaceThumbnail . prototype . _isOverviewWindow = function ( win : any ) {
2627
+ let meta_win = win . get_meta_window ( ) ;
2628
+ // wm_class Gjs needs to be skipped to prevent the ghost window in
2629
+ // workspace and overview
2630
+ let show_skiptb = ! cfg . skiptaskbar_shall_hide ( meta_win ) ;
2631
+ return ( show_skiptb && meta_win . skip_taskbar &&
2632
+ // ignore wm_class == null + Gjs and
2633
+ // are skip taskbar true
2634
+ ( meta_win . get_wm_class ( ) !== null &&
2635
+ meta_win . get_wm_class ( ) !== "Gjs" ) ) ||
2636
+ default_isoverviewwindow_ws_thumbnail ( win ) ;
2637
+ } ;
2638
+ }
2625
2639
2626
2640
// Handle switch-applications
2627
- if ( ! default_init_appswitcher )
2641
+ if ( ! default_init_appswitcher ) {
2628
2642
default_init_appswitcher = AppSwitcher . prototype . _init ;
2629
- // Do not use the Shell.AppSystem apps
2630
- AppSwitcher . prototype . _init = function ( _apps : any , altTabPopup : any ) {
2631
- // Simulate super._init(true);
2632
- SwitcherList . prototype . _init . call ( this , true ) ;
2633
- this . icons = [ ] ;
2634
- this . _arrows = [ ] ;
2635
-
2636
- let windowTracker = Shell . WindowTracker . get_default ( ) ;
2637
- let settings = new Gio . Settings ( { schema_id : 'org.gnome.shell.app-switcher' } ) ;
2638
-
2639
- let workspace = null ;
2640
- if ( settings . get_boolean ( 'current-workspace-only' ) ) {
2641
- let workspaceManager = global . workspace_manager ;
2642
- workspace = workspaceManager . get_active_workspace ( ) ;
2643
- }
2644
-
2645
- let allWindows = global . display . get_tab_list ( Meta . TabList . NORMAL_ALL , workspace ) ;
2646
- let allRunningSkipTaskbarApps = allWindows . filter ( ( w , i , a ) => {
2647
- if ( w ) {
2648
- let found_idx : any ;
2649
- // Find the first instance using wm_class
2650
- for ( let index = 0 ; index < a . length ; index ++ ) {
2651
- if ( a [ index ] . get_wm_class ( ) === w . get_wm_class ( ) ) {
2652
- found_idx = index ;
2653
- break ;
2643
+ // Do not use the Shell.AppSystem apps
2644
+ AppSwitcher . prototype . _init = function ( _apps : any , altTabPopup : any ) {
2645
+ // Simulate super._init(true);
2646
+ SwitcherList . prototype . _init . call ( this , true ) ;
2647
+ this . icons = [ ] ;
2648
+ this . _arrows = [ ] ;
2649
+
2650
+ let windowTracker = Shell . WindowTracker . get_default ( ) ;
2651
+ let settings = new Gio . Settings ( { schema_id : 'org.gnome.shell.app-switcher' } ) ;
2652
+
2653
+ let workspace = null ;
2654
+ if ( settings . get_boolean ( 'current-workspace-only' ) ) {
2655
+ let workspaceManager = global . workspace_manager ;
2656
+ workspace = workspaceManager . get_active_workspace ( ) ;
2657
+ }
2658
+
2659
+ let allWindows = global . display . get_tab_list ( Meta . TabList . NORMAL_ALL , workspace ) ;
2660
+ let allRunningSkipTaskbarApps = allWindows . filter ( ( w , i , a ) => {
2661
+ if ( w ) {
2662
+ let found_idx : any ;
2663
+ // Find the first instance using wm_class
2664
+ for ( let index = 0 ; index < a . length ; index ++ ) {
2665
+ if ( a [ index ] . get_wm_class ( ) === w . get_wm_class ( ) ) {
2666
+ found_idx = index ;
2667
+ break ;
2668
+ }
2654
2669
}
2670
+ return found_idx == i ;
2655
2671
}
2656
- return found_idx == i ;
2657
- }
2658
- } ) ;
2672
+ } ) ;
2659
2673
2660
- for ( let i = 0 ; i < allRunningSkipTaskbarApps . length ; i ++ ) {
2661
- let meta_win = allRunningSkipTaskbarApps [ i ] ;
2662
- let show_skiptb = ! cfg . skiptaskbar_shall_hide ( meta_win ) ;
2663
- if ( meta_win . is_skip_taskbar ( ) && ! show_skiptb ) continue ;
2664
- let appIcon = new AppIcon ( windowTracker . get_window_app ( meta_win ) ) ;
2665
- appIcon . cachedWindows = allWindows . filter (
2666
- w => windowTracker . get_window_app ( w ) === appIcon . app ) ;
2667
- if ( appIcon . cachedWindows . length > 0 )
2668
- this . _addIcon ( appIcon ) ;
2669
- }
2674
+ for ( let i = 0 ; i < allRunningSkipTaskbarApps . length ; i ++ ) {
2675
+ let meta_win = allRunningSkipTaskbarApps [ i ] ;
2676
+ let show_skiptb = ! cfg . skiptaskbar_shall_hide ( meta_win ) ;
2677
+ if ( meta_win . is_skip_taskbar ( ) && ! show_skiptb ) continue ;
2678
+ let appIcon = new AppIcon ( windowTracker . get_window_app ( meta_win ) ) ;
2679
+ appIcon . cachedWindows = allWindows . filter (
2680
+ w => windowTracker . get_window_app ( w ) === appIcon . app ) ;
2681
+ if ( appIcon . cachedWindows . length > 0 )
2682
+ this . _addIcon ( appIcon ) ;
2683
+ }
2670
2684
2671
- this . _curApp = - 1 ;
2672
- this . _altTabPopup = altTabPopup ;
2673
- this . _mouseTimeOutId = 0 ;
2685
+ this . _curApp = - 1 ;
2686
+ this . _altTabPopup = altTabPopup ;
2687
+ this . _mouseTimeOutId = 0 ;
2674
2688
2675
- this . connect ( 'destroy' , this . _onDestroy . bind ( this ) ) ;
2689
+ this . connect ( 'destroy' , this . _onDestroy . bind ( this ) ) ;
2690
+ }
2676
2691
}
2677
2692
2678
2693
// Handle switch-windows
2679
- if ( ! default_getwindowlist_windowswitcher )
2694
+ if ( ! default_getwindowlist_windowswitcher ) {
2680
2695
default_getwindowlist_windowswitcher = WindowSwitcherPopup . prototype . _getWindowList ;
2681
- WindowSwitcherPopup . prototype . _getWindowList = function ( ) {
2682
- let workspace = null ;
2683
-
2684
- if ( this . _settings . get_boolean ( 'current-workspace-only' ) ) {
2685
- let workspaceManager = global . workspace_manager ;
2686
- workspace = workspaceManager . get_active_workspace ( ) ;
2687
- }
2688
-
2689
- let windows = global . display . get_tab_list ( Meta . TabList . NORMAL_ALL ,
2690
- workspace ) ;
2691
- return windows . map ( w => {
2692
- let show_skiptb = ! cfg . skiptaskbar_shall_hide ( w ) ;
2693
- let meta_window = w . is_attached_dialog ( ) ? w . get_transient_for ( ) : w ;
2694
- if ( meta_window ) {
2695
- if ( ! meta_window . is_skip_taskbar ( ) ||
2696
- meta_window . is_skip_taskbar ( ) && show_skiptb ) {
2697
- return meta_window ;
2698
- }
2696
+ WindowSwitcherPopup . prototype . _getWindowList = function ( ) {
2697
+ let workspace = null ;
2698
+
2699
+ if ( this . _settings . get_boolean ( 'current-workspace-only' ) ) {
2700
+ let workspaceManager = global . workspace_manager ;
2701
+ workspace = workspaceManager . get_active_workspace ( ) ;
2699
2702
}
2700
- return null ;
2701
- } ) . filter ( ( w , i , a ) => w != null && a . indexOf ( w ) == i ) ;
2703
+
2704
+ let windows = global . display . get_tab_list ( Meta . TabList . NORMAL_ALL ,
2705
+ workspace ) ;
2706
+ return windows . map ( w => {
2707
+ let show_skiptb = ! cfg . skiptaskbar_shall_hide ( w ) ;
2708
+ let meta_window = w . is_attached_dialog ( ) ? w . get_transient_for ( ) : w ;
2709
+ if ( meta_window ) {
2710
+ if ( ! meta_window . is_skip_taskbar ( ) ||
2711
+ meta_window . is_skip_taskbar ( ) && show_skiptb ) {
2712
+ return meta_window ;
2713
+ }
2714
+ }
2715
+ return null ;
2716
+ } ) . filter ( ( w , i , a ) => w != null && a . indexOf ( w ) == i ) ;
2717
+ }
2702
2718
}
2703
2719
}
2704
2720
0 commit comments