[gedit/wip/gtkapp] Remove custom handling of the last active window



commit b731c4f42c9d0eb0bd6c60ed01fa048ef5c857d1
Author: Paolo Borelli <pborelli gnome org>
Date:   Sat Nov 24 14:25:16 2012 +0100

    Remove custom handling of the last active window
    
    We let GtkApplication do it for us.
    Note: the OSX App had some code that kept gedit alive even with all the
    windows removed and this commits breaks that: we will have to use
    g_application_hold if we need to reimplement that.

 gedit/gedit-app-osx.c |   15 --------
 gedit/gedit-app.c     |   88 -------------------------------------------------
 gedit/gedit-app.h     |    3 --
 3 files changed, 0 insertions(+), 106 deletions(-)
---
diff --git a/gedit/gedit-app-osx.c b/gedit/gedit-app-osx.c
index 466db13..826f55a 100644
--- a/gedit/gedit-app-osx.c
+++ b/gedit/gedit-app-osx.c
@@ -39,20 +39,6 @@ gedit_app_osx_finalize (GObject *object)
 	G_OBJECT_CLASS (gedit_app_osx_parent_class)->finalize (object);
 }
 
-static gboolean
-gedit_app_osx_last_window_destroyed_impl (GeditApp *app,
-                                          GeditWindow *window)
-{
-	if (!GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "gedit-is-quitting-all")))
-	{
-		/* Create hidden proxy window on OS X to handle the menu */
-		gedit_app_create_window (app, NULL);
-		return FALSE;
-	}
-
-	return GEDIT_APP_CLASS (gedit_app_osx_parent_class)->last_window_destroyed (app, window);
-}
-
 gboolean
 gedit_app_osx_show_url (GeditAppOSX *app,
                         const gchar *url)
@@ -356,7 +342,6 @@ gedit_app_osx_class_init (GeditAppOSXClass *klass)
 	object_class->finalize = gedit_app_osx_finalize;
 	object_class->constructed = gedit_app_osx_constructed;
 
-	app_class->last_window_destroyed = gedit_app_osx_last_window_destroyed_impl;
 	app_class->show_help = gedit_app_osx_show_help_impl;
 	app_class->set_window_title = gedit_app_osx_set_window_title_impl;
 	app_class->quit = gedit_app_osx_quit_impl;
diff --git a/gedit/gedit-app.c b/gedit/gedit-app.c
index 5dd4f15..c750dec 100644
--- a/gedit/gedit-app.c
+++ b/gedit/gedit-app.c
@@ -242,13 +242,6 @@ gedit_app_get_property (GObject    *object,
 	}
 }
 
-static gboolean
-gedit_app_last_window_destroyed_impl (GeditApp    *app,
-                                      GeditWindow *window)
-{
-	return TRUE;
-}
-
 static gchar *
 gedit_app_help_link_id_impl (GeditApp    *app,
                              const gchar *name,
@@ -887,26 +880,6 @@ gedit_app_constructed (GObject *object)
 	load_accels ();
 }
 
-static void
-set_active_window (GeditApp    *app,
-                   GeditWindow *window)
-{
-	app->priv->active_window = window;
-}
-
-static gboolean
-window_focus_in_event (GeditWindow   *window, 
-		       GdkEventFocus *event, 
-		       GeditApp      *app)
-{
-	/* updates active_view and active_child when a new toplevel receives focus */
-	g_return_val_if_fail (GEDIT_IS_WINDOW (window), FALSE);
-
-	set_active_window (app, window);
-
-	return FALSE;
-}
-
 static gboolean 
 window_delete_event (GeditWindow *window,
                      GdkEvent    *event,
@@ -930,81 +903,21 @@ window_delete_event (GeditWindow *window,
 	return TRUE;
 }
 
-static void
-window_destroy (GeditWindow *window,
-		GeditApp    *app)
-{
-	GList *windows;
-
-	gtk_application_remove_window (GTK_APPLICATION (app), GTK_WINDOW (window));
-	windows = gtk_application_get_windows (GTK_APPLICATION (app));
-
-	if (window == app->priv->active_window)
-	{
-		set_active_window (app, windows != NULL ? windows->data : NULL);
-	}
-
-/* CHECK: I don't think we have to disconnect this function, since windows
-   is being destroyed */
-/*					     
-	g_signal_handlers_disconnect_by_func (window, 
-					      G_CALLBACK (window_focus_in_event),
-					      app);
-	g_signal_handlers_disconnect_by_func (window, 
-					      G_CALLBACK (window_destroy),
-					      app);
-*/
-	if (windows == NULL)
-	{
-		if (!GEDIT_APP_GET_CLASS (app)->last_window_destroyed (app, window))
-		{
-			return;
-		}
-
-		g_application_quit (G_APPLICATION (app));
-	}
-}
-
 static GeditWindow *
 gedit_app_create_window_impl (GeditApp *app)
 {
 	GeditWindow *window;
-	GList *windows;
-	gboolean is_first;
-	
-	/*
-	 * We need to be careful here, there is a race condition:
-	 * when another gedit is launched it checks active_window,
-	 * so we must do our best to ensure that active_window
-	 * is never NULL when at least a window exists.
-	 */
-
-	windows = gtk_application_get_windows (GTK_APPLICATION (app));
-	is_first = (windows == NULL);
 	
 	window = g_object_new (GEDIT_TYPE_WINDOW, "application", app, NULL);
 
-	if (is_first)
-	{
-		set_active_window (app, window);
-	}
-
 	gtk_application_add_window (GTK_APPLICATION (app), GTK_WINDOW (window));
 
 	gedit_debug_message (DEBUG_APP, "Window created");
 
 	g_signal_connect (window,
-			  "focus_in_event",
-			  G_CALLBACK (window_focus_in_event),
-			  app);
-	g_signal_connect (window,
 			  "delete_event",
 			  G_CALLBACK (window_delete_event),
 			  app);
-	g_signal_connect (window,
-			  "destroy",
-			  G_CALLBACK (window_destroy),
-			  app);
 
 	return window;
 }
@@ -1026,7 +939,6 @@ gedit_app_class_init (GeditAppClass *klass)
 	app_class->local_command_line = gedit_app_local_command_line;
 	app_class->shutdown = gedit_app_shutdown;
 
-	klass->last_window_destroyed = gedit_app_last_window_destroyed_impl;
 	klass->show_help = gedit_app_show_help_impl;
 	klass->help_link_id = gedit_app_help_link_id_impl;
 	klass->set_window_title = gedit_app_set_window_title_impl;
diff --git a/gedit/gedit-app.h b/gedit/gedit-app.h
index 6a71bf2..dbedfc2 100644
--- a/gedit/gedit-app.h
+++ b/gedit/gedit-app.h
@@ -60,9 +60,6 @@ struct _GeditAppClass
 {
 	GtkApplicationClass parent_class;
 
-	gboolean (*last_window_destroyed)	(GeditApp    *app,
-	                                         GeditWindow *window);
-
 	gboolean (*show_help)			(GeditApp    *app,
 	                                         GtkWindow   *parent,
 	                                         const gchar *name,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]