systray menu cannot expand dynamically
- From: Tomasz Bursztyka <tomasz bursztyka linux intel com>
- To: gtk devel <gtk-app-devel-list gnome org>
- Subject: systray menu cannot expand dynamically
- Date: Fri, 26 Apr 2013 14:45:41 +0300
Hi,
I already posted a while ago the same trouble, but still no definitive 
answer. I work with Gtk3, I did not tried that on Gtk2.
There is actually a behavior "bug" on systray menu in Gnome3 and KDE4. 
Only those, all other WMs/DMs are working properly.
I opened a bug for each, no answers yet.
In short: if a menugets dynamically fed with menuitem, the menu does not 
get resized, thus it's impossible to see the items.
Here is a trivial script that can reproduce easily the issue:
---- CUT HERE ----
#!/usr/bin/python
from gi.repository.Gtk import StatusIcon, STOCK_HOME, Menu, \
MenuItem, main, main_quit
from gi.repository.GObject import timeout_add, source_remove
item_names = [ "test",
                "the",
                "dynamic",
                "status icon",
                "menu",
                "popup",
                "!"]
class TestTray( object ):
    def __init__(self):
        self._statusicon = StatusIcon()
self._statusicon.set_from_stock(STOCK_HOME)
self._statusicon.connect("popup-menu", self.right_click_event)
self._statusicon.connect("activate", main_quit)
        self._counter = 0;
        self._menu = Menu()
    def _populate_menu(self, _):
        if (self._counter == len(item_names)):
            return True
        item = MenuItem(item_names[self._counter])
        item.show()
        self._menu.append(item)
        self._counter += 1
        return True
    def right_click_event(self, s_icon, button, time):
        def position(menu, s_icon):
            return StatusIcon.position_menu(menu, s_icon)
        timeout_add(500, self._populate_menu, None)
        self._menu.popup(None, None, position, s_icon, button, time)
if __name__ == "__main__":
    statusicon = TestTray()
    main()
---- CUT HERE ----
What could affect Gtk not to beable to resize properly the menu?
How could it be fixed? Or is it a bug in the systray implementation in 
Gnome3/KDE4?
I haven't been able to track down the issue in Gtk3 sources.
At least I could somehow loosely "fix" it in recalculating myself the 
menu size and requesting it again.
But of course it's ugly and should not be done.
Thanks,
Tomasz
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]