diff src/redisplay-msw.c @ 408:501cfd01ee6d r21-2-34

Import from CVS: tag r21-2-34
author cvs
date Mon, 13 Aug 2007 11:18:11 +0200
parents b8cc9ab3f761
children de805c49cfc1
line wrap: on
line diff
--- a/src/redisplay-msw.c	Mon Aug 13 11:17:10 2007 +0200
+++ b/src/redisplay-msw.c	Mon Aug 13 11:18:11 2007 +0200
@@ -957,23 +957,31 @@
 }
 
 /*****************************************************************************
- mswindows_output_begin
+ mswindows_frame_output_begin
 
  Perform any necessary initialization prior to an update.
  ****************************************************************************/
 static void
-mswindows_output_begin (struct device *d)
+mswindows_frame_output_begin (struct frame *f)
 {
 }
 
 /*****************************************************************************
- mswindows_output_end
+ mswindows_frame_output_end
 
  Perform any necessary flushing of queues when an update has completed.
  ****************************************************************************/
 static void
-mswindows_output_end (struct device *d)
+mswindows_frame_output_end (struct frame *f)
 {
+  HDWP hdwp = FRAME_MSWINDOWS_DATA (f)->hdwp;
+
+  if (hdwp != 0)
+    {
+      EndDeferWindowPos (hdwp);
+      FRAME_MSWINDOWS_DATA (f)->hdwp = 0;
+    }
+
   GdiFlush();
 }
 
@@ -1157,8 +1165,19 @@
 						 findex, 0, 1);
 		      break;
 		      
+		    case IMAGE_WIDGET:
+		      if (EQ (XIMAGE_INSTANCE_WIDGET_TYPE (instance),
+			      Qlayout))
+			{
+			  redisplay_output_layout (w, instance, &dbox, &dga, findex,
+						   cursor_start, cursor_width,
+						   cursor_height);
+			  if (rb->cursor_type == CURSOR_ON)
+			    mswindows_output_cursor (w, dl, xpos, cursor_width,
+						     findex, 0, 1);
+			  break;
+			}
 		    case IMAGE_SUBWINDOW:
-		    case IMAGE_WIDGET:
 		      redisplay_output_subwindow (w, instance, &dbox, &dga, findex,
 						  cursor_start, cursor_width,
 						  cursor_height);
@@ -1167,15 +1186,6 @@
 						 findex, 0, 1);
 		      break;
 		      
-		    case IMAGE_LAYOUT:
-		      redisplay_output_layout (w, instance, &dbox, &dga, findex,
-					       cursor_start, cursor_width,
-					       cursor_height);
-		      if (rb->cursor_type == CURSOR_ON)
-			mswindows_output_cursor (w, dl, xpos, cursor_width,
-						 findex, 0, 1);
-		      break;
-		      
 		    case IMAGE_NOTHING:
 		      /* nothing is as nothing does */
 		      break;
@@ -1358,8 +1368,8 @@
   CONSOLE_HAS_METHOD (mswindows, output_vertical_divider);
   CONSOLE_HAS_METHOD (mswindows, clear_region);
   CONSOLE_HAS_METHOD (mswindows, clear_frame);
-  CONSOLE_HAS_METHOD (mswindows, output_begin);
-  CONSOLE_HAS_METHOD (mswindows, output_end);
+  CONSOLE_HAS_METHOD (mswindows, frame_output_begin);
+  CONSOLE_HAS_METHOD (mswindows, frame_output_end);
   CONSOLE_HAS_METHOD (mswindows, flash);
   CONSOLE_HAS_METHOD (mswindows, ring_bell);
   CONSOLE_HAS_METHOD (mswindows, bevel_area);
@@ -1374,8 +1384,8 @@
   CONSOLE_INHERITS_METHOD (msprinter, mswindows, output_vertical_divider);
   CONSOLE_INHERITS_METHOD (msprinter, mswindows, clear_region);
   CONSOLE_INHERITS_METHOD (msprinter, mswindows, clear_frame);
-  CONSOLE_INHERITS_METHOD (msprinter, mswindows, output_begin);
-  CONSOLE_INHERITS_METHOD (msprinter, mswindows, output_end);
+  CONSOLE_INHERITS_METHOD (msprinter, mswindows, frame_output_begin);
+  CONSOLE_INHERITS_METHOD (msprinter, mswindows, frame_output_end);
   CONSOLE_INHERITS_METHOD (msprinter, mswindows, bevel_area);
   CONSOLE_INHERITS_METHOD (msprinter, mswindows, output_string);
   CONSOLE_INHERITS_METHOD (msprinter, mswindows, output_pixmap);