[virt-tools-list] [PATCH] virt-manager: Don't clear all page visibilities during initialization
Cole Robinson
crobinso at redhat.com
Tue Mar 24 16:36:48 UTC 2015
On 03/24/2015 07:16 AM, Marc Deslauriers wrote:
> Hi,
>
> On 2015-03-16 02:55 PM, Cole Robinson wrote:
>> On 03/13/2015 09:31 AM, Marc Deslauriers wrote:
>>> Hello,
>>>
>>> Here is a patch to correct grab issues when windows overlap stemming from
>>> incorrect page visibilities.
>>>
>>> Thanks,
>>>
>>> Marc.
>>>
>>> >From a11986b10f13bc85f0be578e5460369a1ecafb57 Mon Sep 17 00:00:00 2001
>>> From: Marc Deslauriers <marc.deslauriers at ubuntu.com>
>>> Date: Fri, 13 Mar 2015 09:28:02 -0400
>>> Subject: [PATCH] Don't clear all page visibilities during initialization
>>>
>>> Since commit dfa23765, page_changed() sets page visibilities based on the
>>> value of the newpage parameter. Calling the function without it being set
>>> makes all pages invisible at once during initialization, resulting in a
>>> weird scenario which prevents the window from getting proper focus events
>>> when another window partially overlaps it, resulting in stuck grabs.
>>
>> Can we instead take the bit added in dfa23765 and stick it under:
>>
>> if newpage is not None:
>> <code>
>>
>> page_changed has other initial init bits (like setting fullscreen state) and
>> could grow more in the future.
>
> Sure, that works. Here is an updated patch.
>
> Marc.
>
> From a0590babada24dc00f1de86644350c9e1f23461e Mon Sep 17 00:00:00 2001
> From: Marc Deslauriers <marc.deslauriers at ubuntu.com>
> Date: Tue, 24 Mar 2015 07:14:31 -0400
> Subject: [PATCH] Don't clear all page visibilities during initialization
>
> Since commit dfa23765, page_changed() sets page visibilities based on the
> value of the newpage parameter. Calling the function without it being set
> makes all pages invisible at once during initialization, resulting in a
> weird scenario which prevents the window from getting proper focus events
> when another window partially overlaps it, resulting in stuck grabs.
> ---
> virtManager/console.py | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/virtManager/console.py b/virtManager/console.py
> index 749c165..e6f472e 100644
> --- a/virtManager/console.py
> +++ b/virtManager/console.py
> @@ -1095,9 +1095,10 @@ class vmmConsolePages(vmmGObjectUI):
> def page_changed(self, ignore1=None, ignore2=None, newpage=None):
> pagenum = self.widget("console-pages").get_current_page()
>
> - for i in range(self.widget("console-pages").get_n_pages()):
> - w = self.widget("console-pages").get_nth_page(i)
> - w.set_visible(i == newpage)
> + if newpage is not None:
> + for i in range(self.widget("console-pages").get_n_pages()):
> + w = self.widget("console-pages").get_nth_page(i)
> + w.set_visible(i == newpage)
>
> if pagenum < CONSOLE_PAGE_OFFSET:
> self.last_gfx_page = pagenum
>
Thanks Marc, pushed now
- Cole
More information about the virt-tools-list
mailing list