diff options
author | David Herrmann <dh.herrmann@gmail.com> | 2014-09-20 11:11:07 +0200 |
---|---|---|
committer | David Herrmann <dh.herrmann@gmail.com> | 2014-09-20 11:46:49 +0200 |
commit | 3ec19e5d91d3d705682fee62a509801737c56c1e (patch) | |
tree | f264ad3605ec214aadec8657a3bfd166b6721883 /src/libsystemd-terminal/grdev.c | |
parent | 95dbf6b19e8f25e28224b954ef99d96225b4e6e7 (diff) |
terminal: grdev: raise frame event after DISPLAY_ADD/CHANGE
Whenever a display is added or changed, we suppressed any frame events.
Make sure to raise them manually so we can avoid rendering when handling
anything but FRAME events.
Diffstat (limited to 'src/libsystemd-terminal/grdev.c')
-rw-r--r-- | src/libsystemd-terminal/grdev.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libsystemd-terminal/grdev.c b/src/libsystemd-terminal/grdev.c index 3e3833fc95..397da1b205 100644 --- a/src/libsystemd-terminal/grdev.c +++ b/src/libsystemd-terminal/grdev.c @@ -921,14 +921,17 @@ static void session_change_display(grdev_session *session, grdev_display *displa changed = display_cache(display); - if (display->n_leafs == 0) + if (display->n_leafs == 0) { session_remove_display(session, display); - else if (!display->public) + } else if (!display->public) { session_add_display(session, display); - else if (changed) + session_frame(session, display); + } else if (changed) { session_raise_display_change(session, display); - else if (display->framed) session_frame(session, display); + } else if (display->framed) { + session_frame(session, display); + } } static void session_frame(grdev_session *session, grdev_display *display) { |