Fixed bug #119423. There was no speed regression with the actual painting,

2003-10-08  Michael Natterer  <mitch@gimp.org>

	Fixed bug #119423. There was no speed regression with the actual
	painting, just with the display update (which effectively led to
	faster painting, it just felt slower).

	* app/display/gimpdisplayshell.c (gimp_display_shell_flush): added
	"gboolean now" parameter and update the display immediately if
	it is TRUE.

	* app/display/gimpdisplay.c (gimp_display_flush_whenever): pass
	the "now" we got passed to the function above, so calling
	gimp_display_flush_now() really flushes *now* again.
This commit is contained in:
Michael Natterer
2003-10-08 14:50:26 +00:00
committed by Michael Natterer
parent 0fae4f9c10
commit 96e9f052a2
7 changed files with 40 additions and 16 deletions

View File

@ -1,3 +1,17 @@
2003-10-08 Michael Natterer <mitch@gimp.org>
Fixed bug #119423. There was no speed regression with the actual
painting, just with the display update (which effectively led to
faster painting, it just felt slower).
* app/display/gimpdisplayshell.c (gimp_display_shell_flush): added
"gboolean now" parameter and update the display immediately if
it is TRUE.
* app/display/gimpdisplay.c (gimp_display_flush_whenever): pass
the "now" we got passed to the function above, so calling
gimp_display_flush_now() really flushes *now* again.
2003-10-08 Michael Natterer <mitch@gimp.org> 2003-10-08 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/pdb/fileops.pdb (file_load_invoker): * tools/pdbgen/pdb/fileops.pdb (file_load_invoker):

View File

@ -488,7 +488,7 @@ gimp_display_flush_whenever (GimpDisplay *gdisp,
} }
/* Next the displays... */ /* Next the displays... */
gimp_display_shell_flush (shell); gimp_display_shell_flush (shell, now);
/* ensure the consistency of the menus */ /* ensure the consistency of the menus */
if (! now) if (! now)

View File

@ -488,7 +488,7 @@ gimp_display_flush_whenever (GimpDisplay *gdisp,
} }
/* Next the displays... */ /* Next the displays... */
gimp_display_shell_flush (shell); gimp_display_shell_flush (shell, now);
/* ensure the consistency of the menus */ /* ensure the consistency of the menus */
if (! now) if (! now)

View File

@ -1174,11 +1174,15 @@ gimp_display_shell_expose_full (GimpDisplayShell *shell)
} }
void void
gimp_display_shell_flush (GimpDisplayShell *shell) gimp_display_shell_flush (GimpDisplayShell *shell,
gboolean now)
{ {
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell)); g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
gimp_display_shell_update_title (shell); gimp_display_shell_update_title (shell);
if (now)
gdk_window_process_updates (shell->canvas->window, FALSE);
} }
void void

View File

@ -226,7 +226,8 @@ void gimp_display_shell_expose_guide (GimpDisplayShell *shell,
GimpGuide *guide); GimpGuide *guide);
void gimp_display_shell_expose_full (GimpDisplayShell *shell); void gimp_display_shell_expose_full (GimpDisplayShell *shell);
void gimp_display_shell_flush (GimpDisplayShell *shell); void gimp_display_shell_flush (GimpDisplayShell *shell,
gboolean now);
void gimp_display_shell_pause (GimpDisplayShell *shell); void gimp_display_shell_pause (GimpDisplayShell *shell);
void gimp_display_shell_resume (GimpDisplayShell *shell); void gimp_display_shell_resume (GimpDisplayShell *shell);

View File

@ -1174,11 +1174,15 @@ gimp_display_shell_expose_full (GimpDisplayShell *shell)
} }
void void
gimp_display_shell_flush (GimpDisplayShell *shell) gimp_display_shell_flush (GimpDisplayShell *shell,
gboolean now)
{ {
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell)); g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
gimp_display_shell_update_title (shell); gimp_display_shell_update_title (shell);
if (now)
gdk_window_process_updates (shell->canvas->window, FALSE);
} }
void void

View File

@ -226,7 +226,8 @@ void gimp_display_shell_expose_guide (GimpDisplayShell *shell,
GimpGuide *guide); GimpGuide *guide);
void gimp_display_shell_expose_full (GimpDisplayShell *shell); void gimp_display_shell_expose_full (GimpDisplayShell *shell);
void gimp_display_shell_flush (GimpDisplayShell *shell); void gimp_display_shell_flush (GimpDisplayShell *shell,
gboolean now);
void gimp_display_shell_pause (GimpDisplayShell *shell); void gimp_display_shell_pause (GimpDisplayShell *shell);
void gimp_display_shell_resume (GimpDisplayShell *shell); void gimp_display_shell_resume (GimpDisplayShell *shell);