]> Dogcows Code - chaz/openbox/commitdiff
make fully max'd windows properly snap
authorDana Jansens <danakj@orodu.net>
Thu, 27 Jun 2002 17:54:32 +0000 (17:54 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 27 Jun 2002 17:54:32 +0000 (17:54 +0000)
src/Window.cc
src/XAtom.cc

index 99db605c5c7ff7b3710e3c5b1b8dc34d58a30832..7c5b823bc2df3587cf0ac0bee9500d2636590b60 100644 (file)
@@ -2891,17 +2891,17 @@ void BlackboxWindow::doMove(int x_root, int y_root) {
       dbottom = std::abs(wbottom - srect.bottom());
 
     // snap left?
-    if (dleft < snap_distance && dleft < dright)
+    if (dleft < snap_distance && dleft <= dright)
       dx = srect.left();
     // snap right?
-    else if (dright < snap_distance && dright < dleft)
+    else if (dright < snap_distance)
       dx = srect.right() - frame.rect.width() + 1;
 
     // snap top?
-    if (dtop < snap_distance && dtop < dbottom)
+    if (dtop < snap_distance && dtop <= dbottom)
       dy = srect.top();
     // snap bottom?
-    else if (dbottom < snap_distance && dbottom < dtop)
+    else if (dbottom < snap_distance)
       dy = srect.bottom() - frame.rect.height() + 1;
 
     srect = screen->getRect(); // now get the full screen
@@ -2912,17 +2912,17 @@ void BlackboxWindow::doMove(int x_root, int y_root) {
       dbottom = std::abs(wbottom - srect.bottom());
 
     // snap left?
-    if (dleft < snap_distance && dleft < dright)
+    if (dleft < snap_distance && dleft <= dright)
       dx = srect.left();
     // snap right?
-    else if (dright < snap_distance && dright < dleft)
+    else if (dright < snap_distance)
       dx = srect.right() - frame.rect.width() + 1;
 
     // snap top?
-    if (dtop < snap_distance && dtop < dbottom)
+    if (dtop < snap_distance && dtop <= dbottom)
       dy = srect.top();
     // snap bottom?
-    else if (dbottom < snap_distance && dbottom < dtop)
+    else if (dbottom < snap_distance)
       dy = srect.bottom() - frame.rect.height() + 1;
   }
 
index 545739ab0390f5cbb659180717ff2c7ebbe14ab9..5945b83344333b6301fb4051eee5eb91c32339dc 100644 (file)
@@ -357,12 +357,14 @@ bool XAtom::getValue(Window win, Atom atom, Atom type,
   Atom ret_type;
   int ret_size;
   unsigned long ret_bytes;
+  int result;
   const unsigned long maxread = nelements;
   // try get the first element
-  XGetWindowProperty(_display, win, atom, 0l, 1l, False, AnyPropertyType,
-                     &ret_type, &ret_size, &nelements, &ret_bytes, &c_val);
-  if (ret_type == None || nelements < 1)
-    // the property does not exist on the window or is empty
+  result = XGetWindowProperty(_display, win, atom, 0l, 1l, False,
+                              AnyPropertyType, &ret_type, &ret_size,
+                              &nelements, &ret_bytes, &c_val);
+  if (result != Success || ret_type == None || nelements < 1)
+    // an error occured, the property does not exist on the window, or is empty
     return false;
   if (ret_type != type || ret_size != size) {
     // wrong data in property
@@ -384,8 +386,10 @@ bool XAtom::getValue(Window win, Atom atom, Atom type,
   int remain = (ret_bytes - 1)/sizeof(long) + 1 + 1;
   if (remain > size/8 * (signed)maxread) // dont get more than the max
     remain = size/8 * (signed)maxread;
-  XGetWindowProperty(_display, win, atom, 0l, remain, False, type, &ret_type,
-                     &ret_size, &nelements, &ret_bytes, &c_val);
+  result = XGetWindowProperty(_display, win, atom, 0l, remain, False, type,
+                              &ret_type, &ret_size, &nelements, &ret_bytes,
+                              &c_val);
+  assert(result == Success);
   assert(ret_bytes == 0);
   *value = new unsigned char[nelements * size/8 + 1];
   memcpy(*value, c_val, nelements * size/8 + 1);
This page took 0.031611 seconds and 4 git commands to generate.