all repos — fluxbox @ 2b168a584f05af026a9b6fdd21fb17cfb57a9e2f

custom fork of the fluxbox windowmanager

removed grabguard
fluxgen fluxgen
commit

2b168a584f05af026a9b6fdd21fb17cfb57a9e2f

parent

65a124a83cded041ac8025ac4493793db4c76ca0

3 files changed, 17 insertions(+), 30 deletions(-)

jump to
M src/BaseDisplay.hhsrc/BaseDisplay.hh

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: BaseDisplay.hh,v 1.27 2002/08/30 12:58:08 fluxgen Exp $ +// $Id: BaseDisplay.hh,v 1.28 2002/08/30 13:09:24 fluxgen Exp $ #ifndef BASEDISPLAY_HH #define BASEDISPLAY_HH

@@ -108,17 +108,6 @@

void grab(); void ungrab(); void eventLoop(); - - class GrabGuard:private NotCopyable - { - public: - GrabGuard(BaseDisplay &bd):m_bd(bd) { } - ~GrabGuard() { m_bd.ungrab(); } - inline void grab() { m_bd.grab(); } - inline void ungrab() { m_bd.ungrab(); } - private: - BaseDisplay &m_bd; - }; private:
M src/Window.ccsrc/Window.cc

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Window.cc,v 1.71 2002/08/28 19:47:27 fluxgen Exp $ +// $Id: Window.cc,v 1.72 2002/08/30 13:08:35 fluxgen Exp $ #include "Window.hh"

@@ -86,7 +86,6 @@ #endif //DEBUG

Fluxbox *fluxbox = Fluxbox::instance(); display = fluxbox->getXDisplay(); - BaseDisplay::GrabGuard gg(*fluxbox); blackbox_attrib.workspace = workspace_number = window_number = -1;

@@ -153,6 +152,7 @@ // fetch client size and placement

XWindowAttributes wattrib; if ((! XGetWindowAttributes(display, client.window, &wattrib)) || (! wattrib.screen) || wattrib.override_redirect) { + fluxbox->ungrab(); return; }

@@ -161,8 +161,10 @@ screen = s;

else screen = fluxbox->searchScreen(RootWindowOfScreen(wattrib.screen)); - if (!screen) + if (!screen) { + fluxbox->ungrab(); return; + } image_ctrl = screen->getImageControl();

@@ -190,6 +192,7 @@ #ifdef SLIT

if (client.initial_state == WithdrawnState) { screen->getSlit()->addClient(client.window); + fluxbox->ungrab(); return; } #endif // SLIT

@@ -329,6 +332,7 @@ #ifdef DEBUG

fprintf(stderr, "%s(%d): FluxboxWindow(this=%p)\n", __FILE__, __LINE__, this); #endif // DEBUG + fluxbox->ungrab(); }

@@ -1776,22 +1780,24 @@ frame.y + screen->getBorderWidth(), frame.width, frame.height);

} Fluxbox *fluxbox = Fluxbox::instance(); - BaseDisplay::GrabGuard gg(*fluxbox); fluxbox->grab(); if (! validateClient()) return false; bool ret = false; - if (client.transient && modal) + if (client.transient && modal) { + fluxbox->ungrab(); return client.transient->setInputFocus(); - else { + } else { if (! focused) { if (focus_mode == F_LOCALLYACTIVE || focus_mode == F_PASSIVE) { XSetInputFocus(display, client.window, RevertToPointerRoot, CurrentTime); - } else + } else { + fluxbox->ungrab(); return false; + } fluxbox->setFocusedWindow(this);

@@ -2410,7 +2416,6 @@

void FluxboxWindow::installColormap(bool install) { Fluxbox *fluxbox = Fluxbox::instance(); - BaseDisplay::GrabGuard gg(*fluxbox); fluxbox->grab(); if (! validateClient()) return;

@@ -2731,7 +2736,6 @@ "FluxboxWindow::mapRequestEvent() for 0x%lx\n"),

client.window); #endif // DEBUG Fluxbox *fluxbox = Fluxbox::instance(); - BaseDisplay::GrabGuard gg(*fluxbox); fluxbox->grab(); if (! validateClient()) return;

@@ -2806,7 +2810,6 @@ #endif // GNOME

if ((ne->window == client.window) && (! ne->override_redirect) && (visible)) { Fluxbox *fluxbox = Fluxbox::instance(); - BaseDisplay::GrabGuard gg(*fluxbox); fluxbox->grab(); if (! validateClient()) return;

@@ -2997,7 +3000,6 @@

void FluxboxWindow::configureRequestEvent(XConfigureRequestEvent *cr) { if (cr->window == client.window) { Fluxbox *fluxbox = Fluxbox::instance(); - BaseDisplay::GrabGuard gg(*fluxbox); fluxbox->grab(); if (! validateClient()) return;

@@ -3061,7 +3063,6 @@

void FluxboxWindow::buttonPressEvent(XButtonEvent *be) { Fluxbox *fluxbox = Fluxbox::instance(); - BaseDisplay::GrabGuard gg(*fluxbox); fluxbox->grab(); if (! validateClient())

@@ -3182,7 +3183,6 @@

void FluxboxWindow::buttonReleaseEvent(XButtonEvent *re) { Fluxbox *fluxbox = Fluxbox::instance(); - BaseDisplay::GrabGuard gg(*fluxbox); fluxbox->grab(); if (! validateClient())

@@ -3310,7 +3310,7 @@ }

if (screen->doShowWindowPos()) screen->showPosition(dx, dy); - } + } } else if (functions.resize && (((me->state & Button1Mask) && (me->window == frame.right_grip || me->window == frame.left_grip)) ||

@@ -3358,7 +3358,6 @@

#ifdef SHAPE void FluxboxWindow::shapeEvent(XShapeEvent *) { Fluxbox *fluxbox = Fluxbox::instance(); - BaseDisplay::GrabGuard gg(*fluxbox); if (fluxbox->hasShapeExtensions()) { if (frame.shaped) {
M src/fluxbox.ccsrc/fluxbox.cc

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: fluxbox.cc,v 1.71 2002/08/18 11:01:52 fluxgen Exp $ +// $Id: fluxbox.cc,v 1.72 2002/08/30 13:11:47 fluxgen Exp $ #include "fluxbox.hh"

@@ -339,8 +339,7 @@ cursor.lr_angle = XCreateFontCursor(getXDisplay(), XC_lr_angle);

//singleton pointer singleton = this; - BaseDisplay::GrabGuard gg(*this); - gg.grab(); + grab(); setupConfigFiles();