[maemo-commits] [maemo-commits] r13750 - in projects/haf/trunk/hildon-desktop: . libhildondesktop src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Sep 11 15:38:11 EEST 2007
Author: lucasr
Date: 2007-09-11 15:38:09 +0300 (Tue, 11 Sep 2007)
New Revision: 13750

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c
   projects/haf/trunk/hildon-desktop/src/hd-applications-menu.c
Log:
2007-09-11  Lucas Rocha  <lucas.rocha at nokia.com>

	* libhildondesktop/hildon-desktop-popup-menu.c
	(hildon_desktop_popup_menu_scroll_start,
	hildon_desktop_popup_menu_scroll_stop,
	hildon_desktop_popup_menu_scroll_initial_step,
	hildon_desktop_popup_menu_scroll_cb,
	hildon_desktop_popup_menu_remove_scroll_timeout): wait a certain time
	before doing the continous scrolling with scroll buttons in order to
	ensure that it's possible to scroll only one item with simple click.
	Fixes: NB#68835.


Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-09-11 11:35:20 UTC (rev 13749)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-09-11 12:38:09 UTC (rev 13750)
@@ -1,3 +1,15 @@
+2007-09-11  Lucas Rocha  <lucas.rocha at nokia.com>
+
+	* libhildondesktop/hildon-desktop-popup-menu.c
+	(hildon_desktop_popup_menu_scroll_start,
+	hildon_desktop_popup_menu_scroll_stop,
+	hildon_desktop_popup_menu_scroll_initial_step,
+	hildon_desktop_popup_menu_scroll_cb,
+	hildon_desktop_popup_menu_remove_scroll_timeout): wait a certain time
+	before doing the continous scrolling with scroll buttons in order to
+	ensure that it's possible to scroll only one item with simple click.
+	Fixes: NB#68835.
+
 2007-09-10  Moises Martinez  <moises.martinez at nokia.com>
 
 	* libhildondesktop/hildon-desktop-popup-window.c:

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c	2007-09-11 11:35:20 UTC (rev 13749)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c	2007-09-11 12:38:09 UTC (rev 13750)
@@ -56,7 +56,8 @@
 
 static gint signals[N_SIGNALS];
 
-#define MENU_SCROLL_TIMEOUT 40
+#define MENU_SCROLL_TIMEOUT          50
+#define MENU_SCROLL_INITIAL_TIMEOUT  200
 
 struct _HildonDesktopPopupMenuPrivate
 {
@@ -109,7 +110,6 @@
 static gboolean hildon_desktop_popup_menu_release_event (GtkWidget *widget, GdkEventButton *event);
 static gboolean hildon_desktop_popup_menu_key_press_event (GtkWidget *widget, GdkEventKey *event);
 static void hildon_desktop_popup_menu_select_next_prev_item (HildonDesktopPopupMenu *menu, gboolean next);
-static void hildon_desktop_popup_menu_scroll_cb (GtkWidget *widget, HildonDesktopPopupMenu *menu);
 static void hildon_desktop_popup_menu_scroll_start (GtkWidget *widget, HildonDesktopPopupMenu *menu);
 static void hildon_desktop_popup_menu_scroll_stop (GtkWidget *widget, HildonDesktopPopupMenu *menu);
 static void hildon_desktop_popup_menu_adjustment_changed (GtkAdjustment *adj, HildonDesktopPopupMenu *menu);
@@ -307,11 +307,6 @@
 		NULL);
   
   g_signal_connect (menu->priv->scroll_down,
-		    "clicked",
-		    G_CALLBACK (hildon_desktop_popup_menu_scroll_cb),
-		    (gpointer)menu);
-
-  g_signal_connect (menu->priv->scroll_down,
 		    "pressed",
 		    G_CALLBACK (hildon_desktop_popup_menu_scroll_start),
 		    (gpointer)menu);
@@ -322,11 +317,6 @@
 		    (gpointer)menu);
 
   g_signal_connect (menu->priv->scroll_up,
-                    "clicked",
-                    G_CALLBACK (hildon_desktop_popup_menu_scroll_cb),
-                    (gpointer)menu);		    
-
-  g_signal_connect (menu->priv->scroll_up,
 		    "pressed",
 		    G_CALLBACK (hildon_desktop_popup_menu_scroll_start),
 		    (gpointer)menu);
@@ -588,6 +578,16 @@
   hildon_desktop_popup_menu_update_scroll_buttons (menu);
 }
 
+static void
+hildon_desktop_popup_menu_remove_scroll_timeout (HildonDesktopPopupMenu *menu)
+{
+  if (menu->priv->scroll_id > 0)
+  {
+    g_source_remove (menu->priv->scroll_id);
+    menu->priv->scroll_id = 0;
+  }
+}
+	
 static gboolean 
 hildon_desktop_popup_menu_scroll_step (gpointer data)
 {
@@ -619,6 +619,20 @@
   return TRUE;
 }
 
+static gboolean
+hildon_desktop_popup_menu_scroll_initial_step (gpointer data)
+{
+  HildonDesktopPopupMenu *menu = HILDON_DESKTOP_POPUP_MENU (data);
+
+  hildon_desktop_popup_menu_remove_scroll_timeout (menu);
+  
+  menu->priv->scroll_id = g_timeout_add (MENU_SCROLL_TIMEOUT, 
+					 hildon_desktop_popup_menu_scroll_step, 
+					 menu);
+
+  return FALSE;
+}
+
 static void 
 hildon_desktop_popup_menu_scroll_start (GtkWidget *widget, HildonDesktopPopupMenu *menu)
 {
@@ -627,28 +641,19 @@
   else
     menu->priv->scroll_dir = 1;
 
-  menu->priv->scroll_id = 
-    g_timeout_add (MENU_SCROLL_TIMEOUT, hildon_desktop_popup_menu_scroll_step, menu);
+  hildon_desktop_popup_menu_scroll_step (menu);
+
+  menu->priv->scroll_id = g_timeout_add (MENU_SCROLL_INITIAL_TIMEOUT, 
+					 hildon_desktop_popup_menu_scroll_initial_step, 
+					 menu);
 }
 
 static void 
 hildon_desktop_popup_menu_scroll_stop (GtkWidget *widget, HildonDesktopPopupMenu *menu)
 {
-  g_source_remove (menu->priv->scroll_id);
-  menu->priv->scroll_id = 0;
+  hildon_desktop_popup_menu_remove_scroll_timeout (menu);
 }
 
-static void 
-hildon_desktop_popup_menu_scroll_cb (GtkWidget *widget, HildonDesktopPopupMenu *menu)
-{
-  if (widget == menu->priv->scroll_up)
-    menu->priv->scroll_dir = -1;
-  else
-    menu->priv->scroll_dir = 1;
-
-  hildon_desktop_popup_menu_scroll_step (menu);
-}
-
 static gboolean 
 hildon_desktop_popup_menu_release_event (GtkWidget      *widget,
                                          GdkEventButton *event)

Modified: projects/haf/trunk/hildon-desktop/src/hd-applications-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-applications-menu.c	2007-09-11 11:35:20 UTC (rev 13749)
+++ projects/haf/trunk/hildon-desktop/src/hd-applications-menu.c	2007-09-11 12:38:09 UTC (rev 13750)
@@ -751,7 +751,7 @@
       if (!first_item)
       {
         GtkWidget *separator = gtk_separator_menu_item_new ();
-	
+
         if (level > 0)
           gtk_widget_set_name (GTK_WIDGET (separator), HD_APPS_MENU_APP_MENU_ITEM_NAME);
         else


More information about the maemo-commits mailing list