From 1e145051c7f7eb680ac28a1a869cb17a8a21daf5 Mon Sep 17 00:00:00 2001 From: rathnor Date: Sun, 27 Apr 2003 15:53:53 +0000 Subject: fix remember to match on instance rather than class name Also make remember menu appear on transients, only disabled --- src/Remember.cc | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/Remember.cc b/src/Remember.cc index d92b4ec..cbd8f59 100644 --- a/src/Remember.cc +++ b/src/Remember.cc @@ -20,7 +20,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Remember.cc,v 1.8 2003/04/26 18:56:39 fluxgen Exp $ +// $Id: Remember.cc,v 1.9 2003/04/27 15:53:53 rathnor Exp $ #include "Remember.hh" #include "StringUtil.hh" @@ -135,20 +135,20 @@ const char * getWMClass(Window w) { cerr<<"Failed to read class hint!"<(ch.res_name); + m_instance_name = const_cast(ch.res_name); XFree(ch.res_name); - } else {} - //m_instance_name = ""; + } else + m_instance_name = ""; if (ch.res_class != 0) { - m_class_name = const_cast(ch.res_class); + //m_class_name = const_cast(ch.res_class); XFree(ch.res_class); } else { - m_class_name = ""; + //m_class_name = ""; } - return m_class_name.c_str(); + return m_instance_name.c_str(); } } @@ -543,6 +543,18 @@ void Remember::forgetAttrib(WinClient &winclient, Attribute attrib) { void Remember::setupWindow(FluxboxWindow &win) { WinClient &winclient = win.winClient(); + // we don't touch the window if it is a transient + // of something else + if (winclient.transientFor()) { + // still put something in the menu so people don't get confused + // so, we add a disabled item... + FbTk::MenuItem *item = new FbTk::MenuItem("Remember..."); + item->setEnabled(false); + win.getWindowmenu().insert(item, win.getWindowmenu().numberOfItems()-2); + win.getWindowmenu().update(); + return; + } + // add the menu, this -2 is somewhat dodgy... :-/ // All windows get the remember menu. // TODO: nls @@ -551,11 +563,6 @@ void Remember::setupWindow(FluxboxWindow &win) { win.getWindowmenu().numberOfItems()-2); win.getWindowmenu().update(); - // we don't touch the window if it is a transient - // of something else - if (winclient.transientFor()) - return; - Application *app = find(winclient); if (!app) return; // nothing to do -- cgit v0.11.2