ecere/gui/drivers/XInterface: Added min/maxClientSize support through WM_NORMAL_HINTS
authorJerome St-Louis <jerome@ecere.com>
Fri, 7 Feb 2014 19:20:56 +0000 (02:20 +0700)
committerJerome St-Louis <jerome@ecere.com>
Fri, 7 Feb 2014 20:14:41 +0000 (03:14 +0700)
ecere/src/gui/drivers/XInterface.ec

index 1fbd0e2..be5f0c6 100644 (file)
@@ -2216,6 +2216,25 @@ class XInterface : Interface
                   Atom protocols[2] = { atoms[wm_delete_window], atoms[wm_take_focus] };
                   XSetWMProtocols(xGlobalDisplay, windowHandle, protocols, 2);
                }
+
+               // Set Normal hints for minimum/maximum size
+               if(window.minSize.w || window.minSize.h || window.maxSize.w < MAXINT || window.maxSize.h < MAXINT)
+               {
+                  XSizeHints hints = { 0 };
+                  if(window.minSize.w || window.minSize.h)
+                  {
+                     hints.min_width = window.minSize.w;
+                     hints.min_height = window.minSize.h;
+                     hints.flags |= PMinSize;
+                  }
+                  if(window.maxSize.w < MAXINT || window.minSize.h < MAXINT)
+                  {
+                     hints.max_width = window.maxSize.w;
+                     hints.max_height = window.maxSize.h;
+                     hints.flags |= PMaxSize;
+                  }
+                  XSetWMNormalHints(xGlobalDisplay, windowHandle, &hints);
+               }
             }
          }
       }