startdde/0002-uos-startdde-rm-redshift.patch
leeffo 1986ffc9ad upgrade to version 5.9.61
(cherry picked from commit d220112e94f8f7f52c97c252cd7f526318a73895)
2023-08-21 09:55:48 +08:00

283 lines
6.9 KiB
Diff
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

diff -Nuar startdde-5.9.61/display/display.go startdde-5.9.61.new/display/display.go
--- startdde-5.9.61/display/display.go 2022-12-09 11:19:18.000000000 +0800
+++ startdde-5.9.61.new/display/display.go 2023-04-13 09:51:43.128038184 +0800
@@ -119,7 +119,7 @@
m.initTouchscreens()
if !_greeterMode {
- controlRedshift("disable")
+ //controlRedshift("disable")
m.applyColorTempConfig(m.DisplayMode)
}
diff -Nuar startdde-5.9.61/.history/display/display_20221209111917.go startdde-5.9.61.new/.history/display/display_20221209111917.go
--- startdde-5.9.61/.history/display/display_20221209111917.go 1970-01-01 08:00:00.000000000 +0800
+++ startdde-5.9.61.new/.history/display/display_20221209111917.go 2023-04-13 09:51:43.124036951 +0800
@@ -0,0 +1,131 @@
+// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
+//
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+package display
+
+import (
+ "errors"
+ "reflect"
+
+ "github.com/godbus/dbus"
+ sysdisplay "github.com/linuxdeepin/go-dbus-factory/com.deepin.system.display"
+ "github.com/linuxdeepin/go-lib/dbusutil"
+ "github.com/linuxdeepin/go-lib/log"
+)
+
+var logger = log.NewLogger("daemon/display")
+
+const (
+ dbusServiceName = "com.deepin.daemon.Display"
+ dbusInterface = "com.deepin.daemon.Display"
+ dbusPath = "/com/deepin/daemon/Display"
+)
+
+var _dpy *Manager
+
+var _greeterMode bool
+
+func SetGreeterMode(val bool) {
+ _greeterMode = val
+}
+
+type scaleFactorsHelper struct {
+ changedCb func(factors map[string]float64) error
+}
+
+// ScaleFactorsHelper 全局的 scale factors 相关 helper要传给 xsettings 模块。
+var ScaleFactorsHelper scaleFactorsHelper
+
+// 用于在 display.Start 还没被调用时,先由 xsettings.Start 调用了 ScaleFactorsHelper.SetScaleFactors, 缓存数据。
+var _scaleFactors map[string]float64
+
+func (h *scaleFactorsHelper) SetScaleFactors(factors map[string]float64) error {
+ if _dpy == nil {
+ _scaleFactors = factors
+ return nil
+ }
+ return _dpy.setScaleFactors(factors)
+}
+
+func (h *scaleFactorsHelper) GetScaleFactors() (map[string]float64, error) {
+ sysBus, err := dbus.SystemBus()
+ if err != nil {
+ return nil, err
+ }
+ sysDisplay := sysdisplay.NewDisplay(sysBus)
+ cfgJson, err := sysDisplay.GetConfig(0)
+ if err != nil {
+ return nil, err
+ }
+ var rootCfg struct {
+ Config struct {
+ ScaleFactors map[string]float64
+ }
+ }
+ err = jsonUnmarshal(cfgJson, &rootCfg)
+ if err != nil {
+ return nil, err
+ }
+ return rootCfg.Config.ScaleFactors, nil
+}
+
+func (h *scaleFactorsHelper) SetChangedCb(fn func(factors map[string]float64) error) {
+ h.changedCb = fn
+}
+
+func (m *Manager) setScaleFactors(factors map[string]float64) error {
+ logger.Debug("setScaleFactors", factors)
+ m.sysConfig.mu.Lock()
+ defer m.sysConfig.mu.Unlock()
+
+ if reflect.DeepEqual(m.sysConfig.Config.ScaleFactors, factors) {
+ return nil
+ }
+ m.sysConfig.Config.ScaleFactors = factors
+ err := m.saveSysConfigNoLock("scale factors changed")
+ if err != nil {
+ logger.Warning(err)
+ }
+ return err
+}
+
+func Start(service *dbusutil.Service) error {
+ m := newManager(service)
+ m.init()
+
+ if !_greeterMode {
+ // 正常 startdde
+ err := service.Export(dbusPath, m)
+ if err != nil {
+ return err
+ }
+
+ err = service.RequestName(dbusServiceName)
+ if err != nil {
+ return err
+ }
+ }
+ _dpy = m
+ return nil
+}
+
+func StartPart2() error {
+ if _dpy == nil {
+ return errors.New("_dpy is nil")
+ }
+ m := _dpy
+ m.initSysDisplay()
+ m.initTouchscreens()
+
+ if !_greeterMode {
+ controlRedshift("disable")
+ m.applyColorTempConfig(m.DisplayMode)
+ }
+
+ return nil
+}
+
+func SetLogLevel(level log.Priority) {
+ logger.SetLogLevel(level)
+}
diff -Nuar startdde-5.9.61/.history/display/display_20230413095143.go startdde-5.9.61.new/.history/display/display_20230413095143.go
--- startdde-5.9.61/.history/display/display_20230413095143.go 1970-01-01 08:00:00.000000000 +0800
+++ startdde-5.9.61.new/.history/display/display_20230413095143.go 2023-04-13 09:51:43.132039419 +0800
@@ -0,0 +1,131 @@
+// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
+//
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+package display
+
+import (
+ "errors"
+ "reflect"
+
+ "github.com/godbus/dbus"
+ sysdisplay "github.com/linuxdeepin/go-dbus-factory/com.deepin.system.display"
+ "github.com/linuxdeepin/go-lib/dbusutil"
+ "github.com/linuxdeepin/go-lib/log"
+)
+
+var logger = log.NewLogger("daemon/display")
+
+const (
+ dbusServiceName = "com.deepin.daemon.Display"
+ dbusInterface = "com.deepin.daemon.Display"
+ dbusPath = "/com/deepin/daemon/Display"
+)
+
+var _dpy *Manager
+
+var _greeterMode bool
+
+func SetGreeterMode(val bool) {
+ _greeterMode = val
+}
+
+type scaleFactorsHelper struct {
+ changedCb func(factors map[string]float64) error
+}
+
+// ScaleFactorsHelper 全局的 scale factors 相关 helper要传给 xsettings 模块。
+var ScaleFactorsHelper scaleFactorsHelper
+
+// 用于在 display.Start 还没被调用时,先由 xsettings.Start 调用了 ScaleFactorsHelper.SetScaleFactors, 缓存数据。
+var _scaleFactors map[string]float64
+
+func (h *scaleFactorsHelper) SetScaleFactors(factors map[string]float64) error {
+ if _dpy == nil {
+ _scaleFactors = factors
+ return nil
+ }
+ return _dpy.setScaleFactors(factors)
+}
+
+func (h *scaleFactorsHelper) GetScaleFactors() (map[string]float64, error) {
+ sysBus, err := dbus.SystemBus()
+ if err != nil {
+ return nil, err
+ }
+ sysDisplay := sysdisplay.NewDisplay(sysBus)
+ cfgJson, err := sysDisplay.GetConfig(0)
+ if err != nil {
+ return nil, err
+ }
+ var rootCfg struct {
+ Config struct {
+ ScaleFactors map[string]float64
+ }
+ }
+ err = jsonUnmarshal(cfgJson, &rootCfg)
+ if err != nil {
+ return nil, err
+ }
+ return rootCfg.Config.ScaleFactors, nil
+}
+
+func (h *scaleFactorsHelper) SetChangedCb(fn func(factors map[string]float64) error) {
+ h.changedCb = fn
+}
+
+func (m *Manager) setScaleFactors(factors map[string]float64) error {
+ logger.Debug("setScaleFactors", factors)
+ m.sysConfig.mu.Lock()
+ defer m.sysConfig.mu.Unlock()
+
+ if reflect.DeepEqual(m.sysConfig.Config.ScaleFactors, factors) {
+ return nil
+ }
+ m.sysConfig.Config.ScaleFactors = factors
+ err := m.saveSysConfigNoLock("scale factors changed")
+ if err != nil {
+ logger.Warning(err)
+ }
+ return err
+}
+
+func Start(service *dbusutil.Service) error {
+ m := newManager(service)
+ m.init()
+
+ if !_greeterMode {
+ // 正常 startdde
+ err := service.Export(dbusPath, m)
+ if err != nil {
+ return err
+ }
+
+ err = service.RequestName(dbusServiceName)
+ if err != nil {
+ return err
+ }
+ }
+ _dpy = m
+ return nil
+}
+
+func StartPart2() error {
+ if _dpy == nil {
+ return errors.New("_dpy is nil")
+ }
+ m := _dpy
+ m.initSysDisplay()
+ m.initTouchscreens()
+
+ if !_greeterMode {
+ //controlRedshift("disable")
+ m.applyColorTempConfig(m.DisplayMode)
+ }
+
+ return nil
+}
+
+func SetLogLevel(level log.Priority) {
+ logger.SetLogLevel(level)
+}