[maemo-commits] [maemo-commits] r10015 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Feb 19 13:50:41 EET 2007
- Previous message: [maemo-commits] r10014 - projects/haf/hafbuildbot
- Next message: [maemo-commits] r10016 - in projects/haf/trunk/hildon-theme-layout-4: . rc
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: mitch Date: 2007-02-19 13:50:39 +0200 (Mon, 19 Feb 2007) New Revision: 10015 Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenuitem.c Log: 2007-02-19 Michael Natterer <mitch at imendio.com> * gtk/gtkmenuitem.c (gtk_menu_item_paint): port over changes to menu item drawing when there is a submenu. Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-02-19 09:20:30 UTC (rev 10014) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-02-19 11:50:39 UTC (rev 10015) @@ -1,3 +1,8 @@ +2007-02-19 Michael Natterer <mitch at imendio.com> + + * gtk/gtkmenuitem.c (gtk_menu_item_paint): port over changes to + menu item drawing when there is a submenu. + 2007-02-16 Michael Natterer <mitch at imendio.com> * gtk/gtkcombobox.c (gtk_combo_box_menu_setup) Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenuitem.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenuitem.c 2007-02-19 09:20:30 UTC (rev 10014) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenuitem.c 2007-02-19 11:50:39 UTC (rev 10015) @@ -768,6 +768,56 @@ gtk_widget_style_get (widget, "selected-shadow-type", &selected_shadow_type, NULL); + +#ifdef MAEMO_CHANGES + if (menu_item->submenu) + { + GtkMenuItem *msi; + gint focus_x = x; + gint focus_width = width; + + if (menu_item->show_submenu_indicator) + { + GtkRequisition child_requisition; + gint arrow_size; + +#define HILDON_ARROW_SPACE 6 + + gtk_widget_get_child_requisition (GTK_BIN (menu_item)->child, + &child_requisition); + + arrow_size = child_requisition.height - 2 * widget->style->ythickness; + if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR) + focus_width = x + width - arrow_size - 2 - HILDON_ARROW_SPACE; + else + focus_x = x + arrow_size + 2 + HILDON_ARROW_SPACE; + } + + /* This draws different focus depending on if it's the + * toplevel focused menu item. All items that have + * submenus that in turn have an item selected will be + * drawn with SELECTED-state focus. If this isn't the + * case, PRELIGHT-state focus is used. + */ + msi = GTK_MENU_ITEM (GTK_MENU_SHELL (menu_item->submenu)->active_menu_item); + + if ((msi == NULL) || (GTK_WIDGET (msi)->state == 0)) + gtk_paint_box (widget->style, + widget->window, + GTK_STATE_PRELIGHT, + selected_shadow_type, + area, widget, "menuitem", + focus_x, y, focus_width, height); + else + gtk_paint_box (widget->style, + widget->window, + GTK_STATE_SELECTED, + selected_shadow_type, + area, widget, "menuitem", + focus_x, y, focus_width, height); + } + else +#endif /* MAEMO_CHANGES */ gtk_paint_box (widget->style, widget->window, GTK_STATE_PRELIGHT, @@ -808,7 +858,12 @@ arrow_extent = arrow_size * 0.8; shadow_type = GTK_SHADOW_OUT; +#ifdef MAEMO_CHANGES + if (state_type == GTK_STATE_PRELIGHT && + GTK_WIDGET_VISIBLE (menu_item->submenu)) +#else if (state_type == GTK_STATE_PRELIGHT) +#endif /* MAEMO_CHANGES */ shadow_type = GTK_SHADOW_IN; if (direction == GTK_TEXT_DIR_LTR) @@ -824,6 +879,10 @@ arrow_y = y + (height - arrow_extent) / 2; +#ifdef MAEMO_CHANGES + arrow_x = arrow_x - 4; +#endif /* MAEMO_CHANGES */ + gtk_paint_arrow (widget->style, widget->window, state_type, shadow_type, area, widget, "menuitem",
- Previous message: [maemo-commits] r10014 - projects/haf/hafbuildbot
- Next message: [maemo-commits] r10016 - in projects/haf/trunk/hildon-theme-layout-4: . rc
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]