dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] pnetlib/Xsharp TopLevelWindow.cs,1.9,1.10


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] pnetlib/Xsharp TopLevelWindow.cs,1.9,1.10
Date: Fri, 21 Nov 2003 03:20:50 +0000

Update of /cvsroot/dotgnu-pnet/pnetlib/Xsharp
In directory subversions:/tmp/cvs-serv16286/Xsharp

Modified Files:
        TopLevelWindow.cs 
Log Message:


Wait until idle time on top-level widgets before calling "OnResize",
to prevent event queue backups on window managers that use opaque resizes.


Index: TopLevelWindow.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/Xsharp/TopLevelWindow.cs,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** TopLevelWindow.cs   23 Jun 2003 05:35:20 -0000      1.9
--- TopLevelWindow.cs   21 Nov 2003 03:20:48 -0000      1.10
***************
*** 46,49 ****
--- 46,50 ----
        private MotifInputType inputType;
        private TopLevelWindow transientFor;
+       private Timer resizeTimer;
  
        /// <summary>
***************
*** 836,839 ****
--- 837,852 ----
                        }
  
+       // Perform an actual resize operation.  This will be called at the
+       // next convenient idle period, to avoid overflowing the event queue.
+       private void PerformResize(Object state)
+                       {
+                               if(resizeTimer != null)
+                               {
+                                       resizeTimer.Stop();
+                                       resizeTimer = null;
+                               }
+                               OnResize(width, height);
+                       }
+ 
        // Dispatch an event to this widget.
        internal override void DispatchEvent(ref XEvent xevent)
***************
*** 978,982 ****
                                                        width = 
xevent.xconfigure.width;
                                                        height = 
xevent.xconfigure.height;
!                                                       OnResize(width, height);
                                                }
                                                if(xevent.send_event || 
!reparented)
--- 991,1000 ----
                                                        width = 
xevent.xconfigure.width;
                                                        height = 
xevent.xconfigure.height;
!                                                       if(resizeTimer == null)
!                                                       {
!                                                               resizeTimer = 
new Timer
!                                                                       (new 
TimerCallback(PerformResize), null,
!                                                                        0, -1);
!                                                       }
                                                }
                                                if(xevent.send_event || 
!reparented)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]