[maemo-commits] [maemo-commits] r11875 - in projects/haf/trunk/hildon-desktop: . data libhildondesktop

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri May 25 19:17:39 EEST 2007
Author: moimart
Date: 2007-05-25 19:17:36 +0300 (Fri, 25 May 2007)
New Revision: 11875

Added:
   projects/haf/trunk/hildon-desktop/data/install_sbapplet.sh
Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/configure.ac
   projects/haf/trunk/hildon-desktop/data/Makefile.am
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-window.c
Log:
2007-05-25  Moises Martinez  <moises.martinez at nokia.com>

        * configure.ac: Added HAVE_XTEST condition for libhildondesktop
        * libhildondesktop/hildon-desktop-popup-window.c:
        - Send additional fake press/release event for overriding the
        grabbing.
        * configure.ac        (working copy)
        * data/Makefile.am:
        * data/install_sbapplet.sh:
        - Added helper script for installing statusbar applets and to be used
        in postinst .deb scripts
	* ChangeLog updated.




Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-05-25 15:51:52 UTC (rev 11874)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-05-25 16:17:36 UTC (rev 11875)
@@ -1,5 +1,17 @@
 2007-05-25  Moises Martinez  <moises.martinez at nokia.com>
 
+	* configure.ac: Added HAVE_XTEST condition for libhildondesktop
+	* libhildondesktop/hildon-desktop-popup-window.c:
+	- Send additional fake press/release event for overriding the
+	grabbing.
+	* configure.ac        (working copy)
+	* data/Makefile.am:
+	* data/install_sbapplet.sh:
+	- Added helper script for installing statusbar applets and to be used
+	in postinst .deb scripts
+
+2007-05-25  Moises Martinez  <moises.martinez at nokia.com>
+
 	* src/hd-switcher-menu.c:
 	- Highlight next application when menu is opened and home key is
 	pressed. Fixes: NB#57666

Modified: projects/haf/trunk/hildon-desktop/configure.ac
===================================================================
--- projects/haf/trunk/hildon-desktop/configure.ac	2007-05-25 15:51:52 UTC (rev 11874)
+++ projects/haf/trunk/hildon-desktop/configure.ac	2007-05-25 16:17:36 UTC (rev 11875)
@@ -199,6 +199,7 @@
 PKG_CHECK_MODULES(XTEST, xtst)
 AC_SUBST(XTEST_LIBS)
 AC_SUBST(XTEST_CFLAGS)
+AC_DEFINE(HAVE_XTEST, [], [Whether XTest is present])
 
 #+++++++++++++++++++
 # Directories setup

Modified: projects/haf/trunk/hildon-desktop/data/Makefile.am
===================================================================
--- projects/haf/trunk/hildon-desktop/data/Makefile.am	2007-05-25 15:51:52 UTC (rev 11874)
+++ projects/haf/trunk/hildon-desktop/data/Makefile.am	2007-05-25 16:17:36 UTC (rev 11875)
@@ -17,4 +17,6 @@
 hildondesktopstartup_SCRIPTS = \
         hildon-desktop.sh
 
+bin_SCRIPTS = install_sbapplet.sh
+
 CLEANFILES = *~

Added: projects/haf/trunk/hildon-desktop/data/install_sbapplet.sh
===================================================================
--- projects/haf/trunk/hildon-desktop/data/install_sbapplet.sh	2007-05-25 15:51:52 UTC (rev 11874)
+++ projects/haf/trunk/hildon-desktop/data/install_sbapplet.sh	2007-05-25 16:17:36 UTC (rev 11875)
@@ -0,0 +1,51 @@
+#!/bin/sh -e
+# moimart
+
+if [ ! "$#" -eq "1" ];
+then
+  echo "1 args required"
+  echo "desktopfile"
+  exit 1;
+fi
+
+DESKTOP_FILE=$1
+
+if [ "`uname -m`" == "armv6l" ];
+then
+  SB_HOME_DIR=/home/user
+  USER=user
+else
+  SB_HOME_DIR=$HOME
+  USER=`basename $HOME`
+fi
+
+SB_CONF=statusbar.conf
+SB_USRDIRCONF=$SB_HOME_DIR/.osso/hildon-desktop/$SB_CONF
+SB_SYSDIRCONF=/etc/hildon-desktop/$SB_CONF
+SB_PATH=$SB_USRDIRCONF
+
+if [ ! -r $SB_PATH ];
+then
+  cp $SB_SYSDIRCONF $SB_USRDIRCONF
+  echo "cp $SB_SYSDIRCONF $SB_USRDIRCONF"
+fi
+
+if [ ! -r $SB_PATH ];
+then
+  echo "Can't access configuration"
+  exit 0
+fi
+
+chown $USER $SB_USRDIRCONF && echo "Setting owner"
+
+if [ "`cat $SB_PATH|grep \"\[$DESKTOP_FILE\]\"|wc -l`" -gt "0" ];
+then
+  echo "Entry already configured"
+  echo "" >> $SB_PATH
+  exit 0;
+fi
+
+echo "Creating entry..."
+
+echo -e "[$DESKTOP_FILE]\n\
+Mandatory=$MANDATORY\n" >> $SB_PATH

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c	2007-05-25 15:51:52 UTC (rev 11874)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c	2007-05-25 16:17:36 UTC (rev 11875)
@@ -875,8 +875,6 @@
   g_list_free (children);				  
 }	
 
-	
-
 GtkMenuItem *
 hildon_desktop_popup_menu_get_selected_item (HildonDesktopPopupMenu *menu)
 {

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-window.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-window.c	2007-05-25 15:51:52 UTC (rev 11874)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-window.c	2007-05-25 16:17:36 UTC (rev 11875)
@@ -29,6 +29,14 @@
 #include <gdk/gdkx.h>
 #include <gdk/gdkwindow.h>
 
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_XTEST
+#include <X11/extensions/XTest.h>
+#endif
+
 #define HILDON_DESKTOP_POPUP_WINDOW_GET_PRIVATE(object) \
         (G_TYPE_INSTANCE_GET_PRIVATE ((object), HILDON_DESKTOP_TYPE_POPUP_WINDOW, HildonDesktopPopupWindowPrivate))
 
@@ -83,15 +91,21 @@
 						     		     GdkEventCrossing *event,
 						     		     HildonDesktopPopupWindow *popup);
 
+static gboolean hildon_desktop_popup_window_composited_button_press (GtkWidget *widget,
+		                                                     GdkEventButton *event,
+	                                                             HildonDesktopPopupWindow *popup);
+
 static gboolean hildon_desktop_popup_window_composited_button_release (GtkWidget *widget,
 		                                                       GdkEventButton *event,
 	                                                               HildonDesktopPopupWindow *popup);
 
 static gboolean popup_grab_on_window (GdkWindow *window, guint32 activate_time, gboolean grab_keyboard);
 
-static gboolean
-hildon_desktop_popup_window_button_release_event (GtkWidget *widget, GdkEventButton *event);
-
+static gboolean hildon_desktop_popup_window_button_press_event (GtkWidget *widget, GdkEventButton *event);
+static gboolean hildon_desktop_popup_window_button_release_event (GtkWidget *widget, GdkEventButton *event);
+#ifdef HAVE_XTEST
+static void hildon_desktop_popup_menu_fake_button_event (GdkEventButton *event, gboolean press);
+#endif
 struct _HildonDesktopPopupWindowPrivate 
 {
   GtkWidget	   	          **extra_panes;
@@ -157,6 +171,7 @@
 
   widget_class->motion_notify_event     = hildon_desktop_popup_window_motion_notify;
   widget_class->leave_notify_event      = hildon_desktop_popup_window_leave_notify;
+  widget_class->button_press_event      = hildon_desktop_popup_window_button_press_event;
   widget_class->button_release_event    = hildon_desktop_popup_window_button_release_event;
   widget_class->key_press_event 	= hildon_desktop_popup_window_key_press_event;
 	  
@@ -260,6 +275,11 @@
 		    	      GDK_WINDOW_TYPE_HINT_MENU);
 
     g_signal_connect (popup->priv->extra_panes[i],
+		      "button-press-event",
+		      G_CALLBACK (hildon_desktop_popup_window_composited_button_press),
+		      (gpointer)popup);
+    
+    g_signal_connect (popup->priv->extra_panes[i],
 		      "button-release-event",
 		      G_CALLBACK (hildon_desktop_popup_window_composited_button_release),
 		      (gpointer)popup); 
@@ -583,6 +603,20 @@
 }
 
 static gboolean
+hildon_desktop_popup_window_composited_button_press (GtkWidget *widget,
+                                                     GdkEventButton *event,
+                                                     HildonDesktopPopupWindow *popup)
+{
+  if (!event)
+    return FALSE;
+#ifdef HAVE_XTEST
+  hildon_desktop_popup_menu_fake_button_event (event, TRUE);
+#endif
+
+  return TRUE;
+}
+
+static gboolean
 hildon_desktop_popup_window_composited_button_release (GtkWidget *widget,
                                                        GdkEventButton *event,
                                                        HildonDesktopPopupWindow *popup)
@@ -633,10 +667,27 @@
   if (!in_panes_area || in_window_area)
     hildon_desktop_popup_window_popdown (popup);
 
+#ifdef HAVE_XTEST
+  hildon_desktop_popup_menu_fake_button_event (event, FALSE);
+#endif
   return TRUE;
 }
 
 static gboolean
+hildon_desktop_popup_window_button_press_event (GtkWidget *widget,
+                                                GdkEventButton *event)
+{
+  if (!event)
+    return FALSE;
+
+#ifdef HAVE_XTEST
+  hildon_desktop_popup_menu_fake_button_event (event, TRUE);
+#endif  
+
+  return TRUE;
+}
+
+static gboolean
 hildon_desktop_popup_window_button_release_event (GtkWidget *widget,
                                                   GdkEventButton *event)
 {
@@ -675,6 +726,9 @@
   if (!in_panes_area || in_window_area)
     hildon_desktop_popup_window_popdown (popup);
 
+#ifdef HAVE_XTEST
+  hildon_desktop_popup_menu_fake_button_event (event, FALSE);
+#endif
   return TRUE;
 }
 
@@ -801,6 +855,13 @@
   }
 }
 
+#ifdef HAVE_XTEST
+static void 
+hildon_desktop_popup_menu_fake_button_event (GdkEventButton *event, gboolean press)
+{
+  XTestFakeButtonEvent (GDK_DISPLAY (), event->button, press, CurrentTime);
+}	
+#endif
 static GdkWindow *
 popup_window_grab_transfer_window_get (HildonDesktopPopupWindow *popup)
 {


More information about the maemo-commits mailing list