Index: views/controls/menu/native_menu_gtk.cc |
=================================================================== |
--- views/controls/menu/native_menu_gtk.cc (revision 42514) |
+++ views/controls/menu/native_menu_gtk.cc (working copy) |
@@ -112,11 +112,11 @@ |
// Listen for "hide" signal so that we know when to return from the blocking |
// RunMenuAt call. |
gint hide_handle_id = |
- g_signal_connect(menu_, "hide", G_CALLBACK(OnMenuHidden), this); |
+ g_signal_connect(menu_, "hide", G_CALLBACK(OnMenuHiddenThunk), this); |
gint move_handle_id = |
- g_signal_connect(menu_, "move-current", G_CALLBACK(OnMenuMoveCurrent), |
- this); |
+ g_signal_connect(menu_, "move-current", |
+ G_CALLBACK(OnMenuMoveCurrentThunk), this); |
// Block until menu is no longer shown by running a nested message loop. |
MessageLoopForUI::current()->Run(NULL); |
@@ -133,7 +133,7 @@ |
} |
void NativeMenuGtk::CancelMenu() { |
- NOTIMPLEMENTED(); |
+ gtk_widget_hide(menu_); |
} |
void NativeMenuGtk::Rebuild() { |
@@ -208,9 +208,8 @@ |
//////////////////////////////////////////////////////////////////////////////// |
// NativeMenuGtk, private: |
-// static |
-void NativeMenuGtk::OnMenuHidden(GtkWidget* widget, NativeMenuGtk* menu) { |
- if (!menu->menu_shown_) { |
+void NativeMenuGtk::OnMenuHidden(GtkWidget* widget) { |
+ if (!menu_shown_) { |
// This indicates we don't have a menu open, and should never happen. |
NOTREACHED(); |
return; |
@@ -219,10 +218,8 @@ |
MessageLoop::current()->Quit(); |
} |
-// static |
-void NativeMenuGtk::OnMenuMoveCurrent(GtkMenu* menu_widget, |
- GtkMenuDirectionType focus_direction, |
- NativeMenuGtk* menu) { |
+void NativeMenuGtk::OnMenuMoveCurrent(GtkWidget* menu_widget, |
+ GtkMenuDirectionType focus_direction) { |
GtkWidget* parent = GTK_MENU_SHELL(menu_widget)->parent_menu_shell; |
GtkWidget* menu_item = GTK_MENU_SHELL(menu_widget)->active_menu_item; |
GtkWidget* submenu = NULL; |
@@ -231,11 +228,11 @@ |
} |
if (focus_direction == GTK_MENU_DIR_CHILD && submenu == NULL) { |
- menu->GetAncestor()->menu_action_ = MENU_ACTION_NEXT; |
- gtk_menu_popdown(menu_widget); |
+ GetAncestor()->menu_action_ = MENU_ACTION_NEXT; |
+ gtk_menu_popdown(GTK_MENU(menu_widget)); |
} else if (focus_direction == GTK_MENU_DIR_PARENT && parent == NULL) { |
- menu->GetAncestor()->menu_action_ = MENU_ACTION_PREVIOUS; |
- gtk_menu_popdown(menu_widget); |
+ GetAncestor()->menu_action_ = MENU_ACTION_PREVIOUS; |
+ gtk_menu_popdown(GTK_MENU(menu_widget)); |
} |
} |