From 1bcc966153a557b6ab3ba236c9e468dbf0a2620e Mon Sep 17 00:00:00 2001 From: Mark Tiefenbruck Date: Mon, 24 Dec 2007 22:36:22 -0800 Subject: added resource session.screen.slit.acceptKdeDockapps --- ChangeLog | 3 +++ src/Screen.cc | 4 ++-- src/Slit.cc | 5 +++++ src/Slit.hh | 3 ++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index b3bf7f9..de91ee6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ (Format: Year/Month/Day) Changes for 1.0.1: +*07/12/25: + * Added resource session.screen.slit.acceptKdeDockapps: (Mark) + Screen.cc Slit.cc/hh *07/12/23: * Added new style items window.(un)focus.border{Width,Color} (Mark) FbWinFrameTheme.cc/hh FbWinFrame.cc diff --git a/src/Screen.cc b/src/Screen.cc index 4f42539..afbd90f 100644 --- a/src/Screen.cc +++ b/src/Screen.cc @@ -1278,7 +1278,7 @@ bool BScreen::addKdeDockapp(Window client) { FbTk::EventManager *evm = FbTk::EventManager::instance(); if (handler == 0) { #ifdef SLIT - if (slit() != 0) + if (slit() != 0 && slit()->acceptKdeDockapp()) slit()->addClient(client); else #endif // SLIT @@ -1311,7 +1311,7 @@ FluxboxWindow *BScreen::createWindow(Window client) { if (winclient->initial_state == WithdrawnState) { delete winclient; #ifdef SLIT - if (slit()) + if (slit() && !isKdeDockapp(client)) slit()->addClient(client); #endif // SLIT return 0; diff --git a/src/Slit.cc b/src/Slit.cc index 0b952c5..dbbb3ac 100644 --- a/src/Slit.cc +++ b/src/Slit.cc @@ -286,6 +286,8 @@ Slit::Slit(BScreen &scr, FbTk::XLayer &layer, const char *filename) m_strut(0), // resources // lock in first resource + m_rc_kde_dockapp(scr.resourceManager(), true, + scr.name() + ".slit.acceptKdeDockapps", scr.altName() + ".Slit.AcceptKdeDockapps"), m_rc_auto_hide(scr.resourceManager().lock(), false, scr.name() + ".slit.autoHide", scr.altName() + ".Slit.AutoHide"), // TODO: this resource name must change @@ -442,6 +444,9 @@ void Slit::addClient(Window w) { if (w == None) return; + if (!acceptKdeDockapp() && screen().isKdeDockapp(w)) + return; + // Look for slot in client list by name SlitClient *client = 0; string match_name; diff --git a/src/Slit.hh b/src/Slit.hh index aa88a5d..da21263 100644 --- a/src/Slit.hh +++ b/src/Slit.hh @@ -112,6 +112,7 @@ public: int layerNumber() const { return m_layeritem->getLayerNum(); } inline bool isHidden() const { return m_hidden; } + inline bool acceptKdeDockapp() const { return *m_rc_kde_dockapp; } inline bool doAutoHide() const { return *m_rc_auto_hide; } inline Direction direction() const { return *m_rc_direction; } inline Placement placement() const { return *m_rc_placement; } @@ -173,7 +174,7 @@ private: static unsigned int s_eventmask; Strut *m_strut; - FbTk::Resource m_rc_auto_hide, m_rc_maximize_over; + FbTk::Resource m_rc_kde_dockapp, m_rc_auto_hide, m_rc_maximize_over; FbTk::Resource m_rc_placement; FbTk::Resource m_rc_direction; FbTk::Resource m_rc_alpha, m_rc_on_head; -- cgit v0.11.2