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 |