Never shrink the empty display when filling it, only grow:
2008-03-23 Michael Natterer <mitch@gimp.org> Never shrink the empty display when filling it, only grow: * app/display/gimpdisplayshell.[ch] * app/display/gimpdisplayshell-scale.[ch]: add "gboolean grow_only" parameters to shrink_wrap() APIs which restricts resizing of the window to growing. * app/display/gimpdisplayshell-scale.[ch] (gimp_displaY_shell_scale_resize): remove boolean "redisplay" parameter because is was always passed as TRUE. Add boolean "grow_only" instead and pass it on to shrink_wrap() * app/actions/view-commands.c * app/display/gimpdisplayshell-handlers.c: pass grow_only = FALSE. * app/display/gimpdisplayshell.c (gimp_display_shell_idle_fill): pass grow_only = TRUE. svn path=/trunk/; revision=25178
This commit is contained in:

committed by
Michael Natterer

parent
54d306e8ea
commit
f8e5aa31bd
20
ChangeLog
20
ChangeLog
@ -1,3 +1,23 @@
|
|||||||
|
2008-03-23 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
|
Never shrink the empty display when filling it, only grow:
|
||||||
|
|
||||||
|
* app/display/gimpdisplayshell.[ch]
|
||||||
|
* app/display/gimpdisplayshell-scale.[ch]: add "gboolean
|
||||||
|
grow_only" parameters to shrink_wrap() APIs which restricts
|
||||||
|
resizing of the window to growing.
|
||||||
|
|
||||||
|
* app/display/gimpdisplayshell-scale.[ch]
|
||||||
|
(gimp_displaY_shell_scale_resize): remove boolean "redisplay"
|
||||||
|
parameter because is was always passed as TRUE. Add boolean
|
||||||
|
"grow_only" instead and pass it on to shrink_wrap()
|
||||||
|
|
||||||
|
* app/actions/view-commands.c
|
||||||
|
* app/display/gimpdisplayshell-handlers.c: pass grow_only = FALSE.
|
||||||
|
|
||||||
|
* app/display/gimpdisplayshell.c (gimp_display_shell_idle_fill):
|
||||||
|
pass grow_only = TRUE.
|
||||||
|
|
||||||
2008-03-23 Michael Natterer <mitch@gimp.org>
|
2008-03-23 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
* app/dialogs/dialogs.[ch]: added a dialog factory for displays
|
* app/dialogs/dialogs.[ch]: added a dialog factory for displays
|
||||||
|
@ -631,7 +631,8 @@ view_shrink_wrap_cmd_callback (GtkAction *action,
|
|||||||
GimpDisplay *display;
|
GimpDisplay *display;
|
||||||
return_if_no_display (display, data);
|
return_if_no_display (display, data);
|
||||||
|
|
||||||
gimp_display_shell_scale_shrink_wrap (GIMP_DISPLAY_SHELL (display->shell));
|
gimp_display_shell_scale_shrink_wrap (GIMP_DISPLAY_SHELL (display->shell),
|
||||||
|
FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -423,7 +423,7 @@ gimp_display_shell_size_changed_handler (GimpImage *image,
|
|||||||
{
|
{
|
||||||
gimp_display_shell_scale_resize (shell,
|
gimp_display_shell_scale_resize (shell,
|
||||||
shell->display->config->resize_windows_on_resize,
|
shell->display->config->resize_windows_on_resize,
|
||||||
TRUE);
|
FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -305,7 +305,7 @@ gimp_display_shell_scale_set_dot_for_dot (GimpDisplayShell *shell,
|
|||||||
|
|
||||||
gimp_display_shell_scale_resize (shell,
|
gimp_display_shell_scale_resize (shell,
|
||||||
shell->display->config->resize_windows_on_zoom,
|
shell->display->config->resize_windows_on_zoom,
|
||||||
TRUE);
|
FALSE);
|
||||||
|
|
||||||
/* re-enable the active tool */
|
/* re-enable the active tool */
|
||||||
gimp_display_shell_resume (shell);
|
gimp_display_shell_resume (shell);
|
||||||
@ -544,7 +544,7 @@ gimp_display_shell_scale_by_values (GimpDisplayShell *shell,
|
|||||||
shell->offset_x = offset_x;
|
shell->offset_x = offset_x;
|
||||||
shell->offset_y = offset_y;
|
shell->offset_y = offset_y;
|
||||||
|
|
||||||
gimp_display_shell_scale_resize (shell, resize_window, TRUE);
|
gimp_display_shell_scale_resize (shell, resize_window, FALSE);
|
||||||
|
|
||||||
/* re-enable the active tool */
|
/* re-enable the active tool */
|
||||||
gimp_display_shell_resume (shell);
|
gimp_display_shell_resume (shell);
|
||||||
@ -555,14 +555,15 @@ gimp_display_shell_scale_by_values (GimpDisplayShell *shell,
|
|||||||
* @shell: the #GimpDisplayShell
|
* @shell: the #GimpDisplayShell
|
||||||
*
|
*
|
||||||
* Convenience function with the same functionality as
|
* Convenience function with the same functionality as
|
||||||
* gimp_display_shell_scale_resize(@shell, TRUE, TRUE).
|
* gimp_display_shell_scale_resize(@shell, TRUE, grow_only).
|
||||||
**/
|
**/
|
||||||
void
|
void
|
||||||
gimp_display_shell_scale_shrink_wrap (GimpDisplayShell *shell)
|
gimp_display_shell_scale_shrink_wrap (GimpDisplayShell *shell,
|
||||||
|
gboolean grow_only)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
|
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
|
||||||
|
|
||||||
gimp_display_shell_scale_resize (shell, TRUE, TRUE);
|
gimp_display_shell_scale_resize (shell, TRUE, grow_only);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -579,7 +580,7 @@ gimp_display_shell_scale_shrink_wrap (GimpDisplayShell *shell)
|
|||||||
void
|
void
|
||||||
gimp_display_shell_scale_resize (GimpDisplayShell *shell,
|
gimp_display_shell_scale_resize (GimpDisplayShell *shell,
|
||||||
gboolean resize_window,
|
gboolean resize_window,
|
||||||
gboolean redisplay)
|
gboolean grow_only)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
|
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
|
||||||
|
|
||||||
@ -587,13 +588,13 @@ gimp_display_shell_scale_resize (GimpDisplayShell *shell,
|
|||||||
gimp_display_shell_pause (shell);
|
gimp_display_shell_pause (shell);
|
||||||
|
|
||||||
if (resize_window)
|
if (resize_window)
|
||||||
gimp_display_shell_shrink_wrap (shell);
|
gimp_display_shell_shrink_wrap (shell, grow_only);
|
||||||
|
|
||||||
gimp_display_shell_scroll_clamp_offsets (shell);
|
gimp_display_shell_scroll_clamp_offsets (shell);
|
||||||
gimp_display_shell_scale_setup (shell);
|
gimp_display_shell_scale_setup (shell);
|
||||||
gimp_display_shell_scaled (shell);
|
gimp_display_shell_scaled (shell);
|
||||||
|
|
||||||
if (resize_window || redisplay)
|
if (resize_window)
|
||||||
gimp_display_shell_expose_full (shell);
|
gimp_display_shell_expose_full (shell);
|
||||||
|
|
||||||
/* re-enable the active tool */
|
/* re-enable the active tool */
|
||||||
|
@ -43,11 +43,12 @@ void gimp_display_shell_scale_by_values (GimpDisplayShell *shell,
|
|||||||
gint offset_x,
|
gint offset_x,
|
||||||
gint offset_y,
|
gint offset_y,
|
||||||
gboolean resize_window);
|
gboolean resize_window);
|
||||||
void gimp_display_shell_scale_shrink_wrap (GimpDisplayShell *shell);
|
void gimp_display_shell_scale_shrink_wrap (GimpDisplayShell *shell,
|
||||||
|
gboolean grow_only);
|
||||||
|
|
||||||
void gimp_display_shell_scale_resize (GimpDisplayShell *shell,
|
void gimp_display_shell_scale_resize (GimpDisplayShell *shell,
|
||||||
gboolean resize_window,
|
gboolean resize_window,
|
||||||
gboolean redisplay);
|
gboolean grow_only);
|
||||||
void gimp_display_shell_set_initial_scale (GimpDisplayShell *shell,
|
void gimp_display_shell_set_initial_scale (GimpDisplayShell *shell,
|
||||||
gdouble scale,
|
gdouble scale,
|
||||||
gint *display_width,
|
gint *display_width,
|
||||||
|
@ -1236,7 +1236,7 @@ gimp_display_shell_fill_idle (GimpDisplayShell *shell)
|
|||||||
{
|
{
|
||||||
shell->fill_idle_id = 0;
|
shell->fill_idle_id = 0;
|
||||||
|
|
||||||
gimp_display_shell_scale_shrink_wrap (shell);
|
gimp_display_shell_scale_shrink_wrap (shell, TRUE);
|
||||||
|
|
||||||
gtk_window_present (GTK_WINDOW (shell));
|
gtk_window_present (GTK_WINDOW (shell));
|
||||||
|
|
||||||
@ -1716,7 +1716,8 @@ gimp_display_shell_update_icon (GimpDisplayShell *shell)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gimp_display_shell_shrink_wrap (GimpDisplayShell *shell)
|
gimp_display_shell_shrink_wrap (GimpDisplayShell *shell,
|
||||||
|
gboolean grow_only)
|
||||||
{
|
{
|
||||||
GtkWidget *widget;
|
GtkWidget *widget;
|
||||||
GdkScreen *screen;
|
GdkScreen *screen;
|
||||||
@ -1780,9 +1781,19 @@ gimp_display_shell_shrink_wrap (GimpDisplayShell *shell)
|
|||||||
if (width < shell->statusbar->requisition.width)
|
if (width < shell->statusbar->requisition.width)
|
||||||
width = shell->statusbar->requisition.width;
|
width = shell->statusbar->requisition.width;
|
||||||
|
|
||||||
gtk_window_resize (GTK_WINDOW (shell),
|
width = width + border_x;
|
||||||
width + border_x,
|
height = height + border_y;
|
||||||
height + border_y);
|
|
||||||
|
if (grow_only)
|
||||||
|
{
|
||||||
|
if (width < widget->allocation.width)
|
||||||
|
width = widget->allocation.width;
|
||||||
|
|
||||||
|
if (height < widget->allocation.height)
|
||||||
|
height = widget->allocation.height;
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_window_resize (GTK_WINDOW (shell), width, height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -263,7 +263,8 @@ void gimp_display_shell_resume (GimpDisplayShell *shell);
|
|||||||
|
|
||||||
void gimp_display_shell_update_icon (GimpDisplayShell *shell);
|
void gimp_display_shell_update_icon (GimpDisplayShell *shell);
|
||||||
|
|
||||||
void gimp_display_shell_shrink_wrap (GimpDisplayShell *shell);
|
void gimp_display_shell_shrink_wrap (GimpDisplayShell *shell,
|
||||||
|
gboolean grow_only);
|
||||||
|
|
||||||
void gimp_display_shell_set_highlight (GimpDisplayShell *shell,
|
void gimp_display_shell_set_highlight (GimpDisplayShell *shell,
|
||||||
const GdkRectangle *highlight);
|
const GdkRectangle *highlight);
|
||||||
|
Reference in New Issue
Block a user