Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 7 additions & 9 deletions audio1/audio.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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()
Expand Down
1 change: 0 additions & 1 deletion xsettings1/xsettings.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
81 changes: 0 additions & 81 deletions xsettings1/xsettings_dpi.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,7 @@ package xsettings

import (
"fmt"
"os"
"path"
"strconv"
"strings"

"github.com/linuxdeepin/go-lib/utils"
)

const (
Expand Down Expand Up @@ -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)
}
82 changes: 0 additions & 82 deletions xsettings1/xsettings_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,8 @@
package xsettings

import (
"fmt"
"os"
"testing"

"github.com/linuxdeepin/go-lib/utils"
C "gopkg.in/check.v1"
)

Expand Down Expand Up @@ -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)
}
}
Loading