gtk_tray 优先使用 pygtk
diff --git a/code/default/launcher/gtk_tray.py b/code/default/launcher/gtk_tray.py
index 9fba8e87a9..bf0bb3eab5 100644
--- a/code/default/launcher/gtk_tray.py
+++ b/code/default/launcher/gtk_tray.py
@@ -24,6 +24,13 @@
         enable_appind = True
 
 try:
+    import pygtk
+    pygtk.require('2.0')
+    import gtk
+    import gtk.gdk as gdk
+    use_gi = False
+    xlog.info('Using PyGTK as the GUI Backend.')
+except:
     import gi
     gi.require_version('Gtk', '3.0')
     gi.require_version('Gdk', '3.0')
@@ -31,13 +38,6 @@
     from gi.repository import Gdk as gdk
     use_gi = True
     xlog.info('Using PyGObject as the GUI Backend.')
-except:
-    import pygtk
-    pygtk.require('2.0')
-    import gtk
-    import gtk.gdk as gdk
-    use_gi = False
-    xlog.info('Using PyGTK as the GUI Backend.')
 
 gdk.threads_init()
 
@@ -93,6 +93,7 @@ def __init__(self):
             xlog.info('AppIndicator found and used.')
         else:
             self.trayicon = self.gtk_trayicon(logo_filename)
+            xlog.info('Gtk.StatusIcon used.')
 
     def appind_trayicon(self, logo_filename):
         trayicon = new_appindicator('XX-Net', 'indicator-messages', appind_category)
diff --git a/code/default/launcher/start.py b/code/default/launcher/start.py
index 4fb66d79f3..8e6dd051eb 100644
--- a/code/default/launcher/start.py
+++ b/code/default/launcher/start.py
@@ -116,7 +116,7 @@ def has_pygtk():
         except:
             return False
 
-    if X_is_running() and (has_gi() or has_pygtk()):
+    if X_is_running() and (has_pygtk() or has_gi()):
         from gtk_tray import sys_tray
     else:
         from non_tray import sys_tray

#9994 修改中，基于PyGObject的实现在某些系统上会导致设置页面打不开，原因未知，因此改回默认使用PyGTK。
fix #10046 fix #10080 fix #10112 fix #10113 fix #10193 