[virt-tools-list] [PATCH] virt-manager: Don't clear all page visibilities during initialization
Marc Deslauriers
marc.deslauriers at canonical.com
Tue Mar 24 11:16:23 UTC 2015
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
--
2.1.4
More information about the virt-tools-list
mailing list