[maemo-commits] [maemo-commits] r10819 - in projects/haf/trunk/sapwood: . src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Mar 29 12:00:27 EEST 2007
Author: tko
Date: 2007-03-29 12:00:25 +0300 (Thu, 29 Mar 2007)
New Revision: 10819

Modified:
   projects/haf/trunk/sapwood/ChangeLog
   projects/haf/trunk/sapwood/README
   projects/haf/trunk/sapwood/src/sapwood-draw.c
Log:
Support active/passive focus on GtkMenuItems

2007-03-29  Tommi Komulainen  <tommi.komulainen at nokia.com>

	* src/sapwood-draw.c (maybe_check_submenu_state, draw_box):
	Support active/passive focus on GtkMenuItems, use passive focus when
	the focus is in an item in a submenu.
	* README: add GtkMenuItem notes


Modified: projects/haf/trunk/sapwood/ChangeLog
===================================================================
--- projects/haf/trunk/sapwood/ChangeLog	2007-03-29 08:33:04 UTC (rev 10818)
+++ projects/haf/trunk/sapwood/ChangeLog	2007-03-29 09:00:25 UTC (rev 10819)
@@ -1,3 +1,10 @@
+2007-03-29  Tommi Komulainen  <tommi.komulainen at nokia.com>
+
+	* src/sapwood-draw.c (maybe_check_submenu_state, draw_box):
+	Support active/passive focus on GtkMenuItems, use passive focus when
+	the focus is in an item in a submenu.
+	* README: add GtkMenuItem notes
+	
 2007-03-09  Tommi Komulainen  <tommi.komulainen at nokia.com>
 
 	* AUTHORS

Modified: projects/haf/trunk/sapwood/README
===================================================================
--- projects/haf/trunk/sapwood/README	2007-03-29 08:33:04 UTC (rev 10818)
+++ projects/haf/trunk/sapwood/README	2007-03-29 09:00:25 UTC (rev 10819)
@@ -439,6 +439,13 @@
   state    = ACTIVE
 
 
+GtkMenuItem
+-----------
+Selected item background:
+  function = BOX
+  state    = PRELIGHT for active, SELECTED for passive focus
+
+
 GtkTreeView
 -----------
 Focus row background:

Modified: projects/haf/trunk/sapwood/src/sapwood-draw.c
===================================================================
--- projects/haf/trunk/sapwood/src/sapwood-draw.c	2007-03-29 08:33:04 UTC (rev 10818)
+++ projects/haf/trunk/sapwood/src/sapwood-draw.c	2007-03-29 09:00:25 UTC (rev 10819)
@@ -733,6 +733,30 @@
 }
 
 static void
+maybe_check_submenu_state (GtkMenuItem *menu_item, ThemeMatchData *match_data)
+{
+  /* Distinguish between active and passive focus, depending on whether the
+   * focus is in submenu.
+   *
+   * Active focus:
+   *   function = BOX
+   *   state    = PRELIGHT
+   *
+   * Passive focus:
+   *   function = BOX
+   *   state    = SELECTED
+   */
+  if (menu_item->submenu)
+    {
+      GtkWidget *sub_item;
+
+      sub_item = GTK_MENU_SHELL (menu_item->submenu)->active_menu_item;
+      if (sub_item && GTK_WIDGET_STATE (sub_item) != GTK_STATE_NORMAL)
+	match_data->state = GTK_STATE_SELECTED;
+    }
+}
+
+static void
 draw_box (GtkStyle     *style,
 	  GdkWindow    *window,
  	  GtkStateType  state,
@@ -763,6 +787,9 @@
   match_data.shadow = shadow;
   match_data.state = state;
 
+  if (GTK_IS_MENU_ITEM (widget))
+    maybe_check_submenu_state (GTK_MENU_ITEM (widget), &match_data);
+
   if (!draw_simple_image (style, window, area, widget, &match_data, TRUE,
 			  x, y, width, height)) {
     parent_class->draw_box (style, window, state, shadow, area, widget, detail,


More information about the maemo-commits mailing list