kde dockapp in systray
fluxgen fluxgen
2 files changed,
10 insertions(+),
41 deletions(-)
M
src/Slit.cc
→
src/Slit.cc
@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // 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"@@ -487,39 +487,7 @@
XWindowAttributes attrib; #ifdef KDE - - //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) + if (screen().isKdeDockapp(w)) client->resize(24, 24); else #endif // KDE@@ -549,13 +517,13 @@ // setup event for slit client window
client->enableEvents(); // flush events - XFlush(disp); + // XFlush(disp); // add slit client to eventmanager FbTk::EventManager::instance()->add(*this, client->clientWindow()); FbTk::EventManager::instance()->add(*this, client->iconWindow()); - frame.window.show(); + // frame.window.show(); clearWindow(); reconfigure();
M
src/Slit.hh
→
src/Slit.hh
@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // 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 #define SLIT_HH@@ -49,7 +49,7 @@
/// Handles dock apps class Slit: public FbTk::EventHandler, public FbTk::Observer { public: - + typedef std::list<SlitClient *> SlitClients; /** Client alignment */@@ -63,6 +63,8 @@
Slit(BScreen &screen, FbTk::XLayer &layer, const char *filename = 0); virtual ~Slit(); + void show() { frame.window.show(); } + void hide() { frame.window.hide(); } void setDirection(Direction dir); void setPlacement(Placement place); void setAutoHide(bool val);@@ -115,7 +117,8 @@ inline int y() const { return (m_hidden ? frame.y_hidden : frame.y); }
inline unsigned int width() const { return frame.width; } inline unsigned int height() const { return frame.height; } - + const SlitClients &clients() const { return m_client_list; } + SlitClients &clients() { return m_client_list; } private: void clearWindow(); void setupMenu();@@ -130,8 +133,6 @@ bool m_hidden;
BScreen &m_screen; FbTk::Timer m_timer; - - typedef std::list<SlitClient *> SlitClients; SlitClients m_client_list; FbMenu m_slitmenu, m_placement_menu, m_clientlist_menu;