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

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

[dotgnu-pnet-commits] pnetlib ./ChangeLog System.Windows.Forms/Form.c...


From: Heiko Weiss
Subject: [dotgnu-pnet-commits] pnetlib ./ChangeLog System.Windows.Forms/Form.c...
Date: Tue, 14 Mar 2006 18:43:29 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    pnetlib
Branch:         
Changes by:     Heiko Weiss <address@hidden>    06/03/14 18:43:29

Modified files:
        .              : ChangeLog 
        System.Windows.Forms: Form.cs 
        Xsharp         : DoubleBuffer.cs Drawable.cs 

Log message:
        fixed open form with Form.ShowDialog.
        fixed crash in DoubleBuffer.cs if widget handle was destroyed.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnetlib/ChangeLog.diff?tr1=1.2368&tr2=1.2369&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnetlib/System.Windows.Forms/Form.cs.diff?tr1=1.48&tr2=1.49&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnetlib/Xsharp/DoubleBuffer.cs.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnetlib/Xsharp/Drawable.cs.diff?tr1=1.6&tr2=1.7&r1=text&r2=text

Patches:
Index: pnetlib/ChangeLog
diff -u pnetlib/ChangeLog:1.2368 pnetlib/ChangeLog:1.2369
--- pnetlib/ChangeLog:1.2368    Tue Mar 14 15:40:36 2006
+++ pnetlib/ChangeLog   Tue Mar 14 18:43:29 2006
@@ -1,5 +1,11 @@
 2006-03-14  Heiko Weiss  <address@hidden>
 
+       * System.Window.Forms/Form.cs: Fixed closing dialog stopping 
Application.InnerMessageLoop if Form was shown with ShowDialog
+       * Xsharp/DoubleBuffer.cs: Added query widget.HasWidgetHandle, if widget 
was detroyed (was Exception before)
+       * Xsharp/Drawable.cs: added Method bool HasWidgetHandle() to get if 
widget handle is valid
+
+2006-03-14  Heiko Weiss  <address@hidden>
+
        * Xsharp/Widget.cs: Fixed detaching Widget (MemoryLeak).
 
 2006-03-08  Heiko Weiss  <address@hidden>
Index: pnetlib/System.Windows.Forms/Form.cs
diff -u pnetlib/System.Windows.Forms/Form.cs:1.48 
pnetlib/System.Windows.Forms/Form.cs:1.49
--- pnetlib/System.Windows.Forms/Form.cs:1.48   Fri Jan 13 09:07:59 2006
+++ pnetlib/System.Windows.Forms/Form.cs        Tue Mar 14 18:43:29 2006
@@ -954,6 +954,7 @@
 
                                        // Enter a message loop until the 
dialog result is set.
                                        Application.InnerMessageLoop(this);
+                                       Dispose();      // must call Dispose, 
when closing the dialog
                                }
                                finally
                                {
@@ -962,7 +963,7 @@
                                        // The form is no longer modal.
                                        SetWindowFlag(ToolkitWindowFlags.Modal, 
false);
                                }
-
+                               
                                // Return the dialog result.
                                return dialogResult;
                        }
@@ -1622,6 +1623,7 @@
                                OnClosing(args);
                                if(!(args.Cancel))
                                {
+                                       dialogResultIsSet = true;       // must 
be set here, or Application.InnerMessageLoop won't end
                                        OnClosed(EventArgs.Empty);
                                        Dispose();
                                }
Index: pnetlib/Xsharp/DoubleBuffer.cs
diff -u pnetlib/Xsharp/DoubleBuffer.cs:1.5 pnetlib/Xsharp/DoubleBuffer.cs:1.6
--- pnetlib/Xsharp/DoubleBuffer.cs:1.5  Thu Mar 10 17:30:02 2005
+++ pnetlib/Xsharp/DoubleBuffer.cs      Tue Mar 14 18:43:29 2006
@@ -137,13 +137,18 @@
                                        IntPtr display = dpy.Lock();
                                        if(handle != XDrawable.Zero)
                                        {
-                                               if(usesXdbe)
-                                               {
-                                                       
Xlib.XdbeDeallocateBackBufferName(display, handle);
+                                               if( widget.HasWidgetHandle() ) {
+                                                       if(usesXdbe)
+                                                       {
+                                                               
Xlib.XdbeDeallocateBackBufferName(display, handle);
+                                                       }
+                                                       else
+                                                       {
+                                                               
Xlib.XFreePixmap(display, (XPixmap)handle);
+                                                       }
                                                }
-                                               else
-                                               {
-                                                       
Xlib.XFreePixmap(display, (XPixmap)handle);
+                                               else {
+                                                       // the widget was 
destroyed
                                                }
                                                handle = XDrawable.Zero;
                                        }
Index: pnetlib/Xsharp/Drawable.cs
diff -u pnetlib/Xsharp/Drawable.cs:1.6 pnetlib/Xsharp/Drawable.cs:1.7
--- pnetlib/Xsharp/Drawable.cs:1.6      Thu Jun  3 00:41:25 2004
+++ pnetlib/Xsharp/Drawable.cs  Tue Mar 14 18:43:29 2006
@@ -102,6 +102,11 @@
                                                (S._("X_WidgetDestroyed"));
                                }
                        }
+                       
+       public bool HasWidgetHandle() 
+               {
+                       return handle != XDrawable.Zero;
+               }
 
        // Get the handle for drawable, assuming that it is
        // a pixmap.  Should be called with the display lock.




reply via email to

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