Ejemplo n.º 1
0
Archivo: base.py Proyecto: ljmljz/xpra
 def _handle_gtk_app_menu_change(self):
     def nomenu(*args):
         self._updateprop("menu", {})
     if not MENU_FORWARDING:
         nomenu()
     props = self._get_x11_menu_properties()
     if len(props)<5:        #incomplete
         nomenu()
         return
     menulog("gtk menu properties: %s", props)
     app_id      = props["application-id"]
     bus_name    = props["bus-name"]
     app_path    = props["application-path"]
     menu_path   = props["app-menu-path"]
     window_path = props["window-path"]
     def updatemenu(k, v):
         """ Updates the 'menu' property if the value has changed.
             Sets the 'enabled' flag if all the required properties are present.
         """
         menu = self._gproperties.get("menu") or {}
         cv = menu.get(k)
         if cv==v:
             return
         if v is None:
             try:
                 del menu[k]
             except:
                 pass
         else:
             menu[k] = v
         enabled = all(menu.get(x) for x in ("application-id", "application-actions", "window-actions", "window-menu"))
         menu["enabled"] = enabled
         menulog("menu(%s)=%s", self, menu)
         self._internal_set_property("menu", menu)
     updatemenu("application-id", app_id)
     def app_actions_cb(actions):
         menulog("application-actions=%s", actions)
         updatemenu("application-actions", actions)
     def app_actions_err(err):
         menulog.error("Error: failed to query %s at %s:", ACTIONS, app_path)
         menulog.error(" %s", err)
         updatemenu("application-actions", None)
     query_actions(bus_name, app_path, app_actions_cb, app_actions_err)
     def window_actions_cb(actions):
         menulog("window-actions", actions)
         updatemenu("window-actions", actions)
     def window_actions_err(err):
         menulog.error("Error: failed to query %s at %s:", ACTIONS, window_path)
         menulog.error(" %s", err)
         updatemenu("window-actions", None)
     query_actions(bus_name, window_path, window_actions_cb, window_actions_err)
     def menu_cb(menu):
         menulog("window-menu", menu)
         updatemenu("window-menu", menu)
     def menu_err(err):
         menulog.error("Error: failed to query %s at %s:", MENUS, menu_path)
         menulog.error(" %s", err)
         updatemenu("window-menu", None)
     query_menu(bus_name, menu_path, menu_cb, menu_err)
Ejemplo n.º 2
0
Archivo: base.py Proyecto: cattaka/Xpra
 def _handle_gtk_app_menu_change(self):
     def nomenu(*_args):
         self._updateprop("menu", {})
     if not MENU_FORWARDING:
         nomenu()
     props = self._get_x11_menu_properties()
     if len(props)<5:        #incomplete
         nomenu()
         return
     menulog("gtk menu properties: %s", props)
     app_id      = props["application-id"]
     bus_name    = props["bus-name"]
     app_path    = props["application-path"]
     menu_path   = props["app-menu-path"]
     window_path = props["window-path"]
     def updatemenu(k, v):
         """ Updates the 'menu' property if the value has changed.
             Sets the 'enabled' flag if all the required properties are present.
         """
         menu = self._gproperties.get("menu") or {}
         cv = menu.get(k)
         if cv==v:
             return
         if v is None:
             try:
                 del menu[k]
             except:
                 pass
         else:
             menu[k] = v
         enabled = all(menu.get(x) for x in ("application-id", "application-actions", "window-actions", "window-menu"))
         menu["enabled"] = enabled
         menulog("menu(%s)=%s", self, menu)
         self._internal_set_property("menu", menu)
     updatemenu("application-id", app_id)
     def app_actions_cb(actions):
         menulog("application-actions=%s", actions)
         updatemenu("application-actions", actions)
     def app_actions_err(err):
         menulog.error("Error: failed to query %s at %s:", ACTIONS, app_path)
         menulog.error(" %s", err)
         updatemenu("application-actions", None)
     query_actions(bus_name, app_path, app_actions_cb, app_actions_err)
     def window_actions_cb(actions):
         menulog("window-actions", actions)
         updatemenu("window-actions", actions)
     def window_actions_err(err):
         menulog.error("Error: failed to query %s at %s:", ACTIONS, window_path)
         menulog.error(" %s", err)
         updatemenu("window-actions", None)
     query_actions(bus_name, window_path, window_actions_cb, window_actions_err)
     def menu_cb(menu):
         menulog("window-menu", menu)
         updatemenu("window-menu", menu)
     def menu_err(err):
         menulog.error("Error: failed to query %s at %s:", MENUS, menu_path)
         menulog.error(" %s", err)
         updatemenu("window-menu", None)
     query_menu(bus_name, menu_path, menu_cb, menu_err)
Ejemplo n.º 3
0
def query_menuactions(app_id, bus_name, app_path, app_actions_cb,
                      app_actions_err, window_path, window_actions_cb,
                      window_actions_err, menu_path, menu_cb, menu_err):
    if not (menu_path and window_path and app_path and bus_name and app_id):
        log.error("Error: some properties are missing - cannot continue")
        return
    from xpra.dbus.gtk_menuactions import query_actions, query_menu
    aa = query_actions(bus_name, app_path, app_actions_cb, app_actions_err)
    wa = query_actions(bus_name, window_path, window_actions_cb,
                       window_actions_err)
    am = query_menu(bus_name, menu_path, menu_cb, menu_err)
    return (aa, wa, am)
Ejemplo n.º 4
0
def query_menuactions(app_id, bus_name,
                      app_path,     app_actions_cb,     app_actions_err,
                      window_path,  window_actions_cb,  window_actions_err,
                      menu_path,    menu_cb,            menu_err):
    if not (menu_path and window_path and app_path and bus_name and app_id):
        log.error("Error: some properties are missing - cannot continue")
        return
    from xpra.dbus.gtk_menuactions import query_actions, query_menu
    aa = query_actions(bus_name, app_path, app_actions_cb, app_actions_err)
    wa = query_actions(bus_name, window_path, window_actions_cb, window_actions_err)
    am = query_menu(bus_name, menu_path, menu_cb, menu_err)
    return (aa, wa, am)