1
This patch seires is for adding some useful features for the guest os with
1
This patch seires is for adding some useful features for the guest os with
2
multi-displays. First patch is to make all of guest displays visible
2
multi-displays. First patch is to make all of guest displays visible
3
when guest os is launched using "detach". Second patch is for providing
3
when guest os is launched using "detach". Second patch is for providing
4
a method to assign each guest display to specific physical monitor,
4
a method to assign each guest display to specific physical monitor,
5
which would be useful if someone wants to directly full-screen individual
5
which would be useful if someone wants to directly full-screen individual
6
guest scanouts to host's physical displays.
6
guest scanouts to host's physical displays.
7
8
Changes in v5:
9
10
* ui/gtk: a new array param monitor to specify the target
11
12
- rephrased the description of the new param, 'monitor' for clarification
7
13
8
Changes in v4:
14
Changes in v4:
9
15
10
* ui/gtk: a new array param monitor to specify the target
16
* ui/gtk: a new array param monitor to specify the target
11
17
...
...
32
is always in graphic mode so we can simply detach all other graphic mode
38
is always in graphic mode so we can simply detach all other graphic mode
33
virtual consoles.
39
virtual consoles.
34
- making sure detached window's size same as original surface size
40
- making sure detached window's size same as original surface size
35
41
36
Dongwon Kim (2):
42
Dongwon Kim (2):
37
ui/gtk: detach VCS for additional guest displays (v4)
43
ui/gtk: detach VCs for additional guest displays
38
ui/gtk: a new array param monitor to specify the target displays (v4)
44
ui/gtk: a new array param monitor to specify the target displays
39
45
40
qapi/ui.json | 9 ++++++++-
46
qapi/ui.json | 9 ++++++++-
41
qemu-options.hx | 3 ++-
47
qemu-options.hx | 3 ++-
42
ui/gtk.c | 41 +++++++++++++++++++++++++++++++++++++++--
48
ui/gtk.c | 41 +++++++++++++++++++++++++++++++++++++++--
43
3 files changed, 49 insertions(+), 4 deletions(-)
49
3 files changed, 49 insertions(+), 4 deletions(-)
44
50
45
--
51
--
46
2.30.2
52
2.20.1
diff view generated by jsdifflib
...
...
50
+ }
50
+ }
51
if (opts->has_full_screen &&
51
if (opts->has_full_screen &&
52
opts->full_screen) {
52
opts->full_screen) {
53
gtk_menu_item_activate(GTK_MENU_ITEM(s->full_screen_item));
53
gtk_menu_item_activate(GTK_MENU_ITEM(s->full_screen_item));
54
--
54
--
55
2.30.2
55
2.20.1
56
56
57
57
diff view generated by jsdifflib
...
...
29
+++ b/qapi/ui.json
29
+++ b/qapi/ui.json
30
@@ -XXX,XX +XXX,XX @@
30
@@ -XXX,XX +XXX,XX @@
31
# assuming the guest will resize the display to match
31
# assuming the guest will resize the display to match
32
# the window size then. Otherwise it defaults to "off".
32
# the window size then. Otherwise it defaults to "off".
33
# Since 3.1
33
# Since 3.1
34
+# @monitor: Array of numbers, each of which represents physical
34
+# @monitor: List of physical monitor numbers where the GTK windows
35
+# monitor where GTK window containing a given VC will be
35
+# containing the virtual consoles VC0, VC1, ... are to be
36
+# placed. Each monitor number in the array will be
36
+# placed. If a mapping exists for a VC, then it is to be
37
+# associated with a virtual console starting from VC0.
37
+# placed on that specific physical monitor; otherwise,
38
+#
38
+# it defaults to the monitor from where it was launched.
39
+# since 7.1
39
+# (Since 7.1)
40
#
40
#
41
# Since: 2.12
41
# Since: 2.12
42
##
42
##
43
{ 'struct' : 'DisplayGTK',
43
{ 'struct' : 'DisplayGTK',
44
'data' : { '*grab-on-hover' : 'bool',
44
'data' : { '*grab-on-hover' : 'bool',
...
...
111
+
111
+
112
if (opts->u.gtk.has_grab_on_hover &&
112
if (opts->u.gtk.has_grab_on_hover &&
113
opts->u.gtk.grab_on_hover) {
113
opts->u.gtk.grab_on_hover) {
114
gtk_menu_item_activate(GTK_MENU_ITEM(s->grab_on_hover_item));
114
gtk_menu_item_activate(GTK_MENU_ITEM(s->grab_on_hover_item));
115
--
115
--
116
2.30.2
116
2.20.1
117
117
118
118
diff view generated by jsdifflib