zaurusd: Honor user-preferences when starting / killing mbinputmgr on rotation
authorMatthias Hentges <oe@hentges.net>
Fri, 24 Mar 2006 17:40:14 +0000 (17:40 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Fri, 24 Mar 2006 17:40:14 +0000 (17:40 +0000)
packages/zaurusd/files/.mtn2git_empty [new file with mode: 0644]
packages/zaurusd/files/mbinputmgr-honor-user-prefs.patch [new file with mode: 0644]
packages/zaurusd/zaurusd_svn.bb

diff --git a/packages/zaurusd/files/.mtn2git_empty b/packages/zaurusd/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/zaurusd/files/mbinputmgr-honor-user-prefs.patch b/packages/zaurusd/files/mbinputmgr-honor-user-prefs.patch
new file mode 100644 (file)
index 0000000..f4ef7c5
--- /dev/null
@@ -0,0 +1,65 @@
+--- zaurusd/scripts/zaurus-hinge.in    2006-03-24 18:23:15.000000000 +0100
++++ zaurusd/scripts/zaurus-hinge       2006-03-24 18:33:24.480748696 +0100
+@@ -18,6 +18,10 @@
+    exit 1
+ fi
++panel_user="`ps aux|grep matchbox-panel|grep -v grep | awk '{print $2}'`"
++
++
++
+ STATE=$1
+ if [ $STATE = "3" ]; then
+@@ -29,8 +33,21 @@
+ fi
+ if [ $STATE = "0" ]; then
+-  #echo "lanscape"
+-  killproc @bindir@/mbinputmgr
++  #echo "landscape"
++
++  # As matchbox-panel updates its written configuration right after an applet dies / is killed, we can not be sure
++  # whether the user had gpe-panel in his preferences after rotating to portrait. And since there is a slim chance
++  # that a user changes his preferences from time to time, we renew that dumped configuration every now and then ;)
++
++  if ! test -e "/tmp/gpe-panel.session-$panel_user"
++  then
++    cp /home/$panel_user/.matchbox/mbdock.session "/tmp/gpe-panel.session-$panel_user"
++    cat "/tmp/gpe-panel.session-$panel_user" | grep -q panel || killproc @bindir@/mbinputmgr
++  else
++    cat "/tmp/gpe-panel.session-$panel_user" | grep -q panel || killproc @bindir@/mbinputmgr
++    rm "/tmp/gpe-panel.session-$panel_user"
++  fi
++   
+   # urg mbinputmgr should kill below
+   killproc @bindir@/matchbox-keyboard
+   killproc @bindir@/matchbox-stroke
+@@ -47,8 +64,25 @@
+   fi
+   # just to be extra safe
+   sleep 1
+-  if [ -x @bindir@/mbinputmgr ]; then
+-    @bindir@/mbinputmgr &
++      
++  echo "panel_user = [$panel_user]"
++
++  if ! test -e "/tmp/gpe-panel.session-$panel_user"
++  then
++    cp /home/$panel_user/.matchbox/mbdock.session "/tmp/gpe-panel.session-$panel_user"
++  else
++    rm "/tmp/gpe-panel.session-$panel_user"
+   fi
++  
++  if test -n "$panel_user"
++  then
++    echo "Running panel as user [$panel_user]"
++    ps aux | grep "$panel_user" | grep -q "mbinputmgr " || su $panel_user -c @bindir@/mbinputmgr &
++  else
++     # A failsafe can't hurt
++     echo "Warning: Running mbinputmgr as root!"
++     ps aux | grep -q "mbinputmgr " || @bindir@/mbinputmgr &
++  fi
++
+   exit 0
+ fi
index d36fc1c..4f20dc2 100644 (file)
@@ -3,10 +3,11 @@ SECTION = "base"
 MAINTAINER = "Richard Purdie <rpurdie@openedhand.com>"
 DESCRIPTION = "Daemon to handle device specifc features."
 PV = "0.0+svn${SRCDATE}"
-PR = "r0"
+PR = "r1"
 DEPENDS = "tslib"
 
-SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=zaurusd;proto=http"
+SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=zaurusd;proto=http \
+          file://mbinputmgr-honor-user-prefs.patch;patch=1"
 S = "${WORKDIR}/${PN}"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"