summaryrefslogtreecommitdiffstats
path: root/source/l/gtk+/gtk+-1.2.10-expose.patch
blob: f8fe8cdb827bbf56c010cde4fd2550bcca307609 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
--- gtk+-1.2.10/gdk/gdkevents.c.expose	Sun Dec  3 11:02:49 2000
+++ gtk+-1.2.10/gdk/gdkevents.c	Wed Jul 11 15:54:18 2001
@@ -383,6 +383,7 @@
 struct _GdkExposeInfo
 {
   Window window;
+  GdkWindowPrivate *toplevel_window;
   gboolean seen_nonmatching;
 };
 
@@ -400,10 +401,21 @@
    * we'll get a whole bunch of them interspersed with
    * expose events.
    */
-  if (xevent->xany.type != Expose && 
-      xevent->xany.type != GravityNotify)
+  switch (xevent->xany.type)
     {
+    case Expose:
+    case GravityNotify:
+      break;
+    case ConfigureNotify:
+      if (xevent->xconfigure.window != info->toplevel_window->xwindow)
+	break;
+      if (xevent->xconfigure.width == info->toplevel_window->width &&
+	  xevent->xconfigure.height == info->toplevel_window->height)
+	break;
+      /* Fall through */
+    default:
       info->seen_nonmatching = TRUE;
+      break;
     }
 
   if (info->seen_nonmatching ||
@@ -429,6 +441,7 @@
   GdkEvent event;
 
   info.window = xevent->xany.window;
+  info.toplevel_window = (GdkWindowPrivate *) gdk_window_get_toplevel (window);
   info.seen_nonmatching = FALSE;
   
   rect1.x = xevent->xexpose.x;