app: Don't unmaximize image window when switching tabs in swm

It is when we apply session info to the image window we unmaximize, so
don't apply session info to the image window when all we do is
switching tabs in single-window mode.
This commit is contained in:
Martin Nordholts 2010-06-19 09:43:27 +02:00
parent 1e6055060c
commit ab6d5553d9
1 changed files with 18 additions and 7 deletions

View File

@ -140,7 +140,8 @@ static void gimp_image_window_session_clear (GimpImageWindow *win
static void gimp_image_window_session_apply (GimpImageWindow *window,
const gchar *entry_id);
static void gimp_image_window_session_update (GimpImageWindow *window,
GimpDisplay *new_display);
GimpDisplay *new_display,
gboolean from_switch_page);
static const gchar *
gimp_image_window_config_to_entry_id (GimpGuiConfig *config);
static void gimp_image_window_set_entry_id (GimpImageWindow *window,
@ -1254,7 +1255,9 @@ gimp_image_window_switch_page (GtkNotebook *notebook,
gimp_display_shell_appearance_update (private->active_shell);
gimp_image_window_session_update (window, active_display);
gimp_image_window_session_update (window,
active_display,
TRUE /*from_switch_page*/);
gimp_ui_manager_update (private->menubar_manager, active_display);
}
@ -1312,7 +1315,9 @@ gimp_image_window_image_notify (GimpDisplay *display,
GimpImageWindowPrivate *private = GIMP_IMAGE_WINDOW_GET_PRIVATE (window);
GtkWidget *view;
gimp_image_window_session_update (window, display);
gimp_image_window_session_update (window,
display,
FALSE /*from_switch_page*/);
view = gtk_notebook_get_tab_label (GTK_NOTEBOOK (private->notebook),
GTK_WIDGET (gimp_display_get_shell (display)));
@ -1377,7 +1382,8 @@ gimp_image_window_session_apply (GimpImageWindow *window,
static void
gimp_image_window_session_update (GimpImageWindow *window,
GimpDisplay *new_display)
GimpDisplay *new_display,
gboolean from_switch_page)
{
GimpImageWindowPrivate *private = GIMP_IMAGE_WINDOW_GET_PRIVATE (window);
@ -1404,8 +1410,11 @@ gimp_image_window_session_update (GimpImageWindow *window,
}
else if (strcmp (private->entry_id, GIMP_SINGLE_IMAGE_WINDOW_ENTRY_ID) == 0)
{
/* Always session manage the single image window */
gimp_image_window_session_apply (window, private->entry_id);
/* Always session manage the single image window, but not if all
* we did was switch tabs
*/
if (! from_switch_page)
gimp_image_window_session_apply (window, private->entry_id);
}
else
{
@ -1437,7 +1446,9 @@ gimp_image_window_set_entry_id (GimpImageWindow *window,
private->entry_id = entry_id;
gimp_image_window_session_update (window, private->active_shell->display);
gimp_image_window_session_update (window,
private->active_shell->display,
FALSE /*from_switch_page*/);
}
static void