app: Add and use gimp_session_info_get_info_with_widget()

Add and use helper function
gimp_session_info_get_info_with_widget(). Might need it for
GimpImageWindow later...
This commit is contained in:
Martin Nordholts 2011-05-09 18:27:32 +02:00
parent 4b9243fc60
commit 6d421f9d4d
3 changed files with 28 additions and 3 deletions

View File

@ -666,9 +666,7 @@ gimp_dock_window_delete_event (GtkWidget *widget,
gimp_object_set_name (GIMP_OBJECT (info), name);
g_free (name);
gimp_session_info_set_widget (info, GTK_WIDGET (dock_window));
gimp_session_info_get_info (info);
gimp_session_info_set_widget (info, NULL);
gimp_session_info_get_info_with_widget (info, GTK_WIDGET (dock_window));
entry_name = (gimp_dock_window_has_toolbox (dock_window) ?
"gimp-toolbox-window" :

View File

@ -760,6 +760,31 @@ gimp_session_info_get_info (GimpSessionInfo *info)
}
}
/**
* gimp_session_info_get_info_with_widget:
* @info:
* @widget: #GtkWidget to use
*
* Temporarily sets @widget on @info and calls
* gimp_session_info_get_info(), then restores the old widget that was
* set.
**/
void
gimp_session_info_get_info_with_widget (GimpSessionInfo *info,
GtkWidget *widget)
{
GtkWidget *old_widget;
g_return_if_fail (GIMP_IS_SESSION_INFO (info));
g_return_if_fail (GTK_IS_WIDGET (widget));
old_widget = gimp_session_info_get_widget (info);
gimp_session_info_set_widget (info, widget);
gimp_session_info_get_info (info);
gimp_session_info_set_widget (info, old_widget);
}
void
gimp_session_info_clear_info (GimpSessionInfo *info)
{

View File

@ -64,6 +64,8 @@ void gimp_session_info_restore (GimpSe
void gimp_session_info_apply_geometry (GimpSessionInfo *info);
void gimp_session_info_read_geometry (GimpSessionInfo *info);
void gimp_session_info_get_info (GimpSessionInfo *info);
void gimp_session_info_get_info_with_widget (GimpSessionInfo *info,
GtkWidget *widget);
void gimp_session_info_clear_info (GimpSessionInfo *info);
gboolean gimp_session_info_is_singleton (GimpSessionInfo *info);
gboolean gimp_session_info_is_session_managed (GimpSessionInfo *info);