[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/kwin
From:       Eike Hein <sho () eikehein ! com>
Date:       2005-08-16 18:41:09
Message-ID: 1124217669.034188.12190.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 449793 by hein:

Backport svn commit 449791


 M  +7 -0      client.h  
 M  +19 -0     geometry.cpp  


--- trunk/KDE/kdebase/kwin/client.h #449792:449793
@@ -127,6 +127,7 @@
         bool isMinimized() const;
         bool isMaximizable() const;
         QRect geometryRestore() const;
+        MaximizeMode maximizeModeRestore() const;
         MaximizeMode maximizeMode() const;
         bool isMinimizable() const;
         void setMaximize( bool vertically, bool horizontally );
@@ -501,6 +502,7 @@
         MaximizeMode max_mode;
         QRect geom_restore;
         QRect geom_fs_restore;
+        MaximizeMode maxmode_restore;
         int workarea_diff_x, workarea_diff_y;
         WinInfo* info;
         QTimer* autoRaiseTimer;
@@ -722,6 +724,11 @@
     return geom_restore;
     }
 
+inline Client::MaximizeMode Client::maximizeModeRestore() const
+    {
+    return maxmode_restore;
+    }
+
 inline Client::MaximizeMode Client::maximizeMode() const
     {
     return max_mode;
--- trunk/KDE/kdebase/kwin/geometry.cpp #449792:449793
@@ -1838,6 +1838,21 @@
     if( decoration != NULL ) // decorations may turn off some borders when maximized
         decoration->borders( border_left, border_right, border_top, border_bottom );
 
+    // restore partial maximizations
+    if ( old_mode==MaximizeFull && max_mode==MaximizeRestore )
+        {
+        if ( maximizeModeRestore()==MaximizeVertical )
+	    {
+	    max_mode = MaximizeVertical;
+	    maxmode_restore = MaximizeRestore;
+	    }
+	if ( maximizeModeRestore()==MaximizeHorizontal )
+	    {
+	    max_mode = MaximizeHorizontal;
+	    maxmode_restore = MaximizeRestore;
+	    }	
+	}
+    
     switch (max_mode)
         {
 
@@ -1917,6 +1932,10 @@
 
         case MaximizeFull:
             {
+            if( old_mode & MaximizeVertical )
+                maxmode_restore = MaximizeVertical;
+            if( old_mode & MaximizeHorizontal )
+	        maxmode_restore = MaximizeHorizontal;
             QSize adjSize = adjustedSize(clientArea.size(), SizemodeMax );
             QRect r = QRect(clientArea.topLeft(), adjSize);
             setGeometry( r );
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic