chiark / gitweb /
terminal: grdev: raise frame event after DISPLAY_ADD/CHANGE
[elogind.git] / src / libsystemd-terminal / modeset.c
index c1119c9e0fde6f366df7b569a563bbff2fbe787b..33c79a2036914a830b54c3a7c0f7e11bd618a378 100644 (file)
@@ -270,12 +270,10 @@ static void modeset_grdev_fn(grdev_session *session, void *userdata, grdev_event
         switch (ev->type) {
         case GRDEV_EVENT_DISPLAY_ADD:
                 grdev_display_enable(ev->display_add.display);
-                modeset_render(m, ev->display_add.display);
                 break;
         case GRDEV_EVENT_DISPLAY_REMOVE:
                 break;
         case GRDEV_EVENT_DISPLAY_CHANGE:
-                modeset_render(m, ev->display_change.display);
                 break;
         case GRDEV_EVENT_DISPLAY_FRAME:
                 modeset_render(m, ev->display_frame.display);
@@ -363,6 +361,13 @@ static int modeset_sysview_fn(sysview_context *c, void *userdata, sysview_event
                         return -errno;
                 }
 
+                break;
+        case SYSVIEW_EVENT_DEVICE_CHANGE:
+                d = ev->device_change.device;
+                type = sysview_device_get_type(d);
+                if (type == SYSVIEW_DEVICE_DRM)
+                        grdev_session_hotplug_drm(m->grdev_session, ev->device_change.ud);
+
                 break;
         }