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
2 changes: 1 addition & 1 deletion display1/event_log.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
)

// Event ID for display screen (10-digit number)
const EventTidDisplayScreen = 1000600015
const EventTidDisplayScreen = 1000610004

// Debounce delay for display screen events
const displayEventDebounceDelay = 1 * time.Second
Expand Down
74 changes: 74 additions & 0 deletions gesture1/event_log.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
// SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later

package gesture1

import (
"os/exec"
"strings"
"sync"

"github.com/linuxdeepin/dde-daemon/session/eventlog"
)

const (
eventTidKWinMultiTaskView = 1000300000
eventTidKWinSplitScreen = 1000300004

eventLaunchTypeTouchPad = "3"
eventLaunchTypeTouchScreen = "4"
)

var (
kwinVersionOnce sync.Once
kwinVersion string
)

func logMultiTaskViewEvent(launchType string) {
data := &eventlog.EventLogData{
Tid: eventTidKWinMultiTaskView,
Target: "kwin_multitask_view",
Message: map[string]string{
"launch_type": launchType,
"kwin_version": getKWinVersion(),
},
}
if eventlog.WriteEventLog(data) {
logger.Debug("EventLog: kwin multitask view launch type:", launchType)
}
}

func logSplitScreenEvent() {
data := &eventlog.EventLogData{
Tid: eventTidKWinSplitScreen,
Target: "kwin_split_screen",
Message: map[string]string{
"launch_type": eventLaunchTypeTouchPad,
"kwin_version": getKWinVersion(),
},
}
if eventlog.WriteEventLog(data) {
logger.Debug("EventLog: kwin split screen")
}
}

func getKWinVersion() string {
kwinVersionOnce.Do(func() {
kwinVersion = packageVersion("kwin-x11")
})
return kwinVersion
}

func packageVersion(packageName string) string {
packageName = strings.TrimSpace(packageName)
if packageName == "" || strings.ContainsAny(packageName, "/ \t\n\r") {
return ""
}

out, err := exec.Command("dpkg-query", "-W", "-f=${Version}", packageName).Output()
if err != nil {
return ""
}
return strings.TrimSpace(string(out))
}
31 changes: 25 additions & 6 deletions gesture1/gesture_action.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd.
// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later

Expand Down Expand Up @@ -85,7 +85,11 @@ func (m *Manager) doHandle4Or5FingersSwipeUp() error {

if !isShowMultiTask {
if !isShowDesktop {
return m.toggleShowMultiTasking()
if err := m.toggleShowMultiTasking(); err != nil {
return err
}
logMultiTaskViewEvent(eventLaunchTypeTouchPad)
return nil
}
return m.toggleShowDesktop()
}
Expand Down Expand Up @@ -145,11 +149,19 @@ func (m *Manager) doReverseSwitchWorkspace() error {
}

func (m *Manager) doTileActiveWindowLeft() error {
return m.wm.TileActiveWindow(0, wmTileDirectionLeft)
if err := m.wm.TileActiveWindow(0, wmTileDirectionLeft); err != nil {
return err
}
logSplitScreenEvent()
return nil
}

func (m *Manager) doTileActiveWindowRight() error {
return m.wm.TileActiveWindow(0, wmTileDirectionRight)
if err := m.wm.TileActiveWindow(0, wmTileDirectionRight); err != nil {
return err
}
logSplitScreenEvent()
return nil
}

func (m *Manager) doMoveActiveWindow() error {
Expand Down Expand Up @@ -184,17 +196,24 @@ func (m *Manager) doXdotoolsMouseUp() error {
return nil
}

func (m *Manager) doShowMultiTasking() error {
func (m *Manager) showMultiTaskingWithLaunchType(launchType string) error {
isShowMultiTask, err := m.wm.GetMultiTaskingStatus(0)
if err != nil {
return err
}
if !isShowMultiTask {
return m.toggleShowMultiTasking()
if err := m.toggleShowMultiTasking(); err != nil {
return err
}
logMultiTaskViewEvent(launchType)
}
return nil
}

func (m *Manager) doShowMultiTasking() error {
return m.showMultiTaskingWithLaunchType(eventLaunchTypeTouchPad)
}

func (m *Manager) doHideMultiTasking() error {
isShowMultiTask, err := m.wm.GetMultiTaskingStatus(0)
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions gesture1/manager.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
// SPDX-FileCopyrightText: 2022 - 2026 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later

Expand Down Expand Up @@ -619,7 +619,7 @@ func (m *Manager) handleTouchEdgeMoveStopLeave(context *touchEventContext, edge

if (1-p.Y)*float64(context.screenHeight) > float64(dockPly) {
logger.Debug("show muti task")
return doActionByName("ShowMultiTask")
return m.showMultiTaskingWithLaunchType(eventLaunchTypeTouchScreen)
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion inputdevices1/event_log.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
// Event IDs for input devices (10-digit numbers)
const (
// Combined event ID for natural scroll settings on startup
EventTidNaturalScroll = 1000600013 // 自然滚动设置(触控板和鼠标合并)
EventTidNaturalScroll = 1000610009 // 自然滚动设置(触控板和鼠标合并)
)

// LogNaturalScroll logs natural scroll state for both touchpad and mouse in one event
Expand Down
Loading