Index: gnome-orca-2.91.92/src/orca/orca.py =================================================================== --- gnome-orca-2.91.92.orig/src/orca/orca.py 2011-03-22 07:27:01.000000000 +1100 +++ gnome-orca-2.91.92/src/orca/orca.py 2011-03-22 13:49:41.871928707 +1100 @@ -2290,6 +2290,20 @@ except: debug.printException(debug.LEVEL_SEVERE) + environ_message = None + if os.getenv("ORCA_DESKTOP_ENV") == "unity": + environ_message = _("Current desktop environment is unity.") + elif os.getenv("ORCA_DESKTOP_ENV") == "gnome": + environ_message = _("Current desktop environment is classic GNOME.") + + if environ_message: + try: + if not _settingsManager.getSetting('onlySpeakDisplayedText'): + speech.speak(environ_message, settings.voices.get(settings.SYSTEM_VOICE)) + braille.displayMessage(environ_message) + except: + debug.printException(debug.LEVEL_SEVERE) + # Check to see if the user wants the configuration GUI. It's # done here so that the user's existing preferences can be used # to set the initial GUI state. We'll also force the set to Index: gnome-orca-2.91.92/src/orca/common_keyboardmap.py =================================================================== --- gnome-orca-2.91.92.orig/src/orca/common_keyboardmap.py 2011-03-08 23:51:51.000000000 +1100 +++ gnome-orca-2.91.92/src/orca/common_keyboardmap.py 2011-03-22 13:49:41.871928707 +1100 @@ -82,6 +82,8 @@ ("Home", defaultModifierMask, ORCA_CTRL_ALT_MODIFIER_MASK, "reportScriptInfoHandler"), + ("e", defaultModifierMask, ORCA_MODIFIER_MASK, + "presentDesktopEnvironmentHandler"), ("Page_Up", defaultModifierMask, ORCA_CTRL_ALT_MODIFIER_MASK, "printAncestryHandler"), Index: gnome-orca-2.91.92/src/orca/scripts/default.py =================================================================== --- gnome-orca-2.91.92.orig/src/orca/scripts/default.py 2011-03-08 23:51:51.000000000 +1100 +++ gnome-orca-2.91.92/src/orca/scripts/default.py 2011-03-22 13:50:10.611928696 +1100 @@ -32,6 +32,7 @@ import locale import time +import os import orca.orca as orca _settingsManager = getattr(orca, '_settingsManager') @@ -1097,6 +1098,15 @@ # _("Passes the next command on to the current application.")) + self.inputEventHandlers["presentDesktopEnvironmentHandler"] = \ + input_event.InputEventHandler( + Script.presentDesktopEnvironment, + # Translators: Orca can present the current desktop + # environment to the user when the user presses a + # shortcut key. + # + _("Present current desktop environment.")) + self.inputEventHandlers.update(notification_messages.inputEventHandlers) def getInputEventHandlerKey(self, inputEventHandler): @@ -5824,6 +5834,22 @@ self.presentMessage(message) return True + def presentDesktopEnvironment(self, inputEvent): + """ Tells the user what desktop environment they are running. """ + environment = None + if os.getenv("ORCA_DESKTOP_ENV") == "unity": + environment = _("unity") + elif os.getenv("ORCA_DESKTOP_ENV") == "gnome": + environment = _("classic GNOME") + if environment: + verbosity = _settingsManager.getSetting('speechVerbosityLevel') + if verbosity == settings.VERBOSITY_LEVEL_VERBOSE: + self.presentMessage(_("Current desktop environment is %s") % environment) + else: + self.presentMessage(environment) + return True + + # Dictionary that defines the state changes we care about for various # objects. The key represents the role and the value represents a list # of states that we care about. Index: gnome-orca-2.91.92/src/orca/orca.in =================================================================== --- gnome-orca-2.91.92.orig/src/orca/orca.in 2011-03-22 13:49:41.861928707 +1100 +++ gnome-orca-2.91.92/src/orca/orca.in 2011-03-22 13:50:10.611928696 +1100 @@ -109,6 +109,20 @@ done } +checkDesktopEnv() +{ + if [ "$DESKTOP_SESSION" = "gnome" ]; then + if xprop -root | grep -q COMPIZ ; then + export ORCA_DESKTOP_ENV="unity" + else + export ORCA_DESKTOP_ENV="gnome" + fi + elif [ -n "$DESKTOP_SESSION" ] && \ + echo $DESKTOP_SESSION | grep -q ^gnome- ; then + export ORCA_DESKTOP_ENV="gnome" + fi +} + trap cleanup HUP QUIT TERM INT ABRT # Runs orca. @@ -119,6 +133,7 @@ PYTHONPATH=${PYTHONPATH}:@pyexecdir@ export PYTHONPATH saveXmodmap + checkDesktopEnv @PYTHON@ -c "import orca.orca; orca.orca.main()" "$ARGS" restoreXmodmap }