diff --git a/src/Screen.cc b/src/Screen.cc index a8f02c29..154dd11f 100644 --- a/src/Screen.cc +++ b/src/Screen.cc @@ -1841,8 +1841,8 @@ void BScreen::hidePosition() { } } - -void BScreen::showGeometry(unsigned int gx, unsigned int gy) { +// can be negative when base_width/height > min_width/height +void BScreen::showGeometry(int gx, int gy) { if (!doShowWindowPos()) return; diff --git a/src/Screen.hh b/src/Screen.hh index 0a1eaf85..d4aea5ef 100644 --- a/src/Screen.hh +++ b/src/Screen.hh @@ -286,7 +286,7 @@ public: void showPosition(int x, int y); void hidePosition(); /// show geomentry with "width x height"-text, not size of window - void showGeometry(unsigned int width, unsigned int height); + void showGeometry(int width, int height); void hideGeometry(); void notifyReleasedKeys(XKeyEvent &ke); diff --git a/src/WinClient.cc b/src/WinClient.cc index 0eddac53..daf3d422 100644 --- a/src/WinClient.cc +++ b/src/WinClient.cc @@ -842,11 +842,15 @@ void WinClient::applySizeHints(int &width, int &height, // enforce incremental size limits, wrt base size // only calculate this if we really need to - i = (width - base_width) / width_inc; - width = i*width_inc + base_width; + i = (width - static_cast(base_width)) / + static_cast(width_inc); + width = i*static_cast(width_inc) + + static_cast(base_width); - j = (height - base_height) / height_inc; - height = j*height_inc + base_height; + j = (height - static_cast(base_height)) / + static_cast(height_inc); + height = j*static_cast(height_inc) + + static_cast(base_height); if (display_width) *display_width = i;