@@ -8,14 +8,15 @@ use std::thread;
88#[ derive( Debug ) ]
99enum WorkerEvents {
1010 UPDATE ,
11- HIDE ( u32 , u32 ) ,
12- SHOW ( u32 , u32 ) ,
11+ HIDE ( u32 , u32 , bool ) ,
12+ SHOW ( u32 , u32 , bool ) ,
1313}
1414
1515#[ derive( Debug ) ]
1616struct Gui {
1717 windows : Arc < Mutex < Vec < WindowInfo > > > ,
1818 sender : crossbeam_channel:: Sender < WorkerEvents > ,
19+ hide_taskbar_icons : bool ,
1920}
2021
2122impl Gui {
@@ -34,19 +35,23 @@ impl Gui {
3435 * windowst. lock ( ) . unwrap ( ) = mem:: take ( & mut w) ;
3536 println ! ( "populating done" ) ;
3637 }
37- WorkerEvents :: HIDE ( pid, hwnd) => {
38+ WorkerEvents :: HIDE ( pid, hwnd, show_on_taskbar ) => {
3839 println ! ( "wanna hide {:?}" , hwnd) ;
39- injector:: set_window_props_with_pid ( pid, hwnd, true ) ;
40+ injector:: set_window_props_with_pid ( pid, hwnd, true , show_on_taskbar ) ;
4041 }
41- WorkerEvents :: SHOW ( pid, hwnd) => {
42+ WorkerEvents :: SHOW ( pid, hwnd, show_on_taskbar ) => {
4243 println ! ( "wanna show {:?}" , hwnd) ;
43- injector:: set_window_props_with_pid ( pid, hwnd, false ) ;
44+ injector:: set_window_props_with_pid ( pid, hwnd, false , show_on_taskbar ) ;
4445 }
4546 }
4647 }
4748 } ) ;
4849
49- Gui { windows, sender }
50+ Gui {
51+ windows,
52+ sender,
53+ hide_taskbar_icons : false ,
54+ }
5055 }
5156}
5257
@@ -67,6 +72,7 @@ impl eframe::App for Gui {
6772 }
6873 egui:: CentralPanel :: default ( ) . show ( ctx, |ui| {
6974 ui. heading ( "Hide applications" ) ;
75+ ui. add_space ( 4.0 ) ;
7076
7177 egui:: ScrollArea :: vertical ( ) . show ( ui, |ui| {
7278 for window_info in self . windows . lock ( ) . unwrap ( ) . iter_mut ( ) {
@@ -75,13 +81,28 @@ impl eframe::App for Gui {
7581 ui. checkbox ( & mut window_info. hidden , & window_info. title ) ;
7682 if checkbox_response. changed ( ) {
7783 let event = if window_info. hidden {
78- WorkerEvents :: HIDE ( window_info. pid , window_info. hwnd )
84+ WorkerEvents :: HIDE (
85+ window_info. pid ,
86+ window_info. hwnd ,
87+ !self . hide_taskbar_icons ,
88+ )
7989 } else {
80- WorkerEvents :: SHOW ( window_info. pid , window_info. hwnd )
90+ WorkerEvents :: SHOW (
91+ window_info. pid ,
92+ window_info. hwnd ,
93+ !self . hide_taskbar_icons ,
94+ )
8195 } ;
8296 self . sender . send ( event) . unwrap ( ) ;
8397 }
8498 }
99+ ui. add_space ( 10.0 ) ;
100+ ui. collapsing ( "Advanced settings" , |ui| {
101+ ui. checkbox (
102+ & mut self . hide_taskbar_icons ,
103+ "Hide from Alt+Tab and Taskbar" ,
104+ )
105+ } ) ;
85106 } ) ;
86107 } ) ;
87108 }
0 commit comments