diff --git a/audio1/audio.go b/audio1/audio.go index f751a3f3c..c25c081e7 100644 --- a/audio1/audio.go +++ b/audio1/audio.go @@ -1393,7 +1393,13 @@ func (a *Audio) updateDefaultSink(sinkName string) { } logger.Info("virtual sink is", sinkName, ",sink_master is", sinkInfo.Name) } - + if sinkInfo == nil { + logger.Warning("failed to get sinkInfo for name:", sinkName) + a.setPropDefaultSink("/") + a.defaultSinkName = "" + a.defaultSink = nil + return + } a.moveSinkInputsToSink(nil) if a.defaultSink != nil { if a.defaultSink.Name == sinkInfo.Name { @@ -1406,14 +1412,6 @@ func (a *Audio) updateDefaultSink(sinkName string) { go pauseAllPlayers() } } - if sinkInfo == nil { - logger.Warning("failed to get sinkInfo for name:", sinkName) - a.setPropDefaultSink("/") - a.defaultSinkName = "" - a.defaultSink = nil - return - } - // 部分机型defaultSink事件必add事件先上报。 // 如果是这种情况触发SinkAdd逻辑再设置默认Sink a.mu.Lock() diff --git a/xsettings1/xsettings.go b/xsettings1/xsettings.go index eb4dc582b..ffeb8d1c9 100644 --- a/xsettings1/xsettings.go +++ b/xsettings1/xsettings.go @@ -283,7 +283,6 @@ func Start(conn *x.Conn, recommendedScaleFactor float64, service *dbusutil.Servi } m.updateDPI() m.updateXResources() - go m.updateFirefoxDPI() err = service.Export(xsDBusPath, m) if err != nil { diff --git a/xsettings1/xsettings_dpi.go b/xsettings1/xsettings_dpi.go index 638c26296..13392dd6f 100644 --- a/xsettings1/xsettings_dpi.go +++ b/xsettings1/xsettings_dpi.go @@ -6,12 +6,7 @@ package xsettings import ( "fmt" - "os" - "path" "strconv" - "strings" - - "github.com/linuxdeepin/go-lib/utils" ) const ( @@ -96,79 +91,3 @@ func (m *XSManager) updateXResources() { }, }) } - -var ffDir = path.Join(os.Getenv("HOME"), ".mozilla/firefox") - -func (m *XSManager) updateFirefoxDPI() { - scale, _ := m.xsettingsConfig.GetValueFloat64(gsKeyScaleFactor) - if scale <= 0 { - // firefox default value: -1 - scale = -1 - } - - configs, err := getFirefoxConfigs(ffDir) - if err != nil { - logger.Debug("Failed to get firefox configs:", err) - return - } - - for _, config := range configs { - err = setFirefoxDPI(scale, config, config) - if err != nil { - logger.Warning("Failed to set firefox dpi:", config, err) - } - } -} - -func getFirefoxConfigs(dir string) ([]string, error) { - finfos, err := os.ReadDir(dir) - if err != nil { - return nil, err - } - var configs []string - for _, finfo := range finfos { - config := path.Join(dir, finfo.Name(), "prefs.js") - if !utils.IsFileExist(config) { - continue - } - configs = append(configs, config) - } - return configs, nil -} - -func setFirefoxDPI(value float64, src, dest string) error { - contents, err := os.ReadFile(src) - if err != nil { - return err - } - lines := strings.Split(string(contents), "\n") - target := fmt.Sprintf("%s \"%.2f\");", ffKeyPixels, value) - found := false - for i, line := range lines { - if line == "" || line[0] == '#' { - continue - } - if !strings.Contains(line, ffKeyPixels) { - continue - } - - if line == target { - return nil - } - - tmp := strings.Split(ffKeyPixels, ",")[0] + ", " + - fmt.Sprintf("\"%.2f\");", value) - lines[i] = tmp - found = true - break - } - if !found { - if value == -1 { - return nil - } - tmp := lines[len(lines)-1] - lines[len(lines)-1] = target - lines = append(lines, tmp) - } - return os.WriteFile(dest, []byte(strings.Join(lines, "\n")), 0644) -} diff --git a/xsettings1/xsettings_test.go b/xsettings1/xsettings_test.go index f261f7286..8de010418 100644 --- a/xsettings1/xsettings_test.go +++ b/xsettings1/xsettings_test.go @@ -5,11 +5,8 @@ package xsettings import ( - "fmt" - "os" "testing" - "github.com/linuxdeepin/go-lib/utils" C "gopkg.in/check.v1" ) @@ -158,82 +155,3 @@ func (*testWrapper) TestNewXSItemColor(c *C.C) { c.Check(v1.blue, C.Equals, value[2]) c.Check(v1.alpha, C.Equals, value[3]) } - -func (*testWrapper) TestGetFirefoxConfigs(c *C.C) { - configs, _ := getFirefoxConfigs("testdata/firefox") - c.Check(len(configs), C.Equals, 1) - c.Check(configs[0], C.Equals, "testdata/firefox/xxx.default/prefs.js") -} - -func (*testWrapper) TestSetFirefoxDPI(c *C.C) { - var infos = []struct { - src string - dest string - value float64 - contents string - }{ - { - src: "testdata/firefox/xxx.default/prefs.js", - dest: "testdata/firefox/xxx.default/prefs.test", - value: 1.35, - contents: `# Mozilla User Preferences - -user_pref("layout.css.devPixelsPerPx", "1.35"); -user_pref("toolkit.telemetry.previousBuildID", "20160803004522"); -user_pref("toolkit.telemetry.reportingpolicy.firstRun", false); -`, - }, - { - src: "testdata/firefox/xxx.default/prefs_multi.js", - dest: "testdata/firefox/xxx.default/prefs_multi.test", - value: 1.35, - contents: `# Mozilla User Preferences - -#user_pref("layout.css.devPixelsPerPx", "1.555"); -user_pref("layout.css.devPixelsPerPx", "1.35"); -user_pref("toolkit.telemetry.previousBuildID", "20160803004522"); -user_pref("toolkit.telemetry.reportingpolicy.firstRun", false); -`, - }, - { - src: "testdata/firefox/xxx.default/prefs_none.js", - dest: "testdata/firefox/xxx.default/prefs_none.test", - value: 1.35, - contents: `# Mozilla User Preferences - -user_pref("toolkit.telemetry.previousBuildID", "20160803004522"); -user_pref("toolkit.telemetry.reportingpolicy.firstRun", false); -user_pref("layout.css.devPixelsPerPx", "1.35"); -`, - }, - { - src: "testdata/firefox/xxx.default/prefs_none.js", - dest: "testdata/firefox/xxx.default/prefs_none1.test", - value: -1, - contents: `# Mozilla User Preferences - -user_pref("toolkit.telemetry.previousBuildID", "20160803004522"); -user_pref("toolkit.telemetry.reportingpolicy.firstRun", false); -`, - }, - } - - for _, info := range infos { - err := setFirefoxDPI(info.value, info.src, info.dest) - if err != nil { - fmt.Println("Failed to set firefox dpi:", err) - continue - } - if info.value == -1 { - c.Check(utils.IsFileExist(info.dest), C.Equals, false) - continue - } - contents, err := os.ReadFile(info.dest) - if err != nil { - fmt.Println("Failed to read file:", err) - continue - } - c.Check(string(contents), C.Equals, info.contents) - os.Remove(info.dest) - } -}