kde dockapp in systray

This commit is contained in:
fluxgen 2004-04-19 22:42:26 +00:00
parent 09c0d67fad
commit abda1490d8
2 changed files with 10 additions and 41 deletions

View file

@ -22,7 +22,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
// $Id: Slit.cc,v 1.92 2004/02/20 09:29:06 fluxgen Exp $ // $Id: Slit.cc,v 1.93 2004/04/19 22:42:05 fluxgen Exp $
#include "Slit.hh" #include "Slit.hh"
@ -487,39 +487,7 @@ void Slit::addClient(Window w) {
XWindowAttributes attrib; XWindowAttributes attrib;
#ifdef KDE #ifdef KDE
if (screen().isKdeDockapp(w))
//Check and see if new client is a KDE dock applet
//If so force reasonable size
bool iskdedockapp = false;
Atom ajunk;
int ijunk;
unsigned long *data = 0, uljunk;
// Check if KDE v2.x dock applet
if (XGetWindowProperty(disp, w,
m_kwm2_dockwindow, 0l, 1l, False,
m_kwm2_dockwindow,
&ajunk, &ijunk, &uljunk, &uljunk,
(unsigned char **) &data) == Success && data) {
iskdedockapp = (data && data[0] != 0);
XFree((void *) data);
data = 0;
}
// Check if KDE v1.x dock applet
if (!iskdedockapp) {
if (XGetWindowProperty(disp, w,
m_kwm1_dockwindow, 0l, 1l, False,
m_kwm1_dockwindow,
&ajunk, &ijunk, &uljunk, &uljunk,
(unsigned char **) &data) == Success && data) {
iskdedockapp = (data && data[0] != 0);
XFree((void *) data);
data = 0;
}
}
if (iskdedockapp)
client->resize(24, 24); client->resize(24, 24);
else else
#endif // KDE #endif // KDE
@ -549,13 +517,13 @@ void Slit::addClient(Window w) {
client->enableEvents(); client->enableEvents();
// flush events // flush events
XFlush(disp); // XFlush(disp);
// add slit client to eventmanager // add slit client to eventmanager
FbTk::EventManager::instance()->add(*this, client->clientWindow()); FbTk::EventManager::instance()->add(*this, client->clientWindow());
FbTk::EventManager::instance()->add(*this, client->iconWindow()); FbTk::EventManager::instance()->add(*this, client->iconWindow());
frame.window.show(); // frame.window.show();
clearWindow(); clearWindow();
reconfigure(); reconfigure();

View file

@ -22,7 +22,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
/// $Id: Slit.hh,v 1.38 2003/08/29 10:30:46 fluxgen Exp $ /// $Id: Slit.hh,v 1.39 2004/04/19 22:42:26 fluxgen Exp $
#ifndef SLIT_HH #ifndef SLIT_HH
#define SLIT_HH #define SLIT_HH
@ -49,7 +49,7 @@ class Strut;
/// Handles dock apps /// Handles dock apps
class Slit: public FbTk::EventHandler, public FbTk::Observer { class Slit: public FbTk::EventHandler, public FbTk::Observer {
public: public:
typedef std::list<SlitClient *> SlitClients;
/** /**
Client alignment Client alignment
*/ */
@ -63,6 +63,8 @@ public:
Slit(BScreen &screen, FbTk::XLayer &layer, const char *filename = 0); Slit(BScreen &screen, FbTk::XLayer &layer, const char *filename = 0);
virtual ~Slit(); virtual ~Slit();
void show() { frame.window.show(); }
void hide() { frame.window.hide(); }
void setDirection(Direction dir); void setDirection(Direction dir);
void setPlacement(Placement place); void setPlacement(Placement place);
void setAutoHide(bool val); void setAutoHide(bool val);
@ -115,7 +117,8 @@ public:
inline unsigned int width() const { return frame.width; } inline unsigned int width() const { return frame.width; }
inline unsigned int height() const { return frame.height; } inline unsigned int height() const { return frame.height; }
const SlitClients &clients() const { return m_client_list; }
SlitClients &clients() { return m_client_list; }
private: private:
void clearWindow(); void clearWindow();
void setupMenu(); void setupMenu();
@ -131,8 +134,6 @@ private:
BScreen &m_screen; BScreen &m_screen;
FbTk::Timer m_timer; FbTk::Timer m_timer;
typedef std::list<SlitClient *> SlitClients;
SlitClients m_client_list; SlitClients m_client_list;
FbMenu m_slitmenu, m_placement_menu, m_clientlist_menu; FbMenu m_slitmenu, m_placement_menu, m_clientlist_menu;
std::auto_ptr<LayerMenu<Slit> > m_layermenu; std::auto_ptr<LayerMenu<Slit> > m_layermenu;