]> git.eshelyaron.com Git - emacs.git/commitdiff
Remove render code in x_scroll_run and drop NoExpose events instead
authorPo Lu <luangruo@yahoo.com>
Sat, 5 Mar 2022 02:44:26 +0000 (10:44 +0800)
committerPo Lu <luangruo@yahoo.com>
Sat, 5 Mar 2022 02:47:32 +0000 (10:47 +0800)
* src/xterm.c (x_scroll_run): Stop avoiding NoExpose events
through XRenderComposite.
(handle_one_xevent): Drop NoExpose events to placate some code
in Athena widgets.

src/xterm.c

index 89ec43b4705c23c9f52e9f0286fc14e8dfc3bbd7..55224d93c9bc286538d5fdb6fd753292915f53bf 100644 (file)
@@ -6037,24 +6037,12 @@ x_scroll_run (struct window *w, struct run *run)
     }
   else
 #endif /* USE_CAIRO */
-    {
-#ifdef HAVE_XRENDER
-      /* Avoid useless NoExpose events.  This way, we only get regular
-        exposure events when there is actually something to
-        expose.  */
-      if (FRAME_X_PICTURE (f) != None)
-       XRenderComposite (FRAME_X_DISPLAY (f), PictOpSrc, FRAME_X_PICTURE (f),
-                         None, FRAME_X_PICTURE (f), x, from_y, 0, 0, x, to_y,
-                         width, height);
-      else
-#endif
-       XCopyArea (FRAME_X_DISPLAY (f),
-                  FRAME_X_DRAWABLE (f), FRAME_X_DRAWABLE (f),
-                  f->output_data.x->normal_gc,
-                  x, from_y,
-                  width, height,
-                  x, to_y);
-    }
+    XCopyArea (FRAME_X_DISPLAY (f),
+              FRAME_X_DRAWABLE (f), FRAME_X_DRAWABLE (f),
+              f->output_data.x->normal_gc,
+              x, from_y,
+              width, height,
+              x, to_y);
 
   unblock_input ();
 }
@@ -10367,6 +10355,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
     case NoExpose:             /* This occurs when an XCopyArea's
                                    source area was completely
                                    available.  */
+#ifdef USE_X_TOOLKIT
+      *finish = X_EVENT_DROP;
+#endif
       break;
 
     case UnmapNotify: