kde dockapp in systray
This commit is contained in:
parent
09c0d67fad
commit
abda1490d8
2 changed files with 10 additions and 41 deletions
40
src/Slit.cc
40
src/Slit.cc
|
@ -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();
|
||||||
|
|
||||||
|
|
11
src/Slit.hh
11
src/Slit.hh
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue