]> Dogcows Code - chaz/openbox/commitdiff
fix off-by-one window resizing bug
authorDana Jansens <danakj@orodu.net>
Thu, 16 May 2002 07:16:32 +0000 (07:16 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 16 May 2002 07:16:32 +0000 (07:16 +0000)
CHANGELOG
src/Window.cc

index de1a4a8368a25de8363a6974f54e440f696bf3a4..1bc47d6af00c07417d05c011871667ffbf3fb496 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,8 @@
 Changelog for Openbox:
 
 1.2.0:
+ * fix off-by-one window resizing bug.                  (Ben Jansens)
+
  * fix for slit menu not using the correct style when
    the style changed.                                   (Ben Jansens)
 
index 80f201ad36a34a059f1685c11448db35bf523fbf..7cf8ec1bdf892126e3eaefff9cfbee163a263000 100644 (file)
@@ -1,6 +1,7 @@
 // Window.cc for Openbox
-// Copyright (c) 2001 Sean 'Shaleh' Perry <shaleh@debian.org>
-// Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net)
+// Copyright (c) 2002 - 2002 Ben Jansens (ben at orodu.net)
+// Copyright (c) 2001 - 2002 Sean 'Shaleh' Perry (shaleh at debian.org)
+// Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net)
 //
 // Permission is hereby granted, free of charge, to any person obtaining a
 // copy of this software and associated documentation files (the "Software"),
@@ -3202,9 +3203,9 @@ void OpenboxWindow::downsize(void) {
 void OpenboxWindow::right_fixsize(int *gx, int *gy) {
   // calculate the size of the client window and conform it to the
   // size specified by the size hints of the client window...
-  int dx = frame.resize_w - client.base_width - (frame.mwm_border_w * 2) -
+  int dx = 1 + frame.resize_w - client.base_width - (frame.mwm_border_w * 2) -
     (frame.border_w * 2) + (client.width_inc / 2);
-  int dy = frame.resize_h - frame.y_border - client.base_height -
+  int dy = 1 + frame.resize_h - frame.y_border - client.base_height -
     frame.handle_h - (frame.border_w * 3) - (frame.mwm_border_w * 2)
     + (client.height_inc / 2);
 
@@ -3222,9 +3223,9 @@ void OpenboxWindow::right_fixsize(int *gx, int *gy) {
   dx = (dx * client.width_inc) + client.base_width;
   dy = (dy * client.height_inc) + client.base_height;
 
-  frame.resize_w = dx + (frame.mwm_border_w * 2) + (frame.border_w * 2);
+  frame.resize_w = dx + (frame.mwm_border_w * 2) + (frame.border_w * 2) - 1;
   frame.resize_h = dy + frame.y_border + frame.handle_h +
-                   (frame.mwm_border_w * 2) +  (frame.border_w * 3);
+                   (frame.mwm_border_w * 2) +  (frame.border_w * 3) - 1;
   if (resize_zone & ZoneTop)
     frame.resize_y = frame.y + frame.height - frame.resize_h +
       screen->getBorderWidth() * 2;
@@ -3234,9 +3235,9 @@ void OpenboxWindow::right_fixsize(int *gx, int *gy) {
 void OpenboxWindow::left_fixsize(int *gx, int *gy) {
   // calculate the size of the client window and conform it to the
   // size specified by the size hints of the client window...
-  int dx = frame.x + frame.width - frame.resize_x - client.base_width -
+  int dx = 1 + frame.x + frame.width - frame.resize_x - client.base_width -
     (frame.mwm_border_w * 2) + (client.width_inc / 2);
-  int dy = frame.resize_h - frame.y_border - client.base_height -
+  int dy = 1 + frame.resize_h - frame.y_border - client.base_height -
     frame.handle_h - (frame.border_w * 3) - (frame.mwm_border_w * 2)
     + (client.height_inc / 2);
 
@@ -3254,11 +3255,11 @@ void OpenboxWindow::left_fixsize(int *gx, int *gy) {
   dx = (dx * client.width_inc) + client.base_width;
   dy = (dy * client.height_inc) + client.base_height;
 
-  frame.resize_w = dx + (frame.mwm_border_w * 2) + (frame.border_w * 2);
+  frame.resize_w = dx + (frame.mwm_border_w * 2) + (frame.border_w * 2) - 1;
   frame.resize_x = frame.x + frame.width - frame.resize_w +
                    (frame.border_w * 2);
   frame.resize_h = dy + frame.y_border + frame.handle_h +
-                   (frame.mwm_border_w * 2) + (frame.border_w * 3);
+                   (frame.mwm_border_w * 2) + (frame.border_w * 3) - 1;
   if (resize_zone & ZoneTop)
     frame.resize_y = frame.y + frame.height - frame.resize_h +
       screen->getBorderWidth() * 2;
This page took 0.02549 seconds and 4 git commands to generate.