[Xfce4-commits] r26141 - in mousepad/branches/nick_0_3: . mousepad
Nick Schermer
nick at xfce.org
Wed Oct 17 13:02:46 CEST 2007
Author: nick
Date: 2007-10-17 11:02:46 +0000 (Wed, 17 Oct 2007)
New Revision: 26141
Modified:
mousepad/branches/nick_0_3/ChangeLog
mousepad/branches/nick_0_3/mousepad/mousepad-window.c
Log:
* mousepad/mousepad-window.c: Decrease the menu lock when a window
is closed and disconnect the recent manager handler (this is a
bug since 2.12 because the manager is a floating object).
Modified: mousepad/branches/nick_0_3/ChangeLog
===================================================================
--- mousepad/branches/nick_0_3/ChangeLog 2007-10-17 09:48:30 UTC (rev 26140)
+++ mousepad/branches/nick_0_3/ChangeLog 2007-10-17 11:02:46 UTC (rev 26141)
@@ -1,4 +1,10 @@
2007-10-17 Nick Schermer <nick at xfce.org>
+ * mousepad/mousepad-window.c: Decrease the menu lock when a window
+ is closed and disconnect the recent manager handler (this is a
+ bug since 2.12 because the manager is a floating object).
+
+
+2007-10-17 Nick Schermer <nick at xfce.org>
* mousepad/mousepad-{window,util}.c: Fix compiler warnings.
Modified: mousepad/branches/nick_0_3/mousepad/mousepad-window.c
===================================================================
--- mousepad/branches/nick_0_3/mousepad/mousepad-window.c 2007-10-17 09:48:30 UTC (rev 26140)
+++ mousepad/branches/nick_0_3/mousepad/mousepad-window.c 2007-10-17 11:02:46 UTC (rev 26141)
@@ -511,8 +511,7 @@
window->recent_manager = gtk_recent_manager_get_default ();
window->recent_actions = gtk_action_group_new ("RecentActions");
gtk_ui_manager_insert_action_group (window->ui_manager, window->recent_actions, -1);
- g_signal_connect_swapped (G_OBJECT (window->recent_manager), "changed",
- G_CALLBACK (mousepad_window_recent_menu), window);
+ g_signal_connect_swapped (G_OBJECT (window->recent_manager), "changed", G_CALLBACK (mousepad_window_recent_menu), window);
/* create the recent menu */
mousepad_window_recent_menu (window);
@@ -610,6 +609,9 @@
mousepad_window_dispose (GObject *object)
{
MousepadWindow *window = MOUSEPAD_WINDOW (object);
+
+ /* disconnect recent manager signal */
+ g_signal_handlers_disconnect_by_func (G_OBJECT (window->recent_manager), mousepad_window_recent_menu, window);
/* destroy the save geometry timer source */
if (G_UNLIKELY (window->save_geometry_timer_id != 0))
@@ -1923,12 +1925,14 @@
static void
mousepad_window_recent_menu (MousepadWindow *window)
{
+ _mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window));
+
/* leave when we're updating multiple files or there is this an idle function pending */
- if (lock_menu_updates && window->update_recent_menu_id != 0)
+ if (lock_menu_updates > 0 || window->update_recent_menu_id != 0)
return;
/* schedule a recent menu update */
- window->update_recent_menu_id = g_idle_add_full (G_PRIORITY_LOW, (GSourceFunc) mousepad_window_recent_menu_idle,
+ window->update_recent_menu_id = g_idle_add_full (G_PRIORITY_LOW, mousepad_window_recent_menu_idle,
window, mousepad_window_recent_menu_idle_destroy);
}
@@ -2539,18 +2543,18 @@
/* ask user what to do, break when he/she hits the cancel button */
if (!mousepad_window_close_document (window, MOUSEPAD_DOCUMENT (document)))
- {
- /* allow updates again */
- lock_menu_updates--;
-
+ {
/* update the go menu */
mousepad_window_update_gomenu (window);
- /* leave the close function */
- return;
+ /* leave the loop */
+ break;
}
}
}
+
+ /* allow updates again */
+ lock_menu_updates--;
/* window will close it self when it contains to tabs */
}
More information about the Xfce4-commits
mailing list