]> Dogcows Code - chaz/openbox/commitdiff
redecorating fixups. sync with bb cvs.
authorDana Jansens <danakj@orodu.net>
Thu, 30 May 2002 08:55:30 +0000 (08:55 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 30 May 2002 08:55:30 +0000 (08:55 +0000)
src/Window.cc
src/Window.hh

index 47809ea900240747bb6411324ab9526f77b08965..840954ec0ab22555e55111e2b6ecee78c332306a 100644 (file)
@@ -2698,7 +2698,7 @@ void BlackboxWindow::shapeEvent(XShapeEvent *) {
 #endif // SHAPE
 
 
-bool BlackboxWindow::validateClient(void) {
+bool BlackboxWindow::validateClient(void) const {
   XSync(blackbox->getXDisplay(), False);
 
   XEvent e;
@@ -2802,21 +2802,37 @@ void BlackboxWindow::changeBlackboxHints(BlackboxHints *net) {
 
     default:
     case DecorNormal:
-      decorations |= Decor_Titlebar | Decor_Handle | Decor_Border |
-                     Decor_Iconify | Decor_Maximize;
+      decorations |= Decor_Titlebar | Decor_Border | Decor_Iconify;
+  
+      decorations = ((functions & Func_Resize) && !isTransient() ?
+                     decorations | Decor_Handle :
+                     decorations &= ~Decor_Handle);
+      decorations = (functions & Func_Maximize ?
+                     decorations | Decor_Maximize :
+                     decorations &= ~Decor_Maximize);
 
       break;
 
     case DecorTiny:
       decorations |= Decor_Titlebar | Decor_Iconify;
-      decorations &= ~(Decor_Border | Decor_Handle | Decor_Maximize);
+      decorations &= ~(Decor_Border | Decor_Handle);
+      
+      decorations = (functions & Func_Maximize ?
+                     decorations | Decor_Maximize :
+                     decorations &= ~Decor_Maximize);
 
       break;
 
     case DecorTool:
       decorations |= Decor_Titlebar;
-      decorations &= ~(Decor_Iconify | Decor_Border | Decor_Handle);
-      functions |= Func_Move;
+      decorations &= ~(Decor_Iconify | Decor_Border);
+
+      decorations = ((functions & Func_Resize) && !isTransient() ?
+                     decorations | Decor_Handle :
+                     decorations &= ~Decor_Handle);
+      decorations = (functions & Func_Maximize ?
+                     decorations | Decor_Maximize :
+                     decorations &= ~Decor_Maximize);
 
       break;
     }
index 6dda6558e89289d3ae86e53b808ca01eaec77f22..038a58affc578613e8ab3cdfbe6c28d0942d70b2 100644 (file)
@@ -98,7 +98,7 @@ public:
                   Func_Iconify  = (1l << 2),
                   Func_Maximize = (1l << 3),
                   Func_Close    = (1l << 4) };
-  typedef unsigned int FunctionFlags;
+  typedef unsigned char FunctionFlags;
 
   enum Decoration { Decor_Titlebar = (1l << 0),
                     Decor_Handle   = (1l << 1),
@@ -106,7 +106,7 @@ public:
                     Decor_Iconify  = (1l << 3),
                     Decor_Maximize = (1l << 4),
                     Decor_Close    = (1l << 5) };
-  typedef unsigned int DecorationFlags;
+  typedef unsigned char DecorationFlags;
 
 private:
   Blackbox *blackbox;
@@ -293,13 +293,13 @@ public:
   { return client.transientList; }
   BlackboxWindow *getTransientFor(void) const;
 
-  inline BScreen *getScreen(void) { return screen; }
+  inline BScreen *getScreen(void) const { return screen; }
 
   inline Window getFrameWindow(void) const { return frame.window; }
   inline Window getClientWindow(void) const { return client.window; }
   inline Window getGroupWindow(void) const { return client.window_group; }
 
-  inline Windowmenu * getWindowmenu(void) { return windowmenu; }
+  inline Windowmenu * getWindowmenu(void) const { return windowmenu; }
 
   inline const char *getTitle(void) const
   { return client.title.c_str(); }
@@ -318,7 +318,7 @@ public:
 
   inline void setWindowNumber(int n) { window_number = n; }
 
-  bool validateClient(void);
+  bool validateClient(void) const;
   bool setInputFocus(void);
 
   void setFocusFlag(bool focus);
This page took 0.031139 seconds and 4 git commands to generate.