# Freeze in treeview

**URL:** <https://www.ruby-forum.com/t/freeze-in-treeview/197974>\
**Category:** Ruby-Gnome 2\
**Created:** [October 23, 2010, 8:56pm UTC](https://www.ruby-forum.com/t/freeze-in-treeview/197974 "2010-10-23T20:56:33Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![okkezSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/85f322/32.png) [@okkezSS](https://www.ruby-forum.com/u/okkezSS)\
**Post date:** [October 23, 2010, 8:56pm UTC](https://www.ruby-forum.com/t/freeze-in-treeview/197974/1 "2010-10-23T20:56:33Z")

</div>

Hi.

I have a strange bug in a treview. It is quite hard to reproduce.  
The code below can trigger it.  
If you click on the Foo/Test menu entry the treeview freezes !  
If you click on the Test button the treeview does not freeze.

Can you reproduce it ?  
Is that something ruby-gnome2 can patch ?

require ‘gtk2’  
mit=Gtk::MenuItem.new(“Test”)  
menu=Gtk::Menu.new  
menu.append(mit)  
it=Gtk::MenuItem.new(“Foo”)  
it.set\_submenu(menu)  
bar=Gtk::MenuBar.new  
bar.append(it)  
mit.signal\_connect\_after(‘activate’){it.remove\_submenu}

store=Gtk::TreeStore.new(String)  
iter=store.append(nil)  
iter[0]=“0”  
iter=store.append(iter)  
iter[0]=“0.1”  
iter=store.append(nil)  
iter[0]=“1”  
iter=store.append(iter)  
iter[0]=“1.1”  
col=Gtk::TreeViewColumn.new(“Col”, Gtk::CellRendererText.new, :text =\>  
0)  
view=Gtk::TreeView.new(store)  
view.append\_column(col)

button=Gtk::Button.new(“Test”)  
button.signal\_connect(‘clicked’){it.remove\_submenu}

b=Gtk::VBox.new  
b.pack\_start(bar)  
b.pack\_start(view)  
b.pack\_start(button)  
w=Gtk::Window.new  
w.add(b)  
w.show\_all  
Gtk.main

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 26, 2010, 7:38pm UTC](https://www.ruby-forum.com/t/freeze-in-treeview/197974/2 "2010-10-26T19:38:50Z")

</div>

try this:

mit.signal\_connect\_after(‘activate’){|me| me.destroy}

On 10/23/2010 09:56 PM, Vincent C. wrote:

> require ‘gtk2’  
> iter=store.append(nil)
> 
> Gtk.main

–  
Dobai-Pataky B.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 26, 2010, 8:21pm UTC](https://www.ruby-forum.com/t/freeze-in-treeview/197974/3 "2010-10-26T20:21:41Z")

</div>

2010/10/26 Dobai-Pataky B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> try this:
> 
> mit.signal\_connect\_after(‘activate’){|me| me.destroy}

It does not freeze the treeeview (but it does not achieve my purpose :  
to switch between to submenus).

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [March 13, 2011, 12:34am UTC](https://www.ruby-forum.com/t/freeze-in-treeview/197974/4 "2011-03-13T00:34:02Z")

</div>

2010/10/23 Vincent C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> require ‘gtk2’  
> iter=store.append(nil)
> 
> Gtk.main
> 
> –  
> Vincent C.

I use mit.signal\_connect(‘activate’){Glib::Idle.add{it.remove\_submenu}}  
to prevent the buggy behaviour.

–  
Vincent C.
