]> Dogcows Code - chaz/openbox/blobdiff - src/client.cc
Get the bit shifts from the client, not server
[chaz/openbox] / src / client.cc
index 8e00198a117dfb397bdf576a7195bd92e8d77489..8f6549085f772e2bf43f85bf01a9e70b3de781d4 100644 (file)
@@ -232,6 +232,7 @@ void Client::setupDecorAndFunctions()
     // normal windows retain all of the possible decorations and
     // functionality, and are the only windows that you can fullscreen
     _functions |= Func_Fullscreen;
+    break;
 
   case Type_Dialog:
     // dialogs cannot be maximized
@@ -893,6 +894,7 @@ void Client::setState(StateAction action, long data1, long data2)
   if (shadestate != _shaded)
     shade(shadestate);
   calcLayer();
+  changeState(); // change the hint to relect these changes
 }
 
 
@@ -903,7 +905,8 @@ void Client::toggleClientBorder(bool addborder)
   // different position.
   // when re-adding the border to the client, the same operation needs to be
   // reversed.
-  int x = _area.x(), y = _area.y();
+  int oldx = _area.x(), oldy = _area.y();
+  int x = oldx, y = oldy;
   switch(_gravity) {
   default:
   case NorthWestGravity:
@@ -952,7 +955,8 @@ void Client::toggleClientBorder(bool addborder)
     XSetWindowBorderWidth(**otk::display, _window, _border_width);
 
     // move the client so it is back it the right spot _with_ its border!
-    XMoveWindow(**otk::display, _window, x, y);
+    if (x != oldx || y != oldy)
+      XMoveWindow(**otk::display, _window, x, y);
   } else
     XSetWindowBorderWidth(**otk::display, _window, 0);
 }
@@ -1200,7 +1204,7 @@ void Client::changeState()
   state[1] = None;
   otk::Property::set(_window, otk::Property::atoms.wm_state,
                      otk::Property::atoms.wm_state, state, 2);
-  
+
   Atom netstate[10];
   int num = 0;
   if (_modal)
This page took 0.020336 seconds and 4 git commands to generate.