Send expose events to the front end.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@23601 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2006-09-24 07:39:51 +00:00
parent 012ff3eecb
commit 1b6a91ff4d
2 changed files with 32 additions and 0 deletions

View file

@ -1,3 +1,13 @@
2006-09-24 Richard Frith-Macdonald <rfm@gnu.org>
* Source/x11/XGServerEvent.m: Use #if to disable old window exposure
mechanism in favour of sending exposure events to the front end.
Hopefully this will fix a bug where the old bypassing of the gui
event queue could cause an attempt to copy from a region outside
the image buffer.
If there are no problems with this, we should remove the old, complex
mechanism.
2006-09-13 Richard Frith-Macdonald <rfm@gnu.org>
* Source/x11/XGServerWindow.m: use generic.wintypes.win_modal_atom

View file

@ -161,6 +161,7 @@ static int check_modifier (XEvent *xEvent, KeySym key_sym,
@interface XGServer (WindowOps)
- (void) styleoffsets: (float *) l : (float *) r : (float *) t : (float *) b
: (unsigned int) style : (Window) win;
- (NSRect) _XWinRectToOSWinRect: (NSRect)r for: (void*)windowNumber;
@end
@implementation XGServer (EventOps)
@ -949,10 +950,31 @@ static int check_modifier (XEvent *xEvent, KeySym key_sym,
NSDebugLLog(@"NSEvent", @"Expose frame %d %d %d %d\n",
rectangle.x, rectangle.y,
rectangle.width, rectangle.height);
#if 0
[self _addExposedRectangle: rectangle : cWin->number];
if (xEvent.xexpose.count == 0)
[self _processExposedRectangles: cWin->number];
#else
{
NSRect rect;
NSTimeInterval ts = (NSTimeInterval)generic.lastMotion;
rect = [self _XWinRectToOSWinRect: NSMakeRect(
rectangle.x, rectangle.y, rectangle.width, rectangle.height)
for: cWin];
e = [NSEvent otherEventWithType: NSAppKitDefined
location: rect.origin
modifierFlags: eventFlags
timestamp: ts
windowNumber: cWin->number
context: gcontext
subtype: GSAppKitRegionExposed
data1: rect.size.width
data2: rect.size.height];
}
#endif
}
break;
}