|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
From 3ec19e5d91d3d705682fee62a509801737c56c1e Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
From: David Herrmann <dh.herrmann@gmail.com>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
Date: Sat, 20 Sep 2014 11:11:07 +0200
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
Subject: [PATCH] terminal: grdev: raise frame event after DISPLAY_ADD/CHANGE
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
Whenever a display is added or changed, we suppressed any frame events.
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
Make sure to raise them manually so we can avoid rendering when handling
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
anything but FRAME events.
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
---
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
src/libsystemd-terminal/grdev.c | 11 +++++++----
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
src/libsystemd-terminal/modeset.c | 2 --
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
2 files changed, 7 insertions(+), 6 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
diff --git a/src/libsystemd-terminal/grdev.c b/src/libsystemd-terminal/grdev.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
index 3e3833fc95..397da1b205 100644
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
--- a/src/libsystemd-terminal/grdev.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+++ b/src/libsystemd-terminal/grdev.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -921,14 +921,17 @@ static void session_change_display(grdev_session *session, grdev_display *displa
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
changed = display_cache(display);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- if (display->n_leafs == 0)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ if (display->n_leafs == 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
session_remove_display(session, display);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- else if (!display->public)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ } else if (!display->public) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
session_add_display(session, display);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- else if (changed)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ session_frame(session, display);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ } else if (changed) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
session_raise_display_change(session, display);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- else if (display->framed)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
session_frame(session, display);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ } else if (display->framed) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ session_frame(session, display);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ }
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
}
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
static void session_frame(grdev_session *session, grdev_display *display) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
diff --git a/src/libsystemd-terminal/modeset.c b/src/libsystemd-terminal/modeset.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
index 57bf299df5..33c79a2036 100644
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
--- a/src/libsystemd-terminal/modeset.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+++ b/src/libsystemd-terminal/modeset.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -270,12 +270,10 @@ static void modeset_grdev_fn(grdev_session *session, void *userdata, grdev_event
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
switch (ev->type) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
case GRDEV_EVENT_DISPLAY_ADD:
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
grdev_display_enable(ev->display_add.display);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- modeset_render(m, ev->display_add.display);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
break;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
case GRDEV_EVENT_DISPLAY_REMOVE:
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
break;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
case GRDEV_EVENT_DISPLAY_CHANGE:
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- modeset_render(m, ev->display_change.display);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
break;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
case GRDEV_EVENT_DISPLAY_FRAME:
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
modeset_render(m, ev->display_frame.display);
|