chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
terminal: grdev: raise frame event after DISPLAY_ADD/CHANGE
[elogind.git]
/
src
/
libsystemd-terminal
/
modeset.c
diff --git
a/src/libsystemd-terminal/modeset.c
b/src/libsystemd-terminal/modeset.c
index c1119c9e0fde6f366df7b569a563bbff2fbe787b..33c79a2036914a830b54c3a7c0f7e11bd618a378 100644
(file)
--- a/
src/libsystemd-terminal/modeset.c
+++ b/
src/libsystemd-terminal/modeset.c
@@
-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);
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:
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);
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;
}
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;
}
break;
}