vga_update_display(s);
diff --git a/intel.c b/intel.c
new file mode 100644
-index 0000000..f3d6672
+index 0000000..ef279fe
--- /dev/null
+++ b/intel.c
-@@ -0,0 +1,518 @@
+@@ -0,0 +1,525 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+ return intel_get_reg(REG_DR_DSPBSURF);
+}
+
++static inline char intel_gfx_enabled(void)
++{
++ return (intel_get_reg(REG_DR_PIPEACONF) & (1 << 31)) ||
++ (intel_get_reg(REG_DR_PIPEBCONF) && (1 << 31));
++}
++
+static inline void intel_get_res(unsigned int *x,
+ unsigned int *y,
+ unsigned int *pitch)
+
+static void intel_focus(int focus)
+{
-+ if (intel_have_focus == focus)
++ if (intel_have_focus == focus ||
++ !intel_gfx_enabled())
+ return;
+
+ intel_have_focus = focus;
+ if (intel_have_focus) {
+ intel_get_res(&IntelX, &IntelY, &IntelPitch);
++ memset((uint8_t *)(intel_mem + intel_get_surface()), 0,
++ IntelPitch * IntelY);
+
+ if (!guest_framebuffer)
+ intel_force_linear(0);
-+ memset((uint8_t *)(intel_mem + intel_get_surface()), 0,
-+ IntelX * IntelY * 4);
+ }
+ vga_hw_invalidate();
+ vga_hw_update();