Remove first level of Viewport and ScrolledWindow from context screen

The policy strategy did not work when the size of the screen change because
some fields become visible.

issue5422
review20891002
This commit is contained in:
Cédric Krier committed 2016-03-31 22:41:29 +02:00
1 parent 5f9e9ea3b9
commit 37c4c03e45
1 file changed
+20 -6
+20 -6
View File
@@ -101,18 +101,32 @@ class Screen(SignalEvent):
for widget in walk_descendants(child):
yield widget
for widget in walk_descendants(context_widget):
if isinstance(widget, gtk.ScrolledWindow):
widget.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER)
elif isinstance(widget, gtk.Viewport):
widget.set_shadow_type(gtk.SHADOW_NONE)
elif isinstance(widget, gtk.Entry):
for widget in reversed(list(walk_descendants(context_widget))):
if isinstance(widget, gtk.Entry):
widget.connect_after(
'activate', self.screen_container.activate)
elif isinstance(widget, gtk.CheckButton):
widget.connect_after(
'toggled', self.screen_container.activate)
def remove_bin(widget):
assert isinstance(widget, (gtk.ScrolledWindow, gtk.Viewport))
parent = widget.parent
parent.remove(widget)
child = widget.get_child()
while isinstance(child, (gtk.ScrolledWindow, gtk.Viewport)):
child = child.get_child()
child.parent.remove(child)
parent.add(child)
return child
# Remove first level Viewport and ScrolledWindow to fill the Vbox
for widget in [
self.context_screen.screen_container.viewport,
self.context_screen.current_view.widget.get_children()[0],
]:
remove_bin(widget)
self.screen_container.filter_vbox.pack_start(
context_widget, expand=False, fill=True)
self.screen_container.filter_vbox.reorder_child(