21 #include <twinmodule.h> 25 #include "karambaapp.h" 26 #include "showdesktop.h" 27 #include "showdesktop.moc" 35 ShowDesktop::ShowDesktop()
37 , showingDesktop( false )
40 kWinModule =
new KWinModule(
this );
43 connect( kWinModule, TQ_SIGNAL(currentDesktopChanged(
int)),
44 TQ_SLOT(slotCurrentDesktopChanged(
int)));
45 connect( kWinModule, TQ_SIGNAL(windowChanged(WId,
unsigned int)),
46 TQ_SLOT(slotWindowChanged(WId,
unsigned int)));
49 void ShowDesktop::slotCurrentDesktopChanged(
int)
55 #define NET_ALL_TYPES_MASK (NET::AllTypesMask) 57 #define NET_ALL_TYPES_MASK (-1LU) 60 void ShowDesktop::slotWindowChanged(WId w,
unsigned int dirty)
66 if ( dirty & NET::XAWMState )
68 NETWinInfo inf(tqt_xdisplay(), w, tqt_xrootwin(),
69 NET::XAWMState | NET::WMWindowType);
71 NET::WindowType windowType = inf.windowType(NET_ALL_TYPES_MASK);
73 NET::WindowType windowType = inf.windowType();
75 if ((windowType == NET::Normal || windowType == NET::Unknown)
76 && inf.mappingState() == NET::Visible )
79 iconifiedList.clear();
80 showingDesktop =
false;
81 emit desktopShown(
false );
86 void ShowDesktop::showDesktop(
bool b )
88 if( b == showingDesktop )
return;
93 iconifiedList.clear();
94 const TQValueList<WId> windows = kWinModule->windows();
95 TQValueList<WId>::ConstIterator it;
96 TQValueList<WId>::ConstIterator end( windows.end() );
97 for ( it=windows.begin(); it!=end; ++it ) {
99 NETWinInfo info( tqt_xdisplay(), w, tqt_xrootwin(),
100 NET::XAWMState | NET::WMDesktop );
101 if ( info.mappingState() == NET::Visible &&
102 ( info.desktop() == NETWinInfo::OnAllDesktops
103 || info.desktop() == (int) kWinModule->currentDesktop() )
105 iconifiedList.append( w );
110 TQValueList<WId>::ConstIterator endInconifiedList( iconifiedList.end() );
111 for ( it=iconifiedList.begin(); it!=endInconifiedList; ++it ) {
112 KWin::iconifyWindow( *it,
false );
115 TQValueList<WId>::ConstIterator it;
116 TQValueList<WId>::ConstIterator end( iconifiedList.end() );
117 for ( it=iconifiedList.begin(); it!=end; ++it ) {
118 KWin::deIconifyWindow( *it,
false );
122 emit desktopShown( showingDesktop );
Singleton class that handles desktop access (minimizing all windows)