21 #include <twinmodule.h>
25 #include "karambaapp.h"
26 #include "showdesktop.h"
27 #include "showdesktop.moc"
35 ShowDesktop::ShowDesktop()
37 , showingDesktop( false )
40 tWinModule =
new TWinModule(
this );
43 connect( tWinModule, TQ_SIGNAL(currentDesktopChanged(
int)),
44 TQ_SLOT(slotCurrentDesktopChanged(
int)));
45 connect( tWinModule, TQ_SIGNAL(windowChanged(WId,
unsigned int)),
46 TQ_SLOT(slotWindowChanged(WId,
unsigned int)));
49 void ShowDesktop::slotCurrentDesktopChanged(
int)
54 void ShowDesktop::slotWindowChanged(WId w,
unsigned int dirty)
60 if ( dirty & NET::XAWMState )
62 NETWinInfo inf(tqt_xdisplay(), w, tqt_xrootwin(),
63 NET::XAWMState | NET::WMWindowType);
64 NET::WindowType windowType = inf.windowType(NET::AllTypesMask);
65 if ((windowType == NET::Normal || windowType == NET::Unknown)
66 && inf.mappingState() == NET::Visible )
69 iconifiedList.clear();
70 showingDesktop =
false;
71 emit desktopShown(
false );
76 void ShowDesktop::showDesktop(
bool b )
78 if( b == showingDesktop )
return;
83 iconifiedList.clear();
84 const TQValueList<WId> windows = tWinModule->windows();
85 TQValueList<WId>::ConstIterator it;
86 TQValueList<WId>::ConstIterator end( windows.end() );
87 for ( it=windows.begin(); it!=end; ++it ) {
89 NETWinInfo info( tqt_xdisplay(), w, tqt_xrootwin(),
90 NET::XAWMState | NET::WMDesktop );
91 if ( info.mappingState() == NET::Visible &&
92 ( info.desktop() == NETWinInfo::OnAllDesktops
93 || info.desktop() == (
int) tWinModule->currentDesktop() )
95 iconifiedList.append( w );
100 TQValueList<WId>::ConstIterator endInconifiedList( iconifiedList.end() );
101 for ( it=iconifiedList.begin(); it!=endInconifiedList; ++it ) {
102 KWin::iconifyWindow( *it,
false );
105 TQValueList<WId>::ConstIterator it;
106 TQValueList<WId>::ConstIterator end( iconifiedList.end() );
107 for ( it=iconifiedList.begin(); it!=end; ++it ) {
108 KWin::deIconifyWindow( *it,
false );
112 emit desktopShown( showingDesktop );
Singleton class that handles desktop access (minimizing all windows)