class ApplicationMenuTweak(GetterSetterSwitchTweak):
    def __init__(self, **options):
        self._xsettings = XSettingsOverrides()
        GetterSetterSwitchTweak.__init__(self, _("Show Application Menu"), **options)

    def get_active(self):
        return self._xsettings.get_shell_shows_app_menu()

    def set_active(self, v):
        self._xsettings.set_shell_shows_app_menu(v)
Exemple #2
0
class ApplicationMenuTweak(GetterSetterSwitchTweak):
    def __init__(self, **options):
        self._xsettings = XSettingsOverrides()
        name = _("Application Menu")
        GetterSetterSwitchTweak.__init__(self, name, **options)

        _GSettingsTweak.__init__(self,
                                 name,
                                 "org.gnome.desktop.wm.preferences",
                                 "button-layout",
                                 loaded=_shell_loaded,
                                 **options)

    def get_active(self):
        return self._xsettings.get_shell_shows_app_menu()

    def set_active(self, v):
        self._xsettings.set_shell_shows_app_menu(v)

        if v:
            self.notify_logout()
            return
        val = self.settings.get_string(self.key_name)
        if "appmenu" in val:
            self.notify_logout()
            return
        else:
            (left, colon, right) = val.partition(":")

            if "close" in right:
                rsplit = right.split(",")
                rsplit = [
                    x for x in rsplit
                    if x in ["minimize", "maximize", "close"]
                ]
                rsplit.append("appmenu")
                rsplit.sort(
                    key=lambda x: ["appmenu", "minimize", "maximize", "close"
                                   ].index(x))
                self.settings.set_string(self.key_name,
                                         left + colon + ",".join(rsplit))

            else:
                rsplit = left.split(",")
                rsplit = [
                    x for x in rsplit
                    if x in ["minimize", "maximize", "close"]
                ]
                rsplit.append("appmenu")
                rsplit.sort(
                    key=lambda x: ["close", "minimize", "maximize", "appmenu"
                                   ].index(x))
                self.settings.set_string(self.key_name,
                                         ",".join(rsplit) + colon + right)
        self.notify_logout()