--- 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