all repos — fluxbox @ 36489e4a17df27965ff14b7fd0a9482b4cf47882

custom fork of the fluxbox windowmanager

Set WM_WINDOW_ROLE for fluxbox windows
Vladimir A. Pavlov pv4@bk.ru
commit

36489e4a17df27965ff14b7fd0a9482b4cf47882

parent

7a404e7fbca7894cdda76f7b0ddfed855a732424

6 files changed, 15 insertions(+), 0 deletions(-)

jump to
M src/FbMenu.ccsrc/FbMenu.cc

@@ -33,6 +33,7 @@ FbTk::ImageControl &imgctrl, FbTk::Layer &layer):

FbTk::Menu(tm, imgctrl), m_layeritem(fbwindow(), layer) { + fbwindow().setWindowRole("fluxbox-menu"); } void FbMenu::buttonPressEvent(XButtonEvent &be) {
M src/FbTk/FbWindow.ccsrc/FbTk/FbWindow.cc

@@ -265,6 +265,13 @@ void FbWindow::setName(const char *name) {

XStoreName(display(), m_window, name); } +void FbWindow::setWindowRole(const char *windowRole) { + XTextProperty tp; + XStringListToTextProperty(const_cast<char **>(&windowRole), 1, &tp); + XSetTextProperty(display(), m_window, &tp, XInternAtom(display(), "WM_WINDOW_ROLE", False)); + XFree(tp.value); +} + void FbWindow::setEventMask(long mask) { XSelectInput(display(), m_window, mask); }
M src/FbTk/FbWindow.hhsrc/FbTk/FbWindow.hh

@@ -87,6 +87,8 @@ virtual void setBorderColor(const FbTk::Color &border_color);

virtual void setBorderWidth(unsigned int size); /// set window name ("title") void setName(const char *name); + /// set window role + void setWindowRole(const char *windowRole); void setEventMask(long mask); /// clear window with background pixmap or color virtual void clear();
M src/Slit.ccsrc/Slit.cc

@@ -262,6 +262,8 @@ scr.name() + ".slit.layer", scr.altName() + ".Slit.Layer") {

_FB_USES_NLS; + frame.window.setWindowRole("fluxbox-slit"); + // attach to theme and root window change signal join(theme().reconfigSig(), FbTk::MemFun(*this, &Slit::reconfigure));
M src/TextDialog.ccsrc/TextDialog.cc

@@ -50,6 +50,7 @@ m_screen(screen),

m_move_x(0), m_move_y(0), m_pixmap(0){ + setWindowRole("fluxbox-dialog-text"); init(); }
M src/Toolbar.ccsrc/Toolbar.cc

@@ -225,6 +225,8 @@ m_shape(new FbTk::Shape(frame.window, 0)),

m_resize_lock(false) { _FB_USES_NLS; + frame.window.setWindowRole("fluxbox-toolbar"); + // get this on antialias change m_signal_tracker.join(screen().reconfigureSig(), FbTk::MemFunIgnoreArgs(*this, &Toolbar::reconfigure));