# Gtk::StatusIcon menu popup on activate and current\_time

**URL:** <https://www.ruby-forum.com/t/gtk-statusicon-menu-popup-on-activate-and-current-time/155029>\
**Category:** Ruby-Gnome 2\
**Created:** [December 6, 2008, 3:51pm UTC](https://www.ruby-forum.com/t/gtk-statusicon-menu-popup-on-activate-and-current-time/155029 "2008-12-06T15:51:09Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![RafaSSSSl\_Bekkema](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/90db22/32.png) [@RafaSSSSl\_Bekkema](https://www.ruby-forum.com/u/RafaSSSSl_Bekkema)\
**Post date:** [December 6, 2008, 3:51pm UTC](https://www.ruby-forum.com/t/gtk-statusicon-menu-popup-on-activate-and-current-time/155029/1 "2008-12-06T15:51:09Z")

</div>

Hi everyone,

I’m trying to popup a menu on a StatusIcon on a left mouse click,  
however the menu will immediately disappear after the click unless the  
mouse button is held down.

Apparently this has to do with the current\_time parameter of the  
Menu::popup function.  
Since the StatusIcon activate signal doesn’t pass activate\_time I have  
to give the popup function a 0, that causes the menu to close  
immediately.

Is there another way to get the activate\_time?  
Gdk::Event::CURRENT\_TIME gives me 0. Or is there another way to make  
the menu stay open?

Thanks,  
Rafaël

---

<div class="post-metadata">

**Author:** ![RafaSSSSl\_Bekkema](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/90db22/32.png) [@RafaSSSSl\_Bekkema](https://www.ruby-forum.com/u/RafaSSSSl_Bekkema)\
**Post date:** [December 7, 2008, 9:19am UTC](https://www.ruby-forum.com/t/gtk-statusicon-menu-popup-on-activate-and-current-time/155029/2 "2008-12-07T09:19:53Z")

</div>

Use Gtk.current\_event\_time

best,  
Dan

* * *

Daniel L.  
[http://www.daniellucraft.com/](http://www.daniellucraft.com/)

2008/12/6 Rafaël Bekkema [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

---

<div class="post-metadata">

**Author:** ![RafaSSSSl\_Bekkema](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/90db22/32.png) [@RafaSSSSl\_Bekkema](https://www.ruby-forum.com/u/RafaSSSSl_Bekkema)\
**Post date:** [December 7, 2008, 11:17am UTC](https://www.ruby-forum.com/t/gtk-statusicon-menu-popup-on-activate-and-current-time/155029/3 "2008-12-07T11:17:35Z")

</div>

I haven’t tried the StatusIcon but here is how my action handlers create  
a popup:

def on\_action()  
create\_menu\_popup(get\_item\_names()) do |widget, event|  
on\_menu\_activate(widget)  
end  
end

def create\_menu\_popup(item\_names, &block)  
menu = Gtk::Menu.new  
item\_names.each do |name|  
menu\_item = Gtk::MenuItem.new(name)  
menu\_item.signal\_connect(‘button-press-event’, block)  
menu.append(menu\_item)  
end  
menu.show\_all  
event = Gdk::EventButton.new(Gdk::Event::BUTTON\_PRESS)  
menu.popup(nil, nil, event.button, event.time)  
end

This works fine on menus and toolbars.

HTH,  
Roy

---

<div class="post-metadata">

**Author:** ![RafaSSSSl\_Bekkema](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/90db22/32.png) [@RafaSSSSl\_Bekkema](https://www.ruby-forum.com/u/RafaSSSSl_Bekkema)\
**Post date:** [December 7, 2008, 1:02pm UTC](https://www.ruby-forum.com/t/gtk-statusicon-menu-popup-on-activate-and-current-time/155029/4 "2008-12-07T13:02:59Z")

</div>

Thank you,  
Rafaël  
2008/12/7 Daniel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):
