diff --git a/ChangeLog b/ChangeLog index 5258d74..8f4e54f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-09-27 Dan Winship + + * libstetic/HandleWindow.cs (HandleEvent): hack around bgo 316871 + (shaped windows block update events in gtk+ 2.8.0 - 2.8.3). + 2005-09-26 Dan Winship * libstetic/wrapper/objects.xml: bring back ThemedIcon images and diff --git a/libstetic/HandleWindow.cs b/libstetic/HandleWindow.cs index b383a9d..d2e0717 100644 --- a/libstetic/HandleWindow.cs +++ b/libstetic/HandleWindow.cs @@ -1,4 +1,5 @@ using System; +using System.Runtime.InteropServices; namespace Stetic { @@ -72,13 +73,14 @@ public void Dispose () } } + Gdk.Rectangle handleAllocation; + const int handleSize = 6; public void Shape () { Gdk.GC gc; Gdk.Pixmap pixmap; - Gdk.Rectangle handleAllocation; int tlx, tly; selection.TranslateCoordinates (selection.Toplevel, 0, 0, out tlx, out tly); @@ -150,6 +152,13 @@ void HandleEvent (object obj, Gtk.WidgetEventArgs args) Drag (evm); return; + case Gdk.EventType.Expose: + // hack around bgo 316871 for gtk+ 2.8.0-2.8.3 + gdk_synthesize_window_state (window.Handle, 0, 1); + selection.Toplevel.GdkWindow.InvalidateRect (handleAllocation, true); + gdk_synthesize_window_state (window.Handle, 1, 0); + return; + default: return; } @@ -157,6 +166,10 @@ void HandleEvent (object obj, Gtk.WidgetEventArgs args) public delegate void DragDelegate (Gdk.EventMotion evt); public event DragDelegate Drag; + + + [DllImport ("libgdk-win32-2.0-0.dll")] + static extern void gdk_synthesize_window_state (IntPtr window, uint unset_flags, uint set_flags); } } diff --git a/libstetic/libstetic.dll.config b/libstetic/libstetic.dll.config index 034a7b9..5ad7b12 100644 --- a/libstetic/libstetic.dll.config +++ b/libstetic/libstetic.dll.config @@ -1,4 +1,5 @@ +