Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package deepin-daemon for openSUSE:Factory checked in at 2021-06-02 22:11:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/deepin-daemon (Old) and /work/SRC/openSUSE:Factory/.deepin-daemon.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "deepin-daemon" Wed Jun 2 22:11:10 2021 rev:2 rq:894969 version:5.13.10 Changes: -------- --- /work/SRC/openSUSE:Factory/deepin-daemon/deepin-daemon.changes 2021-04-26 16:40:08.074125837 +0200 +++ /work/SRC/openSUSE:Factory/.deepin-daemon.new.1898/deepin-daemon.changes 2021-06-02 22:11:25.192123176 +0200 @@ -1,0 +2,21 @@ +Sat May 22 11:53:04 UTC 2021 - Hillwood Yang <[email protected]> + +- Keep golang version on 1.15 on Tumbleweed, the project does not support + golang 1.16+ + +------------------------------------------------------------------- +Sat May 1 13:46:23 UTC 2021 - Hillwood Yang <[email protected]> + +- Update version to 5.13.10 + * Disble bluetooth by default + * Disble calender service + * Fix save password on WIFI setting + * Update call power button on dde-lock + * Fix bluetooth connecting status + +------------------------------------------------------------------- +Sun Apr 25 13:59:32 UTC 2021 - Hillwood Yang <[email protected]> + +- Fix build on Leap 15.3 + +------------------------------------------------------------------- Old: ---- dde-daemon-5.13.6.tar.gz New: ---- dde-daemon-5.13.10.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ deepin-daemon.spec ++++++ --- /var/tmp/diff_new_pack.VkkXg5/_old 2021-06-02 22:11:26.248123089 +0200 +++ /var/tmp/diff_new_pack.VkkXg5/_new 2021-06-02 22:11:26.248123089 +0200 @@ -19,7 +19,7 @@ %define import_path pkg.deepin.io/dde/daemon Name: deepin-daemon -Version: 5.13.6 +Version: 5.13.10 Release: 0 Summary: Daemon handling the DDE session settings License: GPL-3.0+ @@ -40,7 +40,9 @@ Patch2: disable-gobuild-in-makefile.patch Patch3: xvfb-run.patch Group: System/GUI/Other -# BuildRequires: golang(API) = 1.11 +%if 0%{?suse_version} > 1500 +BuildRequires: golang(API) = 1.15 +%endif BuildRequires: golang-packaging BuildRequires: deepin-gettext-tools BuildRequires: fontpackages-devel @@ -70,7 +72,7 @@ BuildRequires: pkgconfig(xkbfile) BuildRequires: golang-github-linuxdeepin-go-dbus-factory BuildRequires: golang-github-linuxdeepin-dde-api -%if 0%{?suse_version} <= 1500 +%if 0%{?sle_version} == 150200 BuildRequires: golang-github-stretchr-testify %endif %if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150200 @@ -163,7 +165,7 @@ %prep %autosetup -p1 -a2 -n %{_name}-%{version} -%if 0%{?suse_version} <= 1500 +%if 0%{?sle_version} == 150200 rm -rf vendor/github.com/stretchr/testify/ %endif mkdir -p $HOME/rpmbuild/BUILD/go/src/ @@ -192,10 +194,10 @@ %goinstall %gosrc %make_install +%gofilelist pushd %{buildroot}%{_prefix}/lib/deepin-daemon ln -s ../../bin/* . popd -%gofilelist install -Dm644 %{SOURCE1} %{buildroot}%{_prefix}/lib/sysusers.d/deepin-daemon.conf install -Dm755 %{SOURCE3} %{buildroot}%{_bindir}/%{name}-dbus-installer ++++++ dde-daemon-5.13.6.tar.gz -> dde-daemon-5.13.10.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/bin/dde-session-daemon/daemon.go new/dde-daemon-5.13.10/bin/dde-session-daemon/daemon.go --- old/dde-daemon-5.13.6/bin/dde-session-daemon/daemon.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/bin/dde-session-daemon/daemon.go 2021-03-23 04:25:51.000000000 +0100 @@ -141,7 +141,7 @@ "bluetooth", "screenedge", "mime", - "calendar", + //"calendar", "miracast", // need network "systeminfo", "lastore", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/bin/dde-session-daemon/module.go new/dde-daemon-5.13.10/bin/dde-session-daemon/module.go --- old/dde-daemon-5.13.6/bin/dde-session-daemon/module.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/bin/dde-session-daemon/module.go 2021-03-23 04:25:51.000000000 +0100 @@ -57,7 +57,7 @@ _ "pkg.deepin.io/dde/daemon/bluetooth" _ "pkg.deepin.io/dde/daemon/screenedge" - _ "pkg.deepin.io/dde/daemon/calendar" + //_ "pkg.deepin.io/dde/daemon/calendar" _ "pkg.deepin.io/dde/daemon/mime" // depends: network diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/bluetooth/bluetooth.go new/dde-daemon-5.13.10/bluetooth/bluetooth.go --- old/dde-daemon-5.13.6/bluetooth/bluetooth.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/bluetooth/bluetooth.go 2021-03-23 04:25:51.000000000 +0100 @@ -331,7 +331,7 @@ b.agent.init() b.loadObjects() - + b.connectCorePowered() b.obexAgent.init() b.config.clearSpareConfig(b) @@ -1031,3 +1031,22 @@ logger.Warning("failed to emit TransferFailed:", err) } } + +// ??????bluez???adapter???????????????,?????????????????????????????? +func (b *Bluetooth) connectCorePowered() { + for _, adapter := range b.adapters { + err := adapter.core.Powered().ConnectChanged(func(hasValue bool, value bool) { + if !hasValue { + return + } + adapterConfig, ok := b.config.Adapters[adapter.address] + if ok { + adapterConfig.Powered = value + b.config.save() + } + }) + if err != nil { + logger.Warning(err) + } + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/bluetooth/config.go new/dde-daemon-5.13.10/bluetooth/config.go --- old/dde-daemon-5.13.6/bluetooth/config.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/bluetooth/config.go 2021-03-23 04:25:51.000000000 +0100 @@ -83,7 +83,7 @@ } func newAdapterConfig() (ac *adapterConfig) { - ac = &adapterConfig{Powered: true} + ac = &adapterConfig{Powered: false} return } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/bluetooth/config_test.go new/dde-daemon-5.13.10/bluetooth/config_test.go --- old/dde-daemon-5.13.6/bluetooth/config_test.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/bluetooth/config_test.go 2021-03-23 04:25:51.000000000 +0100 @@ -20,7 +20,7 @@ func Test_config(t *testing.T) { configAdapters := map[string]*adapterConfig{ "00:1A:7D:DA:71:13": { - Powered: true, + Powered: false, }, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/bluetooth/device.go new/dde-daemon-5.13.10/bluetooth/device.go --- old/dde-daemon-5.13.6/bluetooth/device.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/bluetooth/device.go 2021-03-23 04:25:51.000000000 +0100 @@ -394,7 +394,8 @@ return } d.Paired = value - logger.Debugf("%s Paired: %v", d, value) + d.updateState() // Paired??????????????????????????????????????????State???ConnectState + logger.Debugf("%s Paired: %v State: %v", d, value, d.State) if d.Paired && d.connected && d.State == deviceStateConnected { d.ConnectState = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/calendar/module.go new/dde-daemon-5.13.10/calendar/module.go --- old/dde-daemon-5.13.6/calendar/module.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/calendar/module.go 2021-03-23 04:25:51.000000000 +0100 @@ -18,7 +18,7 @@ var dbFile = filepath.Join(basedir.GetUserConfigDir(), "deepin/dde-daemon/calendar/scheduler.db") func init() { - loader.Register(newModule()) + //loader.Register(newModule()) } type Module struct { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/docs/session-power.md new/dde-daemon-5.13.10/docs/session-power.md --- old/dde-daemon-5.13.6/docs/session-power.md 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/docs/session-power.md 2021-03-23 04:25:51.000000000 +0100 @@ -14,7 +14,7 @@ ???????????????????????????????????? ????????? ``` -dde-shutdown +dde-lock -t ``` ### LidClosedAction diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/gesture/manager.go new/dde-daemon-5.13.10/gesture/manager.go --- old/dde-daemon-5.13.6/gesture/manager.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/gesture/manager.go 2021-03-23 04:25:51.000000000 +0100 @@ -22,6 +22,8 @@ "pkg.deepin.io/lib/dbusutil/proxy" "pkg.deepin.io/lib/gsettings" dutils "pkg.deepin.io/lib/utils" + clipboard "github.com/linuxdeepin/go-dbus-factory/com.deepin.dde.clipboard" + notification "github.com/linuxdeepin/go-dbus-factory/com.deepin.dde.notification" ) //go:generate dbusutil-gen em -type Manager @@ -49,6 +51,8 @@ enabled bool Infos gestureInfos sessionmanager *sessionmanager.SessionManager + clipboard *clipboard.Clipboard + notification *notification.Notification } func newManager() (*Manager, error) { @@ -116,6 +120,8 @@ display: display.NewDisplay(sessionConn), sysDaemon: daemon.NewDaemon(systemConn), sessionmanager: sessionmanager.NewSessionManager(sessionConn), + clipboard: clipboard.NewClipboard(sessionConn), + notification: notification.NewNotification(sessionConn), } m.gesture = gesture.NewGesture(systemConn) @@ -207,6 +213,24 @@ logger.Error("connect handleTouchEdgeEvent failed:", err) } + _, err = m.gesture.ConnectTouchMovementEvent(func(direction string, fingers int32, startScaleX float64, startScaleY float64, endScaleX float64, endScaleY float64) { + should, err := m.shouldHandleEvent() + if err != nil { + logger.Error("shouldHandleEvent failed:", err) + return + } + if !should { + return + } + + err = m.handleTouchMovementEvent(direction, fingers, startScaleX, startScaleY, endScaleX, endScaleY) + if err != nil { + logger.Error("handleTouchMovementEvent failed:", err) + } + }) + if err != nil { + logger.Error("connect handleTouchMovementEvent failed:", err) + } m.listenGSettingsChanged() } @@ -333,31 +357,36 @@ } func (m *Manager) handleTouchEdgeEvent(edge string, scaleX float64, scaleY float64) error { - var cmd = "" screenWight, err := m.display.ScreenWidth().Get(0) if err != nil { logger.Error("get display.ScreenWidth failed:", err) return err } - if edge == "left" { + switch edge { + case "left": if scaleX*float64(screenWight) > 100 { - cmd = "xdotool key ctrl+alt+v" + return m.clipboard.Show(0) } - } - - if edge == "right" { + case "right": if (1-scaleX)*float64(screenWight) > 100 { - cmd = "dbus-send --type=method_call --dest=com.deepin.dde.osd /org/freedesktop/Notifications com.deepin.dde.Notification.Toggle" + return m.notification.Show(0) } } - if len(cmd) != 0 { - out, err := exec.Command("/bin/sh", "-c", cmd).CombinedOutput() - if err != nil { - return fmt.Errorf("%s", string(out)) + return nil +} + +func (m *Manager) handleTouchMovementEvent(direction string, fingers int32, startScaleX float64, startScaleY float64, endScaleX float64, endScaleY float64) error{ + if fingers == 1 { + switch direction { + case "left": + return m.clipboard.Hide(0) + case "right": + return m.notification.Hide(0) } } + return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/keybinding/audio_controller.go new/dde-daemon-5.13.10/keybinding/audio_controller.go --- old/dde-daemon-5.13.6/keybinding/audio_controller.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/keybinding/audio_controller.go 2021-03-23 04:25:51.000000000 +0100 @@ -24,6 +24,7 @@ "github.com/linuxdeepin/go-dbus-factory/com.deepin.daemon.audio" "github.com/linuxdeepin/go-dbus-factory/com.deepin.daemon.helper.backlight" . "pkg.deepin.io/dde/daemon/keybinding/shortcuts" + "pkg.deepin.io/gir/gio-2.0" ) const ( @@ -31,10 +32,24 @@ volumeMax = 1.5 ) +const ( + gsKeyOsdAdjustVolState = "osd-adjust-volume-enabled" +) + +type OsdVolumeState int32 + +// Osd?????????????????? +const ( + VolumeAdjustEnable OsdVolumeState = iota + VolumeAdjustForbidden + VolumeAdjustHidden +) + type AudioController struct { conn *dbus.Conn audioDaemon *audio.Audio huaweiMicLedWorkaround *huaweiMicLedWorkaround + gsKeyboard *gio.Settings } func NewAudioController(sessionConn *dbus.Conn, @@ -44,6 +59,7 @@ audioDaemon: audio.NewAudio(sessionConn), } c.initHuaweiMicLedWorkaround(backlightHelper) + c.gsKeyboard = gio.NewSettings(gsSchemaKeyboard) return c } @@ -78,25 +94,40 @@ } func (c *AudioController) toggleSinkMute() error { - sink, err := c.getDefaultSink() - if err != nil { - return err - } + var osd string + var state = OsdVolumeState(c.gsKeyboard.GetEnum(gsKeyOsdAdjustVolState)) - mute, err := sink.Mute().Get(0) - if err != nil { - return err - } + // ???OsdAdjustVolumeState?????????VolumeAdjustEnable????????????????????????????????? + if VolumeAdjustEnable == state { + sink, err := c.getDefaultSink() + if err != nil { + return err + } - err = sink.SetMute(0, !mute) - if err != nil { - return err + mute, err := sink.Mute().Get(0) + if err != nil { + return err + } + + err = sink.SetMute(0, !mute) + if err != nil { + return err + } + osd = "AudioMute" + } else if VolumeAdjustForbidden == state { + osd = "AudioMuteAsh" + } else { + return nil } - showOSD("AudioMute") + + showOSD(osd) return nil } func (c *AudioController) toggleSourceMute() error { + var osd string + var state = OsdVolumeState(c.gsKeyboard.GetEnum(gsKeyOsdAdjustVolState)) + source, err := c.getDefaultSource() if err != nil { return err @@ -107,69 +138,96 @@ return err } mute = !mute - err = source.SetMute(0, mute) - if err != nil { - return err - } - var osd string - if mute { - osd = "AudioMicMuteOn" + // ???OsdAdjustVolumeState?????????VolumeAdjustEnable????????????????????????????????? + if VolumeAdjustEnable == state { + err = source.SetMute(0, mute) + if err != nil { + return err + } + + if mute { + osd = "AudioMicMuteOn" + } else { + osd = "AudioMicMuteOff" + } + } else if VolumeAdjustForbidden == state { + if mute { + osd = "AudioMicMuteOnAsh" + } else { + osd = "AudioMicMuteOffAsh" + } } else { - osd = "AudioMicMuteOff" + return nil } + showOSD(osd) return nil } func (c *AudioController) changeSinkVolume(raised bool) error { - sink, err := c.getDefaultSink() - if err != nil { - return err - } + var osd string + var state = OsdVolumeState(c.gsKeyboard.GetEnum(gsKeyOsdAdjustVolState)) - osd := "AudioUp" - v, err := sink.Volume().Get(0) - if err != nil { - return err - } + // ???OsdAdjustVolumeState?????????VolumeAdjustEnable?????????????????????????????????????????? + if VolumeAdjustEnable == state { + sink, err := c.getDefaultSink() + if err != nil { + return err + } - var step = 0.05 - if !raised { - step = -step - osd = "AudioDown" - } + osd = "AudioUp" + v, err := sink.Volume().Get(0) + if err != nil { + return err + } - maxVolume, err := c.audioDaemon.MaxUIVolume().Get(0) - if err != nil { - logger.Warning(err) - maxVolume = volumeMax - } + var step = 0.05 + if !raised { + step = -step + osd = "AudioDown" + } - v += step - if v < volumeMin { - v = volumeMin - } else if v > maxVolume { - v = maxVolume - } + maxVolume, err := c.audioDaemon.MaxUIVolume().Get(0) + if err != nil { + logger.Warning(err) + maxVolume = volumeMax + } - logger.Debug("[changeSinkVolume] will set volume to:", v) - mute, err := sink.Mute().Get(0) - if err != nil { - return err - } + v += step + if v < volumeMin { + v = volumeMin + } else if v > maxVolume { + v = maxVolume + } - if mute { - err = sink.SetMute(0, false) + logger.Debug("[changeSinkVolume] will set volume to:", v) + mute, err := sink.Mute().Get(0) if err != nil { - logger.Warning(err) + return err } - } - err = sink.SetVolume(0, v, true) - if err != nil { - return err + if mute { + err = sink.SetMute(0, false) + if err != nil { + logger.Warning(err) + } + } + + err = sink.SetVolume(0, v, true) + if err != nil { + return err + } + } else if VolumeAdjustForbidden == state { + if raised { + osd = "AudioUpAsh" + } else { + osd = "AudioDownAsh" + } + } else { + return nil } + showOSD(osd) return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/keybinding/display_controller.go new/dde-daemon-5.13.10/keybinding/display_controller.go --- old/dde-daemon-5.13.6/keybinding/display_controller.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/keybinding/display_controller.go 2021-03-23 04:25:51.000000000 +0100 @@ -27,16 +27,32 @@ "pkg.deepin.io/gir/gio-2.0" ) +const ( + gsKeyOsdAdjustBrightnessState = "osd-adjust-brightness-enabled" +) + +type OsdBrightnessState int32 + +// Osd?????????????????? +const ( + BrightnessAdjustEnable OsdBrightnessState = iota + BrightnessAdjustForbidden + BrightnessAdjustHidden +) + type DisplayController struct { display *display.Display backlightHelper *backlight.Backlight + gsKeyboard *gio.Settings } func NewDisplayController(backlightHelper *backlight.Backlight, sessionConn *dbus.Conn) *DisplayController { - return &DisplayController{ + c := &DisplayController{ backlightHelper: backlightHelper, display: display.NewDisplay(sessionConn), } + c.gsKeyboard = gio.NewSettings(gsSchemaKeyboard) + return c } func (*DisplayController) Name() string { @@ -70,17 +86,29 @@ if !raised { osd = "BrightnessDown" } + var state = OsdBrightnessState(c.gsKeyboard.GetEnum(gsKeyOsdAdjustBrightnessState)) - gs := gio.NewSettings("com.deepin.dde.power") - autoAdjustBrightnessEnabled := gs.GetBoolean(gsKeyAmbientLightAdjustBrightness) - if autoAdjustBrightnessEnabled { - gs.SetBoolean(gsKeyAmbientLightAdjustBrightness, false) - } - gs.Unref() + // ?????????OsdAdjustBrightnessState?????????BrightnessAdjustEnable?????????????????????????????????????????? + if BrightnessAdjustEnable == state { + gs := gio.NewSettings("com.deepin.dde.power") + autoAdjustBrightnessEnabled := gs.GetBoolean(gsKeyAmbientLightAdjustBrightness) + if autoAdjustBrightnessEnabled { + gs.SetBoolean(gsKeyAmbientLightAdjustBrightness, false) + } + gs.Unref() - err := c.display.ChangeBrightness(dbus.FlagNoAutoStart, raised) - if err != nil { - return err + err := c.display.ChangeBrightness(dbus.FlagNoAutoStart, raised) + if err != nil { + return err + } + } else if BrightnessAdjustForbidden == state { + if raised { + osd = "BrightnessUpAsh" + } else { + osd = "BrightnessDownAsh" + } + } else { + return nil } showOSD(osd) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/keybinding/special_keycode.go new/dde-daemon-5.13.10/keybinding/special_keycode.go --- old/dde-daemon-5.13.6/keybinding/special_keycode.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/keybinding/special_keycode.go 2021-03-23 04:25:51.000000000 +0100 @@ -119,7 +119,6 @@ } screenBlackLock := m.gsPower.GetBoolean("screen-black-lock") - sleepLock := m.gsPower.GetBoolean("sleep-lock") // NOTE : ????????????????????????????????? if onBattery { powerPressAction = m.gsPower.GetEnum("battery-press-power-button") @@ -130,19 +129,16 @@ case powerActionShutdown: m.systemShutdown() case powerActionSuspend: - if sleepLock { - systemLock() - } - m.systemSuspend() + m.systemSuspendByFront() case powerActionHibernate: - m.systemHibernate() + m.systemHibernateByFront() case powerActionTurnOffScreen: if screenBlackLock { systemLock() } m.systemTurnOffScreen() case powerActionShowUI: - cmd := "dde-shutdown -s" + cmd := "dde-lock -t" go func() { locked, err := m.sessionManager.Locked().Get(0) if err != nil { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/network/manager.go new/dde-daemon-5.13.10/network/manager.go --- old/dde-daemon-5.13.6/network/manager.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/network/manager.go 2021-03-23 04:25:51.000000000 +0100 @@ -100,10 +100,6 @@ stateHandler *stateHandler proxyChainsManager *proxychains.Manager - hasSaveSecret bool //determine whether to save the password to the keyring - items []settingItem // save password information temporarily - saveToKeyring bool // do not save password to keyring by default - sessionSigLoop *dbusutil.SignalLoop syncConfig *dsync.Config @@ -177,7 +173,7 @@ logger.Warning(err) return } - m.saveToKeyring = true + // TODO(jouyouyun): improve in future // Sometimes the 'org.freedesktop.secrets' is not exists, this would block the 'init' function, so move to goroutinue go func() { @@ -442,7 +438,7 @@ return } logger.Debugf("portal addr is %v", portal) - err = exec.Command(`xdg-open`, portal).Start() + err = exec.Command(`xdg-open`, portal).Run() if err != nil { logger.Warningf("xdg open windows failed, err: %v", err) return diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/network/manager_connection.go new/dde-daemon-5.13.10/network/manager_connection.go --- old/dde-daemon-5.13.6/network/manager_connection.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/network/manager_connection.go 2021-03-23 04:25:51.000000000 +0100 @@ -454,8 +454,6 @@ } } - m.hasSaveSecret = true - m.saveToKeyring = true _, err = nmActivateConnection(cpath, devPath) return } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/network/secret_agent.go new/dde-daemon-5.13.10/network/secret_agent.go --- old/dde-daemon-5.13.6/network/secret_agent.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/network/secret_agent.go 2021-03-23 04:25:51.000000000 +0100 @@ -559,7 +559,7 @@ isMustAsk(connectionData, settingName, secretKey) { askItems = append(askItems, secretKey) } - } else if secretFlags == secretFlagAgentOwned && sa.m.saveToKeyring { + } else if secretFlags == secretFlagAgentOwned { if requestNew { // check if NMSecretAgentGetSecretsFlags contains NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW // if is, means the password we set last time is incorrect, new password is needed @@ -576,11 +576,6 @@ askItems = append(askItems, secretKey) } } - } else if !sa.m.saveToKeyring { - err = sa.deleteAll(connUUID) - if err != nil { - return nil, err - } } } if allowInteraction && len(askItems) > 0 { @@ -590,13 +585,12 @@ logger.Warning("askPasswords error:", err) return nil, errSecretAgentUserCanceled } else { + var items []settingItem for key, value := range resultAsk { setting[key] = dbus.MakeVariant(value) secretFlags, _ := getConnectionDataUint32(connectionData, settingName, getSecretFlagsKeyName(key)) if secretFlags == secretFlagAgentOwned { - sa.m.hasSaveSecret = false - var items []settingItem valueStr, ok := setting[key].Value().(string) if ok { label := fmt.Sprintf("Network secret for %s/%s/%s", connId, settingName, key) @@ -607,24 +601,15 @@ label: label, }) } - sa.m.items = items } } - } - } - // when requestNew is true or dont save secretKey here - if !sa.m.saveToKeyring || requestNew { - for _, item := range sa.m.items { - secretFlags, _ := getConnectionDataUint32(connectionData, item.settingName, - getSecretFlagsKeyName(item.settingKey)) - if secretFlags == secretFlagAgentOwned { - sa.m.hasSaveSecret = false - sa.m.saveToKeyring = true - setting[item.settingKey] = dbus.MakeVariant(item.value) - return + + for _, item := range items { + sa.set(item.label, connUUID, item.settingName, item.settingKey, item.value) } } } + resultSaved, err := sa.getAll(connUUID, settingName) if err != nil { return nil, err @@ -945,7 +930,6 @@ for key, value := range setting { if strv.Strv(secretKeys).Contains(key) { // key is secret key - secretFlags, _ := getConnectionDataUint32(connectionData, settingName, getSecretFlagsKeyName(key)) if secretFlags != secretFlagAgentOwned { @@ -968,16 +952,11 @@ for _, item := range arr { label := item.label if label == "" { - item.label = fmt.Sprintf("Network secret for %s/%s/%s", connId, + label = fmt.Sprintf("Network secret for %s/%s/%s", connId, item.settingName, item.settingKey) } - secretFlags, _ := getConnectionDataUint32(connectionData, item.settingName, - getSecretFlagsKeyName(item.settingKey)) - if secretFlags == secretFlagAgentOwned { - sa.m.saveToKeyring = false - sa.m.items = arr - continue - } + + sa.set(label, connUUID, item.settingName, item.settingKey, item.value) err := sa.set(item.label, connUUID, item.settingName, item.settingKey, item.value) if err != nil { logger.Debug("failed to save Secret to keyring") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/network/state_handler.go new/dde-daemon-5.13.10/network/state_handler.go --- old/dde-daemon-5.13.6/network/state_handler.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/network/state_handler.go 2021-03-23 04:25:51.000000000 +0100 @@ -273,12 +273,6 @@ if sessionActived { notify(icon, "", fmt.Sprintf(Tr("%q connected"), msg)) } - if !sh.m.hasSaveSecret { - if data, err := nmGetDeviceActiveConnectionData(path); err == nil { - sh.savePasswordByConnectionStatus(data) - } - sh.m.hasSaveSecret = true - } } case nm.NM_DEVICE_STATE_FAILED, nm.NM_DEVICE_STATE_DISCONNECTED, nm.NM_DEVICE_STATE_NEED_AUTH, nm.NM_DEVICE_STATE_UNMANAGED, nm.NM_DEVICE_STATE_UNAVAILABLE: @@ -366,7 +360,6 @@ if oldState == nm.NM_DEVICE_STATE_CONFIG && newState == nm.NM_DEVICE_STATE_NEED_AUTH { msg = fmt.Sprintf(Tr("Connection failed, unable to connect %q, wrong password"), dsi.aconnId) } - sh.m.hasSaveSecret = true case CUSTOM_NM_DEVICE_STATE_REASON_CABLE_UNPLUGGED: //disconnected due to cable unplugged // if device is ethernet,notify disconnected message @@ -404,23 +397,4 @@ nmDestroyDevice(dev.nmDev) delete(sh.devices, path) } -} - -//Because the password is saved to keyring by -//default, the storage operation needs to be -//performed according to the status judgment, and -//only when the password is correct. -func (sh *stateHandler) savePasswordByConnectionStatus(data connectionData) { - connUUID, ok := getConnectionDataString(data, "connection", "uuid") - if !ok { - logger.Debug("Failed to save password because can not find connUUID") - return - } - for _, item := range sh.m.items { - err := sh.m.secretAgent.set(item.label, connUUID, item.settingName, item.settingKey, item.value) - if err != nil { - logger.Debug("failed to save secret when status connected") - return - } - } -} +} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/network/utils.go new/dde-daemon-5.13.10/network/utils.go --- old/dde-daemon-5.13.6/network/utils.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/network/utils.go 2021-03-23 04:25:51.000000000 +0100 @@ -154,7 +154,7 @@ go func() { err = cmd.Wait() if err != nil { - logger.Debug("failed to wait cmd:", err) + logger.Warning("failed to wait cmd:", err) return } }() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/rpm/dde-daemon.spec new/dde-daemon-5.13.10/rpm/dde-daemon.spec --- old/dde-daemon-5.13.6/rpm/dde-daemon.spec 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/rpm/dde-daemon.spec 2021-03-23 04:25:51.000000000 +0100 @@ -1,93 +1,59 @@ %global _smp_mflags -j1 -%if 0%{?fedora} == 0 %global debug_package %{nil} %global _unpackaged_files_terminate_build 0 %global _missing_build_ids_terminate_build 0 %define __debug_install_post \ %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\ %{nil} -%endif %global sname deepin-daemon -%global repo dde-daemon %global release_name server-industry -%if 0%{?fedora} -Name: %{sname} -%else -Name: %{repo} -%endif -Version: 5.12.0.25 -Release: 1%{?fedora:%dist} +Name: dde-daemon +Version: 5.13.9 +Release: 1 Summary: Daemon handling the DDE session settings License: GPLv3 -%if 0%{?fedora} -URL: https://github.com/linuxdeepin/dde-daemon -Source0: %{url}/archive/%{version}/%{repo}-%{version}.tar.gz -# upstream default mono font set to 'Noto Mono', which is not yet available in -# Fedora. We change to 'Noto Sans Mono' -Source1: fontconfig.json -Source2: %{sname}.sysusers -%else URL: http://shuttle.corp.deepin.com/cache/tasks/18802/unstable-amd64/ -Source0: %{repo}-%{version}.orig.tar.xz -%endif +Source0: %{name}-%{version}.orig.tar.xz BuildRequires: python3 -%if 0%{?fedora} -ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}} -BuildRequires: golang(pkg.deepin.io/dde/api/dxinput) >= 3.1.26 -BuildRequires: golang(github.com/linuxdeepin/go-dbus-factory/org.bluez) -BuildRequires: golang(github.com/linuxdeepin/go-x11-client) -BuildRequires: golang(github.com/BurntSushi/xgb) -BuildRequires: golang(github.com/BurntSushi/xgbutil) -BuildRequires: golang(github.com/axgle/mahonia) -BuildRequires: golang(github.com/msteinert/pam) -BuildRequires: golang(github.com/nfnt/resize) -BuildRequires: golang(github.com/cryptix/wav) -BuildRequires: golang(gopkg.in/yaml.v2) -BuildRequires: golang(github.com/gosexy/gettext) -BuildRequires: golang(github.com/jinzhu/gorm) -BuildRequires: golang(github.com/jinzhu/gorm/dialects/sqlite) -BuildRequires: golang(github.com/kelvins/sunrisesunset) -BuildRequires: golang(github.com/rickb777/date) -BuildRequires: golang(github.com/teambition/rrule-go) -BuildRequires: golang(github.com/davecgh/go-spew/spew) -%else BuildRequires: gocode -BuildRequires: resize-devel -BuildRequires: gorm-devel -BuildRequires: inflection-devel -%endif BuildRequires: compiler(go-compiler) BuildRequires: deepin-gettext-tools BuildRequires: fontpackages-devel BuildRequires: librsvg2-tools BuildRequires: pam-devel >= 1.3.1 +BuildRequires: pam >= 1.3.1 BuildRequires: glib2-devel BuildRequires: gtk3-devel BuildRequires: systemd-devel +BuildRequires: resize-devel +BuildRequires: gorm-devel +BuildRequires: inflection-devel BuildRequires: alsa-lib-devel +BuildRequires: alsa-lib BuildRequires: pulseaudio-libs-devel BuildRequires: gdk-pixbuf2-xlib-devel +BuildRequires: gdk-pixbuf2-xlib BuildRequires: libnl3-devel +BuildRequires: libnl3 BuildRequires: libgudev-devel +BuildRequires: libgudev BuildRequires: libinput-devel +BuildRequires: libinput BuildRequires: librsvg2-devel +BuildRequires: librsvg2 BuildRequires: libXcursor-devel +BuildRequires: ddcutil-devel BuildRequires: pkgconfig(sqlite3) -Requires: bluez-libs%{?_isa} +Requires: bluez-libs Requires: deepin-desktop-base Requires: deepin-desktop-schemas -%if 0%{?fedora} -Requires: deepin-session-ui -Requires: deepin-polkit-agent -%else Requires: dde-session-ui Requires: dde-polkit-agent -%endif Requires: rfkill Requires: gvfs Requires: iw @@ -97,21 +63,16 @@ Recommends: mobile-broadband-provider-info Recommends: google-noto-mono-fonts Recommends: google-noto-sans-fonts -%if 0%{?fedora} -Recommends: google-noto-sans-mono-fonts -%endif %description Daemon handling the DDE session settings %prep -%autosetup -p1 -n %{repo}-%{version} +%autosetup patch langselector/locale.go < rpm/locale.go.patch # Fix library exec path sed -i '/deepin/s|lib|libexec|' Makefile -sed -i '/systemd/s|lib|usr/lib|' Makefile -sed -i 's:/lib/udev/rules.d:%{_udevrulesdir}:' Makefile sed -i '/${DESTDIR}\/usr\/lib\/deepin-daemon\/service-trigger/s|${DESTDIR}/usr/lib/deepin-daemon/service-trigger|${DESTDIR}/usr/libexec/deepin-daemon/service-trigger|g' Makefile sed -i '/${DESTDIR}${PREFIX}\/lib\/deepin-daemon/s|${DESTDIR}${PREFIX}/lib/deepin-daemon|${DESTDIR}${PREFIX}/usr/libexec/deepin-daemon|g' Makefile sed -i 's|lib/NetworkManager|libexec|' network/utils_test.go @@ -153,25 +114,14 @@ %build BUILDID="0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n')" -%if 0%{?fedora} -export GOPATH="$(pwd)/build:%{gopath}" -%else export GOPATH=/usr/share/gocode -%endif %make_build GO_BUILD_FLAGS=-trimpath GOBUILD="go build -compiler gc -ldflags \"-B $BUILDID\"" +#make GOPATH=/usr/share/gocode %install BUILDID="0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n')" -%if 0%{?fedora} -export GOPATH="$(pwd)/build:%{gopath}" -%else export GOPATH=/usr/share/gocode -%endif -%make_install GOBUILD="go build -compiler gc -ldflags \"-B $BUILDID\"" - -%if 0%{?fedora} -install -Dm644 %{SOURCE2} %{buildroot}/usr/lib/sysusers.d/%{name}.conf -%endif +%make_install PAM_MODULE_DIR=%{_libdir}/security GOBUILD="go build -compiler gc -ldflags \"-B $BUILDID\"" # fix systemd/logind config install -d %{buildroot}/usr/lib/systemd/logind.conf.d/ @@ -181,13 +131,7 @@ HandleSuspendKey=ignore EOF -%if 0%{?fedora} -# install default settings -install -Dm644 %{SOURCE1} \ - %{buildroot}%{_datadir}/deepin-default-settings/fontconfig.json -%endif - -%find_lang %{repo} +%find_lang %{name} %post if [ $1 -ge 1 ]; then @@ -208,50 +152,35 @@ rm -f /var/log/deepin.log fi -%files -f %{repo}.lang +%files -f %{name}.lang %doc README.md %license LICENSE +%{_sysconfdir}/default/grub.d/10_deepin.cfg +%{_sysconfdir}/grub.d/35_deepin_gfxmode %{_sysconfdir}/pam.d/deepin-auth-keyboard -%{_sysconfdir}/NetworkManager/conf.d/deepin.dde.daemon.conf -%{_sysconfdir}/modules-load.d/i2c_dev.conf %{_libexecdir}/%{sname}/ %{_prefix}/lib/systemd/logind.conf.d/10-%{sname}.conf %{_datadir}/dbus-1/services/*.service %{_datadir}/dbus-1/system-services/*.service %{_datadir}/dbus-1/system.d/*.conf %{_datadir}/icons/hicolor/*/status/* -%{_datadir}/%{repo}/ +%{_datadir}/%{name}/ %{_datadir}/dde/ %{_datadir}/polkit-1/actions/*.policy %{_var}/cache/appearance/ %{_var}/lib/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Accounts.pkla +%{_var}/lib/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Grub2.pkla %{_sysconfdir}/acpi/actions/deepin_lid.sh %{_sysconfdir}/acpi/events/deepin_lid -# This directory is not provided by any other package. -%dir %{_sysconfdir}/pulse/daemon.conf.d %{_sysconfdir}/pulse/daemon.conf.d/10-deepin.conf -%{_udevrulesdir}/80-deepin-fprintd.rules -%{_var}/lib/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Fprintd.pkla -%{_unitdir}/dbus-com.deepin.dde.lockservice.service -%{_unitdir}/deepin-accounts-daemon.service -%{_unitdir}/hwclock_stop.service -%if 0%{?fedora} -%{_sysusersdir}/%{name}.conf -%{_datadir}/deepin-default-settings/ -%exclude %{_sysconfdir}/default/grub.d/10_deepin.cfg -%exclude %{_sysconfdir}/grub.d/35_deepin_gfxmode -%exclude %{_libexecdir}/%{name}/grub2 -%exclude %{_datadir}/dbus-1/system-services/com.deepin.daemon.Grub2.service -%exclude %{_datadir}/dbus-1/system.d/com.deepin.daemon.Grub2.conf -%exclude %{_datadir}/polkit-1/actions/com.deepin.daemon.Grub2.policy -%exclude %{_var}/lib/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Grub2.pkla -%else -%{_sysconfdir}/default/grub.d/10_deepin.cfg -%{_sysconfdir}/grub.d/35_deepin_gfxmode -%{_var}/lib/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Grub2.pkla -%endif +/lib/udev/rules.d/80-deepin-fprintd.rules +%{_datadir}/pam-configs/deepin-auth +/var/lib/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Fprintd.pkla +%{_libdir}/security/pam_deepin_auth.so +/lib/systemd/system/dbus-com.deepin.dde.lockservice.service +/lib/systemd/system/deepin-accounts-daemon.service %changelog -* Thu May 28 2020 uoser <[email protected]> - 5.9.4-2 -- Project init. +* Wed Mar 12 2021 uoser <[email protected]> - 5.13.9-1 +- Update to 5.13.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/session/power/power_save_plan.go new/dde-daemon-5.13.10/session/power/power_save_plan.go --- old/dde-daemon-5.13.6/session/power/power_save_plan.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/session/power/power_save_plan.go 2021-03-23 04:25:51.000000000 +0100 @@ -33,6 +33,7 @@ "pkg.deepin.io/lib/dbusutil/gsprop" x "github.com/linuxdeepin/go-x11-client" + xscreensaver "github.com/linuxdeepin/go-x11-client/ext/screensaver" "github.com/linuxdeepin/go-x11-client/util/wm/ewmh" "pkg.deepin.io/lib/gsettings" "pkg.deepin.io/lib/procfs" @@ -613,6 +614,28 @@ logger.Info("HandleIdleOn") + idleTime := psp.metaTasks.min() + xConn, err := x.NewConn() + if err == nil { + xDefaultScreen := xConn.GetDefaultScreen() + if xDefaultScreen != nil { + xInfo, err := xscreensaver.QueryInfo(xConn, x.Drawable(xDefaultScreen.Root)).Reply(xConn) + if err == nil { + idleTime = int32(xInfo.MsSinceUserInput / 1000) + } else { + logger.Warning(err) + } + } else { + logger.Warning("cannot get X11 default screen") + } + xConn.Close() + } else { + logger.Warning(err) + } + + logger.Debugf("idle time: %d ms", idleTime) + psp.metaTasks.setRealDelay(idleTime) + for _, t := range psp.metaTasks { logger.Debugf("do %s after %v", t.name, t.realDelay) task := newDelayedTask(t.name, t.realDelay, t.fn) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/system/gesture/gesture.go new/dde-daemon-5.13.10/system/gesture/gesture.go --- old/dde-daemon-5.13.6/system/gesture/gesture.go 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/system/gesture/gesture.go 2021-03-23 04:25:51.000000000 +0100 @@ -169,6 +169,13 @@ scaleX, scaleY float64 } + TouchMovementEvent struct { + direction string + fingers int32 + startScaleX, startScaleY float64 + endScaleX, endScaleY float64 + } + TouchSinglePressTimeout struct { time int32 scaleX, scaleY float64 @@ -287,12 +294,18 @@ } //export handleTouchScreenEvent -func handleTouchScreenEvent(ty, direction, fingers C.int, scaleX, scaleY C.double) { - if int(ty) == int(C.get_edge_type()) { - err := _m.service.Emit(_m, "TouchEdgeEvent", TouchDirection(direction).String(), float64(scaleX), float64(scaleY)) +func handleTouchScreenEvent(ty, direction, fingers C.int, startScaleX, startScaleY, endScaleX, endScaleY C.double) { + switch int(ty) { + case int(C.get_edge_type()): + err := _m.service.Emit(_m, "TouchEdgeEvent", TouchDirection(direction).String(), float64(endScaleX), float64(endScaleY)) if err != nil { logger.Error("handleTouchScreenEvent failed:", err) } + case int(C.get_movement_type()): + err := _m.service.Emit(_m, "TouchMovementEvent", TouchDirection(direction).String(), fingers, float64(startScaleX), float64(startScaleY), float64(endScaleX), float64(endScaleY)) + if err != nil { + logger.Error("handleTouchMovementEvent failed:", err) + } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/system/gesture/touchscreen_core.c new/dde-daemon-5.13.10/system/gesture/touchscreen_core.c --- old/dde-daemon-5.13.6/system/gesture/touchscreen_core.c 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/system/gesture/touchscreen_core.c 2021-03-23 04:25:51.000000000 +0100 @@ -55,40 +55,12 @@ }; #endif -int direction_to_int(enum Direction d) { - switch (d) { - case DIR_NONE: - return 510; - case DIR_TOP: - return 511; - case DIR_RIGHT: - return 512; - case DIR_BOT: - return 513; - case DIR_LEFT: - return 514; - default: - return -1; - } +int get_edge_type() { + return (int)GT_EDGE; } -int gesture_to_int(enum GestureType g) { - switch (g) { - case GT_NONE: - return 550; - case GT_TAP: - return 551; - case GT_MOVEMENT: - return 552; - case GT_EDGE: - return 553; - default: - return -1; - } -} - -int get_edge_type() { - return gesture_to_int(GT_EDGE); +int get_movement_type() { + return (int)GT_MOVEMENT; } //set move stop time when it's edge event @@ -102,6 +74,12 @@ edge_move_stop_time = duration; } +// udpate touchscreen first touch point info +void update_first_point_relative_coordinate(double x, double y) { + start_point_scale.x = x / screen.width; + start_point_scale.y = y / screen.height; +} + //update touchscreen last touch point info void update_last_point_relative_coordinate(double x, double y) { last_point.x = x; @@ -337,6 +315,7 @@ m[slot].t_end = m[slot].t_start; m[slot].down = true; + update_first_point_relative_coordinate(m[slot].start.x, m[slot].start.y); update_last_point_relative_coordinate(m[slot].end.x, m[slot].end.y); if (cur_touch_finger_num(m) == 1) @@ -476,9 +455,14 @@ g.type = GT_TAP; } else if (g.num > 1) { g.type = GT_MOVEMENT; - } else if ((edge_dir = edge_move_direction(m, ready)) != DIR_NONE) { - g.type = GT_EDGE; - g.dir = edge_dir; + } else if (g.num == 1) { + edge_dir = edge_move_direction(m, ready); + if (edge_dir != DIR_NONE) { + g.type = GT_EDGE; + g.dir = edge_dir; + } else { + g.type = GT_MOVEMENT; + } } return g; } @@ -496,7 +480,7 @@ logger("Handle movements: got gesture\n"); print_gesture(&g); - handleTouchScreenEvent(gesture_to_int(g.type), direction_to_int(g.dir), g.num, last_point_scale.x, last_point_scale.y); + handleTouchScreenEvent((int)g.type, (int)g.dir, g.num, start_point_scale.x, start_point_scale.y, last_point_scale.x, last_point_scale.y); list_destroy(ready); logger("Handle movements: end\n"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dde-daemon-5.13.6/system/gesture/touchscreen_core.h new/dde-daemon-5.13.10/system/gesture/touchscreen_core.h --- old/dde-daemon-5.13.6/system/gesture/touchscreen_core.h 2021-02-25 04:35:15.000000000 +0100 +++ new/dde-daemon-5.13.10/system/gesture/touchscreen_core.h 2021-03-23 04:25:51.000000000 +0100 @@ -8,19 +8,19 @@ enum Direction { // if applied to edges, will just denote the side of the edge - DIR_NONE = 510, - DIR_TOP = 511, // movement towards top - DIR_RIGHT = 512, // movement towards right - DIR_BOT = 513, // movement towards bottom - DIR_LEFT = 514, // movement towards left + DIR_NONE, + DIR_TOP, // movement towards top + DIR_RIGHT, // movement towards right + DIR_BOT, // movement towards bottom + DIR_LEFT, // movement towards left }; typedef enum Direction Direction; enum GestureType { - GT_NONE = 550, // not a gesture - GT_TAP = 551, // single tap on the screen with no movement - GT_MOVEMENT = 552, // general moving gesture - GT_EDGE = 553, // movement starting on edge of screen + GT_NONE, // not a gesture + GT_TAP, // single tap on the screen with no movement + GT_MOVEMENT, // general moving gesture + GT_EDGE, // movement starting on edge of screen }; typedef struct gesture { @@ -54,6 +54,7 @@ } moveStop; static point last_point; +static point start_point_scale; static point last_point_scale; static screeninfo screen; static int move_stop_distance = 1; @@ -63,6 +64,7 @@ static double min_edge_distance = 10.0; // minimum gesture distance from edge (in mm) int get_edge_type(); +int get_movement_type(); point get_last_point_scale(); void set_edge_move_stop_time(int duration); void handle_movements(movement *m);
