diff --git a/inputdevices1/event_log.go b/inputdevices1/event_log.go index e9ee6fe8b..9cf1de5d2 100644 --- a/inputdevices1/event_log.go +++ b/inputdevices1/event_log.go @@ -5,44 +5,30 @@ package inputdevices import ( - "time" - "github.com/linuxdeepin/dde-daemon/session/eventlog" ) // Event IDs for input devices (10-digit numbers) const ( - // Combined event ID for natural scroll settings on startup - EventTidNaturalScroll = 1000610009 // 自然滚动设置(触控板和鼠标合并) + EventTidNaturalScroll = 1000610009 // 自然滚动设置 ) -// LogNaturalScroll logs natural scroll state for both touchpad and mouse in one event -// Used for startup logging to reduce log entries -func LogNaturalScroll(touchpadNaturalScroll, mouseNaturalScroll bool) { - data := &eventlog.EventLogData{ - Tid: EventTidNaturalScroll, - Target: "natural_scroll", - Message: map[string]string{ - "touchpad_natural_scroll": boolToString(touchpadNaturalScroll), - "mouse_natural_scroll": boolToString(mouseNaturalScroll), - }, +// LogTouchpadNaturalScroll logs touchpad natural scroll state +// When touchpad is not present, pass hasTouchpad=false to report empty value +func LogTouchpadNaturalScroll(enabled bool, hasTouchpad bool) { + value := "" + if hasTouchpad { + value = boolToString(enabled) } - if eventlog.WriteEventLog(data) { - logger.Debug("EventLog: natural scroll - touchpad:", touchpadNaturalScroll, "mouse:", mouseNaturalScroll) - } -} - -// LogTouchpadNaturalScroll logs touchpad natural scroll state (for runtime changes) -func LogTouchpadNaturalScroll(enabled bool) { data := &eventlog.EventLogData{ Tid: EventTidNaturalScroll, Target: "natural_scroll", Message: map[string]string{ - "touchpad_natural_scroll": boolToString(enabled), + "touchpad_scroll_native_on": value, }, } if eventlog.WriteEventLog(data) { - logger.Debug("EventLog: touchpad natural scroll:", enabled) + logger.Debug("EventLog: touchpad natural scroll:", value) } } @@ -52,7 +38,7 @@ func LogMouseNaturalScroll(enabled bool) { Tid: EventTidNaturalScroll, Target: "natural_scroll", Message: map[string]string{ - "mouse_natural_scroll": boolToString(enabled), + "mouse_scroll_native_on": boolToString(enabled), }, } if eventlog.WriteEventLog(data) { @@ -66,12 +52,3 @@ func boolToString(b bool) string { } return "false" } - -// LogOnStartup logs the current state on startup with a delay -// Both touchpad and mouse natural scroll states are logged in one combined event -func LogOnStartup(touchpadNaturalScroll, mouseNaturalScroll bool) { - // Delay logging to ensure the event log system is ready - time.AfterFunc(5*time.Second, func() { - LogNaturalScroll(touchpadNaturalScroll, mouseNaturalScroll) - }) -} diff --git a/inputdevices1/manager.go b/inputdevices1/manager.go index 409fb05c1..804fd4b0a 100644 --- a/inputdevices1/manager.go +++ b/inputdevices1/manager.go @@ -225,8 +225,9 @@ func (m *Manager) init() { m.trackPoint.init() - // Log natural scroll states on startup - LogOnStartup(m.tpad.NaturalScroll.Get(), m.mouse.NaturalScroll.Get()) + // Log natural scroll states separately on startup + LogMouseNaturalScroll(m.mouse.NaturalScroll.Get()) + LogTouchpadNaturalScroll(m.tpad.NaturalScroll.Get(), m.tpad.Exist) } m.setWheelSpeed() diff --git a/inputdevices1/mouse.go b/inputdevices1/mouse.go index 0bf1f458c..cb74a3808 100644 --- a/inputdevices1/mouse.go +++ b/inputdevices1/mouse.go @@ -211,8 +211,6 @@ func (m *Mouse) enableNaturalScroll() { v.Id, v.Name, err) } } - // Log event - LogMouseNaturalScroll(enabled) } func (m *Mouse) enableMidBtnEmu() { @@ -318,6 +316,7 @@ func (m *Mouse) initMouseDConfig() error { m.disableTouchPad() case dconfigKeyNaturalScroll: m.enableNaturalScroll() + LogMouseNaturalScroll(m.NaturalScroll.Get()) case dconfigKeyMiddleButtonEnabled: m.enableMidBtnEmu() case dconfigKeyAdaptiveAccelProfile: diff --git a/inputdevices1/touchpad.go b/inputdevices1/touchpad.go index 5d218c9cb..b0708cf98 100644 --- a/inputdevices1/touchpad.go +++ b/inputdevices1/touchpad.go @@ -232,8 +232,19 @@ func (tpad *Touchpad) init() { } func (tpad *Touchpad) handleDeviceChanged() { + oldExist := tpad.Exist tpad.updateDXTpads() tpad.init() + + if oldExist != tpad.Exist { + if tpad.Exist { + // Touchpad plugged in: report real value + LogTouchpadNaturalScroll(tpad.NaturalScroll.Get(), true) + } else { + // Touchpad unplugged: report empty value + LogTouchpadNaturalScroll(false, false) + } + } } func (tpad *Touchpad) updateDXTpads() { @@ -321,8 +332,6 @@ func (tpad *Touchpad) enableNaturalScroll() { v.Id, v.Name, err) } } - // Log event - LogTouchpadNaturalScroll(enabled) } func (tpad *Touchpad) setScrollDistance() { @@ -578,6 +587,7 @@ func (tpad *Touchpad) initTouchpadDConfig() error { tpad.disableWhileTyping() case dconfigKeyTouchpadNaturalScroll: tpad.enableNaturalScroll() + LogTouchpadNaturalScroll(tpad.NaturalScroll.Get(), true) case dconfigKeyTouchpadEdgeScroll: tpad.enableEdgeScroll() case dconfigKeyTouchpadHorizScroll: