diff --git a/ChangeLog b/ChangeLog index 9a0ea79f0d..76127c48d3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-03-26 Sven Neumann + + * app/display/gimpdisplayshell-icon.[ch] + * app/display/gimpdisplayshell-handlers.c: moved more icon code to + its new home. + 2008-03-25 Mukund Sivaraman * plug-ins/common/mng.c: Cleaned up the rest of the plug-in. diff --git a/app/display/gimpdisplayshell-handlers.c b/app/display/gimpdisplayshell-handlers.c index 7a05d30614..5e5db7a4c5 100644 --- a/app/display/gimpdisplayshell-handlers.c +++ b/app/display/gimpdisplayshell-handlers.c @@ -47,9 +47,6 @@ #include "gimpdisplayshell-title.h" -#define GIMP_DISPLAY_UPDATE_ICON_TIMEOUT 1000 - - /* local function prototypes */ static void gimp_display_shell_clean_dirty_handler (GimpImage *image, @@ -119,8 +116,6 @@ static void gimp_display_shell_quality_notify_handler (GObject *c GParamSpec *param_spec, GimpDisplayShell *shell); -static gboolean gimp_display_shell_idle_update_icon (gpointer data); - /* public functions */ @@ -271,11 +266,7 @@ gimp_display_shell_disconnect (GimpDisplayShell *shell) image = shell->display->image; - if (shell->icon_idle_id) - { - g_source_remove (shell->icon_idle_id); - shell->icon_idle_id = 0; - } + gimp_display_shell_icon_idle_stop (shell); if (shell->grid_gc) { @@ -491,14 +482,7 @@ static void gimp_display_shell_invalidate_preview_handler (GimpImage *image, GimpDisplayShell *shell) { - if (shell->icon_idle_id) - g_source_remove (shell->icon_idle_id); - - shell->icon_idle_id = g_timeout_add_full (G_PRIORITY_LOW, - GIMP_DISPLAY_UPDATE_ICON_TIMEOUT, - gimp_display_shell_idle_update_icon, - shell, - NULL); + gimp_display_shell_icon_idle_update (shell); } static void @@ -687,15 +671,3 @@ gimp_display_shell_quality_notify_handler (GObject *config, { gimp_display_shell_expose_full (shell); } - -static gboolean -gimp_display_shell_idle_update_icon (gpointer data) -{ - GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (data); - - shell->icon_idle_id = 0; - - gimp_display_shell_icon_update (shell); - - return FALSE; -} diff --git a/app/display/gimpdisplayshell-icon.c b/app/display/gimpdisplayshell-icon.c index 40cec89eae..8dbfc03c5e 100644 --- a/app/display/gimpdisplayshell-icon.c +++ b/app/display/gimpdisplayshell-icon.c @@ -31,6 +31,11 @@ #include "gimpdisplayshell-icon.h" +#define GIMP_DISPLAY_UPDATE_ICON_TIMEOUT 1000 + +static gboolean gimp_display_shell_idle_update_icon (gpointer data); + + void gimp_display_shell_icon_update (GimpDisplayShell *shell) { @@ -72,3 +77,41 @@ gimp_display_shell_icon_update (GimpDisplayShell *shell) } } +void +gimp_display_shell_icon_idle_update (GimpDisplayShell *shell) +{ + g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell)); + + if (shell->icon_idle_id) + g_source_remove (shell->icon_idle_id); + + shell->icon_idle_id = g_timeout_add_full (G_PRIORITY_LOW, + GIMP_DISPLAY_UPDATE_ICON_TIMEOUT, + gimp_display_shell_idle_update_icon, + shell, + NULL); +} + +void +gimp_display_shell_icon_idle_stop (GimpDisplayShell *shell) +{ + g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell)); + + if (shell->icon_idle_id) + { + g_source_remove (shell->icon_idle_id); + shell->icon_idle_id = 0; + } +} + +static gboolean +gimp_display_shell_idle_update_icon (gpointer data) +{ + GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (data); + + shell->icon_idle_id = 0; + + gimp_display_shell_icon_update (shell); + + return FALSE; +} diff --git a/app/display/gimpdisplayshell-icon.h b/app/display/gimpdisplayshell-icon.h index 95c039927b..3956f66d92 100644 --- a/app/display/gimpdisplayshell-icon.h +++ b/app/display/gimpdisplayshell-icon.h @@ -20,7 +20,9 @@ #define __GIMP_DISPLAY_SHELL_ICON_H__ -void gimp_display_shell_icon_update (GimpDisplayShell *shell); +void gimp_display_shell_icon_update (GimpDisplayShell *shell); +void gimp_display_shell_icon_idle_update (GimpDisplayShell *shell); +void gimp_display_shell_icon_idle_stop (GimpDisplayShell *shell); #endif /* __GIMP_DISPLAY_SHELL_ICON_H__ */