[maemo-commits] [maemo-commits] r11582 - in projects/haf/trunk/hildon-desktop: . libhildondesktop src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu May 10 17:56:49 EEST 2007
- Previous message: [maemo-commits] r11581 - in projects/haf/trunk/hildon-theme-test: . template
- Next message: [maemo-commits] r11584 - in projects/haf/trunk/hildon-desktop: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: moimart
Date: 2007-05-10 17:56:48 +0300 (Thu, 10 May 2007)
New Revision: 11582
Modified:
projects/haf/trunk/hildon-desktop/ChangeLog
projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c
projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.h
projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-window.c
projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
Log:
* src/hd-switcher-menu.c:
- Implemented jumping from pane to pane. Unfortunately you cannot jump
to menu item at same height.
* libhildondesktop/hildon-desktop-popup-menu.[ch]:
- Added select first item method.
- If item to select is NULL, deselect everything.
* libhildondesktop/hildon-desktop-popup-window.c:
- "You shall not compare integers and unsigned integers without a
casting".
* ChangeLog updated.
Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog 2007-05-10 14:51:16 UTC (rev 11581)
+++ projects/haf/trunk/hildon-desktop/ChangeLog 2007-05-10 14:56:48 UTC (rev 11582)
@@ -1,5 +1,17 @@
2007-05-10 Moises Martinez <moises.martinez at nokia.com>
+ * src/hd-switcher-menu.c:
+ - Implemented jumping from pane to pane. Unfortunately you cannot jump
+ to menu item at same height.
+ * libhildondesktop/hildon-desktop-popup-menu.[ch]:
+ - Added select first item method.
+ - If item to select is NULL, deselect everything.
+ * libhildondesktop/hildon-desktop-popup-window.c:
+ - "You shall not compare integers and unsigned integers without a
+ casting".
+
+2007-05-10 Moises Martinez <moises.martinez at nokia.com>
+
* src/hd-switcher-menu-item.c:
- Close notification when activated.
* src/hd-switcher-menu.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-05-10 14:51:16 UTC (rev 11581)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c 2007-05-10 14:56:48 UTC (rev 11582)
@@ -400,8 +400,6 @@
break;
}
- g_debug ("key press event %p",l);
-
if (l == NULL)
return FALSE;
@@ -627,25 +625,44 @@
GList *children = NULL, *l;
g_assert (HILDON_DESKTOP_IS_POPUP_MENU (menu));
- g_return_if_fail (GTK_IS_MENU_ITEM (item));
children = gtk_container_get_children (GTK_CONTAINER (menu->priv->box_items));
for (l = children; l != NULL; l = g_list_next (l))
{
- if (l->data == item)
+ if (l->data && l->data == item)
{
gtk_item_select (GTK_ITEM (item));
menu->priv->selected_item = item;
}
else
- gtk_item_deselect (GTK_ITEM (item));
+ gtk_item_deselect (GTK_ITEM (l->data));
}
g_list_free (children);
}
void
+hildon_desktop_popup_menu_select_first_item (HildonDesktopPopupMenu *menu)
+{
+ GList *children = NULL, *l;
+
+ g_assert (HILDON_DESKTOP_IS_POPUP_MENU (menu));
+
+ children = gtk_container_get_children (GTK_CONTAINER (menu->priv->box_items));
+
+ for (l = children; l != NULL; l = g_list_next (l))
+ {
+ if (!GTK_IS_SEPARATOR_MENU_ITEM (l->data))
+ {
+ gtk_item_select (GTK_ITEM (l->data));
+ menu->priv->selected_item = GTK_MENU_ITEM (l->data);
+ break;
+ }
+ }
+}
+
+void
hildon_desktop_popup_menu_activate_item (HildonDesktopPopupMenu *menu, GtkMenuItem *item)
{
GList *children = NULL, *l;
Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.h
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.h 2007-05-10 14:51:16 UTC (rev 11581)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.h 2007-05-10 14:56:48 UTC (rev 11582)
@@ -72,6 +72,9 @@
void
hildon_desktop_popup_menu_select_item (HildonDesktopPopupMenu *menu, GtkMenuItem *item);
+void
+hildon_desktop_popup_menu_select_first_item (HildonDesktopPopupMenu *menu);
+
void
hildon_desktop_popup_menu_activate_item (HildonDesktopPopupMenu *menu, GtkMenuItem *item);
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-10 14:51:16 UTC (rev 11581)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-window.c 2007-05-10 14:56:48 UTC (rev 11582)
@@ -901,18 +901,18 @@
hildon_desktop_popup_window_jump_to_pane (HildonDesktopPopupWindow *popup, gint pane)
{
g_assert (HILDON_DESKTOP_IS_POPUP_WINDOW (popup));
-
- if (pane >= popup->priv->n_extra_panes)
+
+ if (pane >= (gint) popup->priv->n_extra_panes)
pane = popup->priv->n_extra_panes -1;
-
+
if (GTK_WIDGET_VISIBLE (GTK_WIDGET (popup)))
{
if (pane <= -1)
- {
+ {
if (popup->priv->have_xgrab)
return;
else
- {
+ {
gtk_grab_remove (popup->priv->pane_with_grab);
popup_grab_on_window (GTK_WIDGET (popup)->window, GDK_CURRENT_TIME, TRUE);
@@ -924,7 +924,7 @@
}
}
else
- {
+ {
GtkWidget *widget_with_grab;
if (popup->priv->have_xgrab)
Modified: projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c 2007-05-10 14:51:16 UTC (rev 11581)
+++ projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c 2007-05-10 14:56:48 UTC (rev 11582)
@@ -269,11 +269,60 @@
return TRUE;
}
+ else
+ if (event->keyval == GDK_Right ||
+ event->keyval == GDK_KP_Right)
+ {
+ GList *notifications =
+ hildon_desktop_popup_menu_get_children
+ (switcher->priv->menu_notifications);
+ if (notifications)
+ {
+ hildon_desktop_popup_window_jump_to_pane
+ (switcher->priv->popup_window, 0);
+
+ hildon_desktop_popup_menu_select_item
+ (switcher->priv->menu_applications, NULL);
+
+ hildon_desktop_popup_menu_select_first_item
+ (switcher->priv->menu_notifications);
+
+ g_list_free (notifications);
+
+ return TRUE;
+ }
+
+ g_list_free (notifications);
+ }
+
return FALSE;
}
static gboolean
+hd_switcher_menu_popup_window_pane_keypress_cb (GtkWidget *widget,
+ GdkEventKey *event,
+ HDSwitcherMenu *switcher)
+{
+ if (event->keyval == GDK_Left ||
+ event->keyval == GDK_KP_Left)
+ {
+ hildon_desktop_popup_window_jump_to_pane
+ (switcher->priv->popup_window, -1);
+
+ hildon_desktop_popup_menu_select_item
+ (switcher->priv->menu_notifications, NULL);
+
+ hildon_desktop_popup_menu_select_first_item
+ (switcher->priv->menu_applications);
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static gboolean
hd_switcher_menu_switcher_keypress_cb (GtkWidget *widget,
GdkEventKey *event,
HDSwitcherMenu *switcher)
@@ -381,6 +430,11 @@
G_CALLBACK (hd_switcher_menu_popup_window_keypress_cb),
(gpointer)switcher);
+ g_signal_connect (hildon_desktop_popup_window_get_pane (switcher->priv->popup_window, 0),
+ "key-press-event",
+ G_CALLBACK (hd_switcher_menu_popup_window_pane_keypress_cb),
+ (gpointer)switcher);
+
g_signal_connect (button,
"key-press-event",
G_CALLBACK (hd_switcher_menu_switcher_keypress_cb),
@@ -1174,9 +1228,6 @@
hildon_desktop_popup_menu_add_item
(switcher->priv->menu_notifications, GTK_MENU_ITEM (menu_item));
- hildon_desktop_popup_menu_select_item
- (switcher->priv->menu_notifications, GTK_MENU_ITEM (menu_item));
-
hd_switcher_menu_replace_blinking_icon (switcher, icon);
switcher->priv->last_urgent_info = NULL;
- Previous message: [maemo-commits] r11581 - in projects/haf/trunk/hildon-theme-test: . template
- Next message: [maemo-commits] r11584 - in projects/haf/trunk/hildon-desktop: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
