diff options
author | Kensuke Matsuzaki <zakki@peppermint.jp> | 2011-07-23 16:48:21 +0100 |
---|---|---|
committer | Jon TURNEY <jon.turney@dronecode.org.uk> | 2011-11-09 18:20:23 +0000 |
commit | 5c9366f4f00014baa6ae10ce79ebec0bf0364830 (patch) | |
tree | 02f3cf5c4a18779c66dff01460d77000b97d9099 | |
parent | 870fb3ecb9ac84ed3479abed675c64fa342d1a4c (diff) |
xwinwm-0.0.3
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | README | 9 | ||||
-rw-r--r-- | TODO | 10 | ||||
-rw-r--r-- | nls/Makefile.am | 7 | ||||
-rw-r--r-- | src/Screen.cc | 6 | ||||
-rw-r--r-- | src/Window.cc | 229 | ||||
-rw-r--r-- | src/Window.hh | 12 | ||||
-rw-r--r-- | src/Workspace.cc | 14 | ||||
-rw-r--r-- | src/blackbox.cc.in | 10 | ||||
-rw-r--r-- | src/blackbox.hh | 10 |
10 files changed, 136 insertions, 186 deletions
@@ -1,6 +1,21 @@ +2004-01-16 Kensuke Matsuzaki <zakki@peppermint.jp> + + * src/Window.cc: direct call ShowWindow + +2004-01-06 Kensuke Matsuzaki <zakki@peppermint.jp> + + * Window.cc, Screen.cc, blackbox.cc.in : improve minimize(iconify)/restore handling. + +2003-12-29 Kensuke Matsuzaki <zakki@peppermint.jp> + + * Delete code related stick and shade. + + * confiqure.in: Enable shape extention. + Changes from blackbox to hackedbox: - added two configure options "--enable-bg-utils and --enable-bloat" - Made all the neccesary hacks to make it "hackedbox" :-) + Changes from hackedbox to hackedbox for win: - deleted window decoration and menu - add Windows rootless window management extension @@ -1,6 +1,11 @@ --- README for XWinWM 0.8.x -- +-- README for XWinWM 0.0.x -- -This is the README for XWinWM 0.8.x release. +This is the README for XWinWM 0.0.x release. + +XWinWM is a window manager for Cygwin/X's rootless mode. +XWinWM is based on Hackedbox. + +WindowsWM extension is needed. -- README for HackedBox 0.8.x -- @@ -1,8 +1,16 @@ -- TODO * Write documents * Delete unused code -* Implement minimize(iconify) +* Implement minimize(iconify) <- OK? * Clean up nls +* Window position and gravity +* ICCCM and EWMH compliance +* MS-IME to XIM/iiimf/uim bridge +* Alpha blending with RENDER extention and Layered window <-- Cygwin/X side +* Large cursor with Xcursor +* Customizable menu +* Port some feture to -multiwindow mode + -- TODO for Blackbox - an X11 Window manager diff --git a/nls/Makefile.am b/nls/Makefile.am index f6b56c6..fa7372a 100644 --- a/nls/Makefile.am +++ b/nls/Makefile.am @@ -1,9 +1,10 @@ # nls/Makefile.am for Blackbox - an X11 Window Manager NLSTEST = @NLS@ -SUBDIRS = C da_DK de_DE es_AR es_ES et_EE fr_FR hu_HU it_IT ja_JP ko_KR nl_NL \ - no_NO pl_PL pt_BR ro_RO ru_RU sk_SK sl_SI sv_SE tr_TR uk_UA \ - zh_CN zh_TW +SUBDIRS = C +# da_DK de_DE es_AR es_ES et_EE fr_FR hu_HU it_IT ja_JP ko_KR nl_NL \ +# no_NO pl_PL pt_BR ro_RO ru_RU sk_SK sl_SI sv_SE tr_TR uk_UA \ +# zh_CN zh_TW MAINTAINERCLEANFILES = Makefile.in blackbox-nls.hh DISTCLEANFILES = blackbox-nls.hh diff --git a/src/Screen.cc b/src/Screen.cc index 144da2b..f0baa4e 100644 --- a/src/Screen.cc +++ b/src/Screen.cc @@ -426,7 +426,7 @@ void BScreen::changeWorkspaceID(unsigned int id) { #ifdef ADD_BLOAT toolbar->redrawWorkspaceLabel(True); #endif // ADD_BLOAT - + updateNetizenCurrentWorkspace(); } @@ -617,7 +617,7 @@ const string BScreen::getNameOfWorkspace(unsigned int id) { void BScreen::reassociateWindow(BlackboxWindow *w, unsigned int wkspc_id, - bool ignore_sticky) { + bool /*ignore_sticky*/) { if (! w) return; if (wkspc_id == BSENTINEL) @@ -629,7 +629,7 @@ void BScreen::reassociateWindow(BlackboxWindow *w, unsigned int wkspc_id, if (w->isIconic()) { removeIcon(w); getWorkspace(wkspc_id)->addWindow(w); - } else if (ignore_sticky || ! w->isStuck()) { + } else { getWorkspace(w->getWorkspaceNumber())->removeWindow(w); getWorkspace(wkspc_id)->addWindow(w); } diff --git a/src/Window.cc b/src/Window.cc index d1db058..fb3acde 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -59,6 +59,20 @@ extern "C" { #include "Window.hh" #include "Workspace.hh" +/* Fixups to prevent collisions between Windows and X headers */ +#undef MINSHORT +#undef MAXSHORT +#define BOOL WIN_BOOL +#define INT32 WIN_INT32 + +/* Flags for Windows header options */ +#define NONAMELESSUNION +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif + +#include <windows.h> + /* * Initializes the class with default values/the window's set initial values. @@ -110,8 +124,8 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) { XChangeWindowAttributes(blackbox->getXDisplay(), client.window, CWEventMask|CWDontPropagate, &attrib_set); - flags.moving = flags.resizing = flags.shaded = flags.visible = - flags.iconic = flags.focused = flags.stuck = flags.modal = + flags.moving = flags.resizing = flags.visible = + flags.iconic = flags.focused = flags.modal = flags.send_focus_message = flags.shaped = False; flags.maximized = 0; @@ -173,7 +187,7 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) { getWMClass(); XChangeProperty(blackbox->getXDisplay(), frame.window, - blackbox->WindowsWMClientWindow(), + blackbox->getWindowsWMClientWindow(), XA_INTEGER, 32, PropModeReplace, (unsigned char *) &client.window, 1); @@ -267,25 +281,6 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) { if (! getState()) current_state = initial_state; - // the following flags are set by blackbox native apps only - if (flags.shaded) { - flags.shaded = False; - initial_state = current_state; - shade(); - - /* - At this point in the life of a window, current_state should only be set - to IconicState if the window was an *icon*, not if it was shaded. - */ - if (initial_state != IconicState) - current_state = NormalState; - } - - if (flags.stuck) { - flags.stuck = False; - stick(); - } - if (flags.maximized && (functions & Func_Maximize)) remaximize(); } @@ -455,23 +450,40 @@ void BlackboxWindow::decorate(void) { } else { frame_style &= ~WindowsWMFrameStyleSizeBox; } + + short fx, fy, fw, fh; + XWindowsWMFrameGetRect(blackbox->getXDisplay(), + frame_style, frame_style_ex, 0, + frame.rect.x(), frame.rect.y(), + frame.rect.width(), frame.rect.height(), + &fx, &fy, &fw, &fh); + +#ifdef DEBUG + fprintf(stderr, "XWindowsWMFrameGetRect %d %d %d %d - %d %d %d %d\n", + frame.rect.x(), frame.rect.y(), + frame.rect.width(), frame.rect.height(), + fx, fy, fw, fh); +#endif + if (fx < 0 || fy < 0) + frame.rect.setPos(frame.rect.x()*2 - fx, frame.rect.y()*2 - fy); + XWindowsWMFrameDraw(blackbox->getXDisplay(), 0, frame.window, frame_style, frame_style_ex, - client.rect.x(), client.rect.y(), - client.rect.width(), client.rect.height()); + frame.rect.x(), frame.rect.y(), + frame.rect.width(), frame.rect.height()); XSetWindowBorder(blackbox->getXDisplay(), frame.window, screen->getBorderColor()->pixel()); int prop = 1; XChangeProperty(blackbox->getXDisplay(), frame.window, - blackbox->WindowsWMRaiseOnClick(), + blackbox->getWindowsWMRaiseOnClick(), XA_INTEGER, 32, PropModeReplace, (unsigned char *) &prop, 1); XChangeProperty(blackbox->getXDisplay(), frame.window, - blackbox->WindowsWMMouseActivate(), + blackbox->getWindowsWMMouseActivate(), XA_INTEGER, 32, PropModeReplace, (unsigned char *) &prop, 1); } @@ -598,8 +610,8 @@ void BlackboxWindow::positionWindows(void) { #if 1 //FIXME: Get Windows window's rect and use it. XMoveResizeWindow(blackbox->getXDisplay(), frame.window, - client.rect.x(), client.rect.y(), client.rect.width(), - (flags.shaded) ? 0 : client.rect.height()); + frame.rect.x(), frame.rect.y(), + frame.rect.width(), frame.rect.height()); XSetWindowBorderWidth(blackbox->getXDisplay(), frame.window, 0); XMoveResizeWindow(blackbox->getXDisplay(), client.window, 0, 0, client.rect.width(), client.rect.height()); @@ -955,8 +967,8 @@ bool BlackboxWindow::getBlackboxHints(void) { if (ret != Success || ! blackbox_hint || num != PropBlackboxHintsElements) return False; - if (blackbox_hint->flags & AttribShaded) - flags.shaded = (blackbox_hint->attrib & AttribShaded); + // if (blackbox_hint->flags & AttribShaded) + // flags.shaded = (blackbox_hint->attrib & AttribShaded); if ((blackbox_hint->flags & AttribMaxHoriz) && (blackbox_hint->flags & AttribMaxVert)) @@ -967,9 +979,6 @@ bool BlackboxWindow::getBlackboxHints(void) { else if (blackbox_hint->flags & AttribMaxHoriz) flags.maximized = (blackbox_hint->attrib & AttribMaxHoriz) ? 3 : 0; - if (blackbox_hint->flags & AttribOmnipresent) - flags.stuck = (blackbox_hint->attrib & AttribOmnipresent); - if (blackbox_hint->flags & AttribWorkspace) blackbox_attrib.workspace = blackbox_hint->workspace; @@ -1075,7 +1084,6 @@ void BlackboxWindow::getTransientInfo(void) { if (client.transient_for) { // register ourselves with our new transient_for client.transient_for->client.transientList.push_back(this); - flags.stuck = client.transient_for->flags.stuck; } } @@ -1116,7 +1124,7 @@ void BlackboxWindow::configure(int dx, int dy, frame.rect.width(), frame.rect.height(), fx, fy, fw, fh); #endif - if (fx < 0 || fy <= 0) + if (fx < 0 || fy < 0) frame.rect.setPos(frame.rect.x() - fx, frame.rect.y() - fy); #endif client.rect.setCoords(frame.rect.left(), @@ -1284,8 +1292,7 @@ bool BlackboxWindow::setInputFocus(void) { if (! validateClient()) return False; assert(! flags.iconic && - (flags.stuck || // window must be on the current workspace or sticky - blackbox_attrib.workspace == screen->getCurrentWorkspaceID())); + (blackbox_attrib.workspace == screen->getCurrentWorkspaceID())); if (! frame.rect.intersects(screen->getRect())) { // client is outside the screen, move it to the center @@ -1358,7 +1365,30 @@ void BlackboxWindow::iconify(void) { * unmap the frame window first, so when all the transients are * unmapped, we don't get an enter event in sloppy focus mode */ - XUnmapWindow(blackbox->getXDisplay(), frame.window); + //XWindowsWMFrameShowWindow (blackbox->getXDisplay(), 0, frame.window, + //WindowsWMFrameSWMinimize); + //XUnmapWindow(blackbox->getXDisplay(), frame.window); + Atom atom_return; + int format; + unsigned long ulfoo, nitems; + HWND *phWnd; + + if ((XGetWindowProperty (blackbox->getXDisplay(), frame.window, + blackbox->getWindowsWMNativeHWnd(), + 0l, 1l, False, XA_INTEGER, + &atom_return, &format, &nitems, &ulfoo, + (unsigned char **) &phWnd) == Success) + && phWnd) + { + if (*phWnd) ShowWindow (*phWnd, SW_MINIMIZE); + } + else + { + printf ("XGetWindowProperty failed. %d %d %d %d %d\n", + atom_return, format, nitems, ulfoo, phWnd); + } + XFree (phWnd); + flags.visible = False; flags.iconic = True; @@ -1377,8 +1407,8 @@ void BlackboxWindow::iconify(void) { * of them (since they are above their transient_for) for a split * second */ - screen->getWorkspace(blackbox_attrib.workspace)->removeWindow(this); - screen->addIcon(this); + //screen->getWorkspace(blackbox_attrib.workspace)->removeWindow(this); + //screen->addIcon(this); /* * we don't want this XUnmapWindow call to generate an UnmapNotify event, so @@ -1399,7 +1429,7 @@ void BlackboxWindow::iconify(void) { void BlackboxWindow::show(void) { - current_state = (flags.shaded) ? IconicState : NormalState; + current_state = NormalState; setState(current_state); XMapWindow(blackbox->getXDisplay(), client.window); @@ -1540,12 +1570,6 @@ void BlackboxWindow::maximize(unsigned int /*button*/) { constrain(TopLeft); - if (flags.shaded) { - blackbox_attrib.flags ^= AttribShaded; - blackbox_attrib.attrib ^= AttribShaded; - flags.shaded = False; - } - flags.maximized = button; configure(frame.changing.x(), frame.changing.y(), @@ -1605,65 +1629,6 @@ void BlackboxWindow::setWorkspace(unsigned int n) { } -void BlackboxWindow::shade(void) { -#if 0 //needed? - if (flags.shaded) { - flags.shaded = False; - blackbox_attrib.flags ^= AttribShaded; - blackbox_attrib.attrib ^= AttribShaded; - - if (flags.maximized) { - remaximize(); - } else { - XResizeWindow(blackbox->getXDisplay(), frame.window, - frame.inside_w, frame.inside_h); - // set the frame rect to the normal size - frame.rect.setHeight(client.rect.height() + frame.margin.top + - frame.margin.bottom); - } - - setState(NormalState); - } else { - if (! (decorations & Decor_Titlebar)) - return; // can't shade it without a titlebar! - - XResizeWindow(blackbox->getXDisplay(), frame.window, - frame.inside_w, frame.title_h); - flags.shaded = True; - blackbox_attrib.flags |= AttribShaded; - blackbox_attrib.attrib |= AttribShaded; - - setState(IconicState); - - // set the frame rect to the shaded size - frame.rect.setHeight(frame.title_h + (frame.border_w * 2)); - } -#endif -} - - -void BlackboxWindow::stick(void) { - if (flags.stuck) { - blackbox_attrib.flags ^= AttribOmnipresent; - blackbox_attrib.attrib ^= AttribOmnipresent; - - flags.stuck = False; - - if (! flags.iconic) - screen->reassociateWindow(this, BSENTINEL, True); - - setState(current_state); - } else { - flags.stuck = True; - - blackbox_attrib.flags |= AttribOmnipresent; - blackbox_attrib.attrib |= AttribOmnipresent; - - setState(current_state); - } -} - - void BlackboxWindow::redrawWindowFrame(void) const { if (decorations & Decor_Titlebar) { } @@ -1785,19 +1750,6 @@ void BlackboxWindow::restoreAttributes(void) { if (ret != Success || !net || nitems != PropBlackboxAttributesElements) return; - if (net->flags & AttribShaded && net->attrib & AttribShaded) { - flags.shaded = False; - unsigned long orig_state = current_state; - shade(); - - /* - At this point in the life of a window, current_state should only be set - to IconicState if the window was an *icon*, not if it was shaded. - */ - if (orig_state != IconicState) - current_state = WithdrawnState; - } - if (net->workspace != screen->getCurrentWorkspaceID() && net->workspace < screen->getWorkspaceCount()) { screen->reassociateWindow(this, net->workspace, True); @@ -1810,15 +1762,6 @@ void BlackboxWindow::restoreAttributes(void) { current_state = NormalState; } - if (net->flags & AttribOmnipresent && net->attrib & AttribOmnipresent) { - flags.stuck = False; - stick(); - - // if the window was on another workspace, it was going to be hidden. this - // specifies that the window should be mapped since it is sticky. - if (current_state == WithdrawnState) current_state = NormalState; - } - if (net->flags & AttribMaxHoriz || net->flags & AttribMaxVert) { blackbox_attrib.premax_x = net->premax_x; blackbox_attrib.premax_y = net->premax_y; @@ -1874,9 +1817,6 @@ void BlackboxWindow::restoreAttributes(void) { if (decorations & Decor_Titlebar) { if (functions & Func_Close) // close button is controlled by function decorations |= Decor_Close; // not decor type - } else { - if (flags.shaded) // we can not be shaded if we lack a titlebar - shade(); } if (flags.visible && frame.window) { @@ -2667,18 +2607,25 @@ void BlackboxWindow::windowsWMControllerEvent(XWindowsWMNotifyEvent *windows_wm_ case WindowsWMMaximizeWindow: //printf ("maximize 0x%08x\n", (int)c); //raise_win(c); + show(); #ifdef DEBUG fprintf (stderr, "\tWindowsWMMaximizeWindow\n"); #endif break; case WindowsWMMinimizeWindow: //printf ("minimize 0x%08x\n", (int)c); - //iconify();//FIXME: This window become hide. Configure this behavior by ext? + iconify();//FIXME: This window become hide. Configure this behavior by ext? #ifdef DEBUG fprintf (stderr,"\tWindowsWMMinimizeWindow\n"); #endif //FIXME: - screen->getWorkspace(blackbox_attrib.workspace)->lowerWindow(this); + //screen->getWorkspace(blackbox_attrib.workspace)->lowerWindow(this); + break; + case WindowsWMRestoreWindow: +#ifdef DEBUG + fprintf (stderr, "\tWindowsWMRestoreWindow\n"); +#endif + show(); break; case WindowsWMCloseWindow: #ifdef DEBUG @@ -2744,10 +2691,6 @@ void BlackboxWindow::restore(bool remap) { XChangeSaveSet(blackbox->getXDisplay(), client.window, SetModeDelete); XSelectInput(blackbox->getXDisplay(), client.window, NoEventMask); - // do not leave a shaded window as an icon unless it was an icon - if (flags.shaded && ! flags.iconic) - current_state = NormalState; - setState(current_state); restoreGravity(client.rect); @@ -2780,10 +2723,6 @@ void BlackboxWindow::timeout(void) { void BlackboxWindow::changeBlackboxHints(const BlackboxHints *net) { - if ((net->flags & AttribShaded) && - ((blackbox_attrib.attrib & AttribShaded) != - (net->attrib & AttribShaded))) - shade(); if (flags.visible && // watch out for requests when we can not be seen (net->flags & (AttribMaxVert | AttribMaxHoriz)) && @@ -2806,11 +2745,6 @@ void BlackboxWindow::changeBlackboxHints(const BlackboxHints *net) { } } - if ((net->flags & AttribOmnipresent) && - ((blackbox_attrib.attrib & AttribOmnipresent) != - (net->attrib & AttribOmnipresent))) - stick(); - if ((net->flags & AttribWorkspace) && (blackbox_attrib.workspace != net->workspace)) { screen->reassociateWindow(this, net->workspace, True); @@ -2860,9 +2794,6 @@ void BlackboxWindow::changeBlackboxHints(const BlackboxHints *net) { if (decorations & Decor_Titlebar) { if (functions & Func_Close) // close button is controlled by function decorations |= Decor_Close; // not decor type - } else { - if (flags.shaded) // we can not be shaded if we lack a titlebar - shade(); } if (flags.visible && frame.window) { diff --git a/src/Window.hh b/src/Window.hh index c7f39e5..2015771 100644 --- a/src/Window.hh +++ b/src/Window.hh @@ -128,11 +128,11 @@ private: struct _flags { bool moving, // is moving? resizing, // is resizing? - shaded, // is shaded? + //shaded, // is shaded? visible, // is visible? iconic, // is iconified? focused, // has focus? - stuck, // is omnipresent + //stuck, // is omnipresent modal, // is modal? (must be dismissed to continue) send_focus_message, // should we send focus messages to our client? shaped; // does the frame use the shape extension? @@ -274,10 +274,10 @@ public: inline bool isFocused(void) const { return flags.focused; } inline bool isVisible(void) const { return flags.visible; } inline bool isIconic(void) const { return flags.iconic; } - inline bool isShaded(void) const { return flags.shaded; } + // inline bool isShaded(void) const { return flags.shaded; } inline bool isMaximized(void) const { return flags.maximized; } inline bool isModal(void) const { return flags.modal; } - inline bool isStuck(void) const { return flags.stuck; } + //inline bool isStuck(void) const { return flags.stuck; } inline bool isIconifiable(void) const { return functions & Func_Iconify; } inline bool isMaximizable(void) const { return functions & Func_Maximize; } inline bool isResizable(void) const { return functions & Func_Resize; } @@ -322,8 +322,8 @@ public: void withdraw(void); void maximize(unsigned int button); void remaximize(void); - void shade(void); - void stick(void); + // void shade(void); + // void stick(void); void reconfigure(void); void grabButtons(void); void ungrabButtons(void); diff --git a/src/Workspace.cc b/src/Workspace.cc index e4ad772..2599e58 100644 --- a/src/Workspace.cc +++ b/src/Workspace.cc @@ -94,14 +94,6 @@ unsigned int Workspace::removeWindow(BlackboxWindow *w) { if ((w->isFocused() || w == lastfocus) && ! screen->getBlackbox()->doShutdown()) { focusFallback(w); - - // if the window is sticky, then it needs to be removed on all other - // workspaces too! - if (w->isStuck()) { - for (unsigned int i = 0; i < screen->getWorkspaceCount(); ++i) - if (i != id) - screen->getWorkspace(i)->focusFallback(w); - } } windowList.remove(w); @@ -369,7 +361,7 @@ unsigned int Workspace::getCount(void) const { void Workspace::hide(void) { BlackboxWindow *focused = screen->getBlackbox()->getFocusedWindow(); if (focused && focused->getScreen() == screen) { - assert(focused->isStuck() || focused->getWorkspaceNumber() == id); + assert(focused->getWorkspaceNumber() == id); lastfocus = focused; } else { @@ -386,8 +378,7 @@ void Workspace::hide(void) { const BlackboxWindowList::reverse_iterator end = stackingList.rend(); for (; it != end; ++it) { BlackboxWindow *bw = *it; - if (! bw->isStuck()) - bw->withdraw(); + bw->withdraw(); } } @@ -543,7 +534,6 @@ bool Workspace::smartPlacement(Rect& win, const Rect& availableArea) { Rect tmp; for (; wit != end; ++wit) { const BlackboxWindow* const curr = *wit; - if (curr->isShaded()) continue; tmp.setRect(curr->frameRect().x(), curr->frameRect().y(), curr->frameRect().width() + screen->getBorderWidth(), diff --git a/src/blackbox.cc.in b/src/blackbox.cc.in index 3d942a4..0d8b4bc 100644 --- a/src/blackbox.cc.in +++ b/src/blackbox.cc.in @@ -314,10 +314,6 @@ void Blackbox::process_event(XEvent *e) { win->deiconify(); focus = True; } - if (win->isShaded()) { - win->shade(); - focus = True; - } if (focus && (win->isTransient() || win->getScreen()->doFocusNew())) win->setInputFocus(); @@ -737,8 +733,8 @@ void Blackbox::process_event(XEvent *e) { if (win) { //printf ("\tungrab\n"); - win->ungrabButtons(); - win->grabButtons(); + //win->ungrabButtons(); + //win->grabButtons(); } setFocusedWindow(0); break; @@ -826,6 +822,8 @@ void Blackbox::init_icccm(void) { XInternAtom(getXDisplay(), WINDOWSWM_MOUSE_ACTIVATE, False); windowswm_client_window = XInternAtom(getXDisplay(), WINDOWSWM_CLIENT_WINDOW, False); + windowswm_native_hwnd = + XInternAtom(getXDisplay(), WINDOWSWM_NATIVE_HWND, False); #ifdef NEWWMSPEC net_supported = XInternAtom(getXDisplay(), "_NET_SUPPORTED", False); diff --git a/src/blackbox.hh b/src/blackbox.hh index 299fa02..e1fdd93 100644 --- a/src/blackbox.hh +++ b/src/blackbox.hh @@ -172,7 +172,7 @@ private: // property for WindowsWM Atom windowswm_raise_on_click, windowswm_mouse_activate, - windowswm_client_window; + windowswm_client_window, windowswm_native_hwnd; #ifdef NEWWMSPEC // root window properties @@ -349,12 +349,14 @@ public: inline Atom getBlackboxCycleWindowFocusAtom(void) const { return blackbox_cycle_window_focus; } - inline Atom WindowsWMRaiseOnClick(void) const + inline Atom getWindowsWMRaiseOnClick(void) const { return windowswm_raise_on_click; } - inline Atom WindowsWMMouseActivate(void) const + inline Atom getWindowsWMMouseActivate(void) const { return windowswm_mouse_activate; } - /*inline */Atom WindowsWMClientWindow(void) const + inline Atom getWindowsWMClientWindow(void) const { return windowswm_client_window; } + inline Atom getWindowsWMNativeHWnd(void) const + { return windowswm_native_hwnd; } #ifdef NEWWMSPEC // root window properties |