[maemo-commits] [maemo-commits] r14819 - in projects/haf/trunk/gtk+: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Nov 22 18:10:03 EET 2007
Author: xan
Date: 2007-11-22 18:10:00 +0200 (Thu, 22 Nov 2007)
New Revision: 14819

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkmenu.c
Log:
2007-11-22  Xan Lopez  <xan.lopez at nokia.com>

	* gtk/gtkmenu.c (gtk_menu_init): remove visibility-notify-event hack,
	it's useless now that we have temporary windows management in place.


Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2007-11-22 16:09:56 UTC (rev 14818)
+++ projects/haf/trunk/gtk+/ChangeLog	2007-11-22 16:10:00 UTC (rev 14819)
@@ -1,9 +1,14 @@
 2007-11-22  Xan Lopez  <xan.lopez at nokia.com>
+	
+	* gtk/gtkmenu.c (gtk_menu_init): remove visibility-notify-event hack,
+	it's useless now that we have temporary windows management in place.
+	
+2007-11-22  Xan Lopez  <xan.lopez at nokia.com>
 
 	* gtk/gtkmenu.c (gtk_menu_popup): revert using show_now for the menu
 	toplevel, it breaks submenu opening for some reason. The grab failure
 	this fixed is apparently harmless anyway.
-	
+
 2007-11-22  Xan Lopez  <xan.lopez at nokia.com>
 
 	* gtk/gtkmenu.c (gtk_menu_popup): revert last commit, it breaks in

Modified: projects/haf/trunk/gtk+/gtk/gtkmenu.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkmenu.c	2007-11-22 16:09:56 UTC (rev 14818)
+++ projects/haf/trunk/gtk+/gtk/gtkmenu.c	2007-11-22 16:10:00 UTC (rev 14819)
@@ -262,12 +262,6 @@
 static void _gtk_menu_refresh_accel_paths (GtkMenu *menu,
 					   gboolean group_changed);
 
-#ifdef MAEMO_CHANGES
-static gboolean gtk_menu_window_visibility_notify_event (GtkWidget          *widget,
-                                                         GdkEventVisibility *event,
-                                                         GtkMenu            *menu);
-#endif /* MAEMO_CHANGES */
-
 static const gchar	  attach_data_key[] = "gtk-menu-attach-data";
 
 static guint menu_signals[LAST_SIGNAL] = { 0 };
@@ -934,9 +928,6 @@
 				     "signal::event", gtk_menu_window_event, menu,
 				     "signal::size_request", gtk_menu_window_size_request, menu,
 				     "signal::destroy", gtk_widget_destroyed, &menu->toplevel,
-#ifdef MAEMO_CHANGES
-                                     "signal::visibility_notify_event", gtk_menu_window_visibility_notify_event, menu,
-#endif /* MAEMO_CHANGES */
 				     NULL);
   gtk_window_set_resizable (GTK_WINDOW (menu->toplevel), FALSE);
   gtk_window_set_mnemonic_modifier (GTK_WINDOW (menu->toplevel), 0);
@@ -5436,81 +5427,5 @@
 }
 #endif /* MAEMO_CHANGES */
 
-#ifdef MAEMO_CHANGES
-static gboolean
-gtk_menu_window_visibility_notify_event (GtkWidget          *widget,
-                                         GdkEventVisibility *event,
-                                         GtkMenu            *menu)
-{
-  GtkMenuShell *menu_shell;
-  GdkScreen *screen;
-  GList *stack;
-  gboolean deactivate;
-
-  /* The point here is to close the menu if another window (eg. dialog,
-     even partially!) gets on top of the menu. However our own submenus may
-     also fully obscure us, so we have to check that case.
-
-     It's also possible that we get here while a submenu was opened and
-     closed quickly, so we don't really see it anymore but its window is
-     still obscuring us.. So, never close the menu if another menu is on top
-     of us. */
-  if (event->state == GDK_VISIBILITY_UNOBSCURED)
-    return FALSE;
-
-  menu_shell = GTK_MENU_SHELL (menu);
-
-  screen = gtk_widget_get_screen (widget);
-
-  deactivate = FALSE;
-
-  /* Inspect windows above us */
-  stack = gdk_screen_get_window_stack (screen);
-  if (stack != NULL)
-    {
-      GList *iter;
-
-      iter = g_list_last (stack);
-
-      while (iter)
-        {
-          GdkWindow *win = iter->data;
-          GdkWindowTypeHint type;
-
-          if (win == widget->window)
-            break;
-
-          gdk_error_trap_push ();
-          type = gdk_window_get_type_hint (win);
-          if (!gdk_error_trap_pop () &&
-              (type != GDK_WINDOW_TYPE_HINT_NOTIFICATION) &&
-              (type != GDK_WINDOW_TYPE_HINT_MENU)         &&
-              (type != GDK_WINDOW_TYPE_HINT_POPUP_MENU)   &&
-              (type != GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU))
-            {
-              /* A non-message and non-menu window above us; close. */
-              deactivate = TRUE;
-
-              break;
-            }
-
-          iter = iter->prev;
-        }
-
-      g_list_foreach (stack, (GFunc) g_object_unref, NULL);
-      g_list_free (stack);
-    }
-
-  if (deactivate)
-    {
-      gtk_menu_shell_deactivate (menu_shell);
-
-      return TRUE;
-    }
-
-  return FALSE;
-}
-#endif /* MAEMO_CHANGES */
-
 #define __GTK_MENU_C__
 #include "gtkaliasdef.c"


More information about the maemo-commits mailing list