aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfluxgen <fluxgen>2004-04-19 22:42:26 (GMT)
committerfluxgen <fluxgen>2004-04-19 22:42:26 (GMT)
commitabda1490d862606989664355d35d391eecbe8ffa (patch)
tree458282f4703760bf8db6074e49820292002057f5
parent09c0d67fadb098f06c47f925de2308202cb57a92 (diff)
downloadfluxbox_paul-abda1490d862606989664355d35d391eecbe8ffa.zip
fluxbox_paul-abda1490d862606989664355d35d391eecbe8ffa.tar.bz2
kde dockapp in systray
-rw-r--r--src/Slit.cc40
-rw-r--r--src/Slit.hh11
2 files changed, 10 insertions, 41 deletions
diff --git a/src/Slit.cc b/src/Slit.cc
index 08378ed..2ef77c4 100644
--- a/src/Slit.cc
+++ b/src/Slit.cc
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: Slit.cc,v 1.92 2004/02/20 09:29:06 fluxgen Exp $ 25// $Id: Slit.cc,v 1.93 2004/04/19 22:42:05 fluxgen Exp $
26 26
27#include "Slit.hh" 27#include "Slit.hh"
28 28
@@ -487,39 +487,7 @@ void Slit::addClient(Window w) {
487 XWindowAttributes attrib; 487 XWindowAttributes attrib;
488 488
489#ifdef KDE 489#ifdef KDE
490 490 if (screen().isKdeDockapp(w))
491 //Check and see if new client is a KDE dock applet
492 //If so force reasonable size
493 bool iskdedockapp = false;
494 Atom ajunk;
495 int ijunk;
496 unsigned long *data = 0, uljunk;
497
498 // Check if KDE v2.x dock applet
499 if (XGetWindowProperty(disp, w,
500 m_kwm2_dockwindow, 0l, 1l, False,
501 m_kwm2_dockwindow,
502 &ajunk, &ijunk, &uljunk, &uljunk,
503 (unsigned char **) &data) == Success && data) {
504 iskdedockapp = (data && data[0] != 0);
505 XFree((void *) data);
506 data = 0;
507 }
508
509 // Check if KDE v1.x dock applet
510 if (!iskdedockapp) {
511 if (XGetWindowProperty(disp, w,
512 m_kwm1_dockwindow, 0l, 1l, False,
513 m_kwm1_dockwindow,
514 &ajunk, &ijunk, &uljunk, &uljunk,
515 (unsigned char **) &data) == Success && data) {
516 iskdedockapp = (data && data[0] != 0);
517 XFree((void *) data);
518 data = 0;
519 }
520 }
521
522 if (iskdedockapp)
523 client->resize(24, 24); 491 client->resize(24, 24);
524 else 492 else
525#endif // KDE 493#endif // KDE
@@ -549,13 +517,13 @@ void Slit::addClient(Window w) {
549 client->enableEvents(); 517 client->enableEvents();
550 518
551 // flush events 519 // flush events
552 XFlush(disp); 520 // XFlush(disp);
553 521
554 // add slit client to eventmanager 522 // add slit client to eventmanager
555 FbTk::EventManager::instance()->add(*this, client->clientWindow()); 523 FbTk::EventManager::instance()->add(*this, client->clientWindow());
556 FbTk::EventManager::instance()->add(*this, client->iconWindow()); 524 FbTk::EventManager::instance()->add(*this, client->iconWindow());
557 525
558 frame.window.show(); 526 // frame.window.show();
559 clearWindow(); 527 clearWindow();
560 reconfigure(); 528 reconfigure();
561 529
diff --git a/src/Slit.hh b/src/Slit.hh
index 4209501..70c2ae5 100644
--- a/src/Slit.hh
+++ b/src/Slit.hh
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25/// $Id: Slit.hh,v 1.38 2003/08/29 10:30:46 fluxgen Exp $ 25/// $Id: Slit.hh,v 1.39 2004/04/19 22:42:26 fluxgen Exp $
26 26
27#ifndef SLIT_HH 27#ifndef SLIT_HH
28#define SLIT_HH 28#define SLIT_HH
@@ -49,7 +49,7 @@ class Strut;
49/// Handles dock apps 49/// Handles dock apps
50class Slit: public FbTk::EventHandler, public FbTk::Observer { 50class Slit: public FbTk::EventHandler, public FbTk::Observer {
51public: 51public:
52 52 typedef std::list<SlitClient *> SlitClients;
53 /** 53 /**
54 Client alignment 54 Client alignment
55 */ 55 */
@@ -63,6 +63,8 @@ public:
63 Slit(BScreen &screen, FbTk::XLayer &layer, const char *filename = 0); 63 Slit(BScreen &screen, FbTk::XLayer &layer, const char *filename = 0);
64 virtual ~Slit(); 64 virtual ~Slit();
65 65
66 void show() { frame.window.show(); }
67 void hide() { frame.window.hide(); }
66 void setDirection(Direction dir); 68 void setDirection(Direction dir);
67 void setPlacement(Placement place); 69 void setPlacement(Placement place);
68 void setAutoHide(bool val); 70 void setAutoHide(bool val);
@@ -115,7 +117,8 @@ public:
115 117
116 inline unsigned int width() const { return frame.width; } 118 inline unsigned int width() const { return frame.width; }
117 inline unsigned int height() const { return frame.height; } 119 inline unsigned int height() const { return frame.height; }
118 120 const SlitClients &clients() const { return m_client_list; }
121 SlitClients &clients() { return m_client_list; }
119private: 122private:
120 void clearWindow(); 123 void clearWindow();
121 void setupMenu(); 124 void setupMenu();
@@ -131,8 +134,6 @@ private:
131 BScreen &m_screen; 134 BScreen &m_screen;
132 FbTk::Timer m_timer; 135 FbTk::Timer m_timer;
133 136
134 typedef std::list<SlitClient *> SlitClients;
135
136 SlitClients m_client_list; 137 SlitClients m_client_list;
137 FbMenu m_slitmenu, m_placement_menu, m_clientlist_menu; 138 FbMenu m_slitmenu, m_placement_menu, m_clientlist_menu;
138 std::auto_ptr<LayerMenu<Slit> > m_layermenu; 139 std::auto_ptr<LayerMenu<Slit> > m_layermenu;