[Gd-chatter] r11567 - trunk/fundev/sources/duim/gtk
andreas at gwydiondylan.org
andreas at gwydiondylan.org
Fri Dec 21 01:38:25 CET 2007
Author: andreas
Date: Fri Dec 21 01:38:24 2007
New Revision: 11567
Modified:
trunk/fundev/sources/duim/gtk/gtk-duim.lid
trunk/fundev/sources/duim/gtk/gtk-events.dylan
trunk/fundev/sources/duim/gtk/gtk-mirror.dylan
Log:
job: fd
Properly handle repaint in window thread to prevent application deadlocks.
Modified: trunk/fundev/sources/duim/gtk/gtk-duim.lid
==============================================================================
--- trunk/fundev/sources/duim/gtk/gtk-duim.lid (original)
+++ trunk/fundev/sources/duim/gtk/gtk-duim.lid Fri Dec 21 01:38:24 2007
@@ -22,6 +22,7 @@
gtk-dialogs
gtk-help
gtk-clipboard
+ gtk-debug
Other-files: Open-Source-License.txt
Major-version: 2
Minor-version: 1
Modified: trunk/fundev/sources/duim/gtk/gtk-events.dylan
==============================================================================
--- trunk/fundev/sources/duim/gtk/gtk-events.dylan (original)
+++ trunk/fundev/sources/duim/gtk/gtk-events.dylan Fri Dec 21 01:38:24 2007
@@ -182,6 +182,7 @@
define method handle-gtk-expose-event
(sheet :: <sheet>, event :: <GdkEventExpose>)
=> (handled? :: <boolean>)
+
let _port = port(sheet);
when (_port)
let area = event.GdkEventExpose-area;
@@ -196,11 +197,11 @@
= untransform-distance(native-transform, native-width, native-height);
let region = make-bounding-box(x, y, x + width, y + height);
distribute-event(_port,
- make(<window-repaint-event>,
- sheet: sheet,
- region: region))
+ make(<window-repaint-event>,
+ sheet: sheet,
+ region: region));
+ #f
end;
- #t
end method handle-gtk-expose-event;
/*---*** Not handling state changes yet
Modified: trunk/fundev/sources/duim/gtk/gtk-mirror.dylan
==============================================================================
--- trunk/fundev/sources/duim/gtk/gtk-mirror.dylan (original)
+++ trunk/fundev/sources/duim/gtk/gtk-mirror.dylan Fri Dec 21 01:38:24 2007
@@ -411,10 +411,11 @@
sheet, x, y, width, height);
// We call 'handle-event' instead of 'distribute-event' because we
// want the repainting to happen between BeginPaint and EndPaint
- handle-event(sheet,
- make(<window-repaint-event>,
- sheet: sheet,
- region: region))
+ distribute-event(port(sheet),
+ make(<window-repaint-event>,
+ sheet: sheet,
+ region: region));
+ #f;
end method handle-gtk-expose-event;
define method set-mirror-parent
More information about the chatter
mailing list