X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fclient.cc;h=254345730a84e9bbf1c22dbb9b6113a139303d6a;hb=07a7f6a31a06548e98ed10a3a68851db54ff4034;hp=e78336d3966b50bd152668685a5c67c018af8dbc;hpb=9e05db9518c528ac0d2d44311cde267d9886b36a;p=chaz%2Fopenbox diff --git a/src/client.cc b/src/client.cc index e78336d3..25434573 100644 --- a/src/client.cc +++ b/src/client.cc @@ -1,8 +1,6 @@ // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- -#ifdef HAVE_CONFIG_H -# include "../config.h" -#endif +#include "config.h" #include "client.hh" #include "frame.hh" @@ -480,7 +478,7 @@ void Client::updateNormalHints() _size_inc = otk::Size(1, 1); _base_size = otk::Size(0, 0); _min_size = otk::Size(0, 0); - _max_size = otk::Size(UINT_MAX, UINT_MAX); + _max_size = otk::Size(INT_MAX, INT_MAX); // get the hints from the window if (XGetWMNormalHints(**otk::display, _window, &size, &ret)) { @@ -833,6 +831,7 @@ void Client::setModal(bool modal) while (c->_transient_for) // go up the tree c = c->_transient_for; replacement = c->findModalChild(this); // find a modal child, skipping this + assert(replacement != this); c = this; while (c->_transient_for) { @@ -1120,33 +1119,26 @@ void Client::shapeHandler(const XShapeEvent &e) #endif -void Client::resize(Corner anchor, unsigned int w, unsigned int h) +void Client::resize(Corner anchor, int w, int h) { if (!(_functions & Func_Resize)) return; internal_resize(anchor, w, h); } -void Client::internal_resize(Corner anchor, unsigned int w, unsigned int h, +void Client::internal_resize(Corner anchor, int w, int h, bool user, int x, int y) { - if (_base_size.width() < w) - w -= _base_size.width(); - else - w = 0; - if (_base_size.height() < h) - h -= _base_size.height(); - else - h = 0; + w -= _base_size.width(); + h -= _base_size.height(); if (user) { // for interactive resizing. have to move half an increment in each // direction. - unsigned int mw = w % _size_inc.width(); // how far we are towards the next - // size inc - unsigned int mh = h % _size_inc.height(); - unsigned int aw = _size_inc.width() / 2; // amount to add - unsigned int ah = _size_inc.height() / 2; + int mw = w % _size_inc.width(); // how far we are towards the next size inc + int mh = h % _size_inc.height(); + int aw = _size_inc.width() / 2; // amount to add + int ah = _size_inc.height() / 2; // don't let us move into a new size increment if (mw + aw >= _size_inc.width()) aw = _size_inc.width() - mw - 1; if (mh + ah >= _size_inc.height()) ah = _size_inc.height() - mh - 1;