[gimp] Simplify GimpDisplayShell's icon update API
- From: Michael Natterer <mitch src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] Simplify GimpDisplayShell's icon update API
- Date: Thu, 8 Oct 2009 21:33:18 +0000 (UTC)
commit 7c39a22dc205d244783a3c8636036528d83a9954
Author: Michael Natterer <mitch gimp org>
Date: Thu Oct 8 10:33:28 2009 +0200
Simplify GimpDisplayShell's icon update API
It makes no sense to distinguish between idle and immediate update in
the public API, the code can simply decide by itself to immediately
update a NULL image's icon.
app/display/gimpdisplayshell-handlers.c | 4 +-
app/display/gimpdisplayshell-icon.c | 79 ++++++++++++++----------------
app/display/gimpdisplayshell-icon.h | 3 +-
3 files changed, 40 insertions(+), 46 deletions(-)
---
diff --git a/app/display/gimpdisplayshell-handlers.c b/app/display/gimpdisplayshell-handlers.c
index 5cec9eb..79e77d4 100644
--- a/app/display/gimpdisplayshell-handlers.c
+++ b/app/display/gimpdisplayshell-handlers.c
@@ -295,7 +295,7 @@ gimp_display_shell_disconnect (GimpDisplayShell *shell)
g_return_if_fail (GIMP_IS_IMAGE (image));
- gimp_display_shell_icon_idle_stop (shell);
+ gimp_display_shell_icon_update_stop (shell);
if (shell->grid_gc)
{
@@ -572,7 +572,7 @@ static void
gimp_display_shell_invalidate_preview_handler (GimpImage *image,
GimpDisplayShell *shell)
{
- gimp_display_shell_icon_idle_update (shell);
+ gimp_display_shell_icon_update (shell);
}
static void
diff --git a/app/display/gimpdisplayshell-icon.c b/app/display/gimpdisplayshell-icon.c
index c046a50..a0675e4 100644
--- a/app/display/gimpdisplayshell-icon.c
+++ b/app/display/gimpdisplayshell-icon.c
@@ -24,7 +24,6 @@
#include "core/gimp.h"
#include "core/gimpimage.h"
-#include "core/gimpviewable.h"
#include "gimpdisplay.h"
#include "gimpdisplayshell.h"
@@ -33,18 +32,51 @@
#define GIMP_DISPLAY_UPDATE_ICON_TIMEOUT 1000
-static gboolean gimp_display_shell_idle_update_icon (gpointer data);
+static gboolean gimp_display_shell_icon_update_idle (gpointer data);
+/* public functions */
+
void
gimp_display_shell_icon_update (GimpDisplayShell *shell)
{
- GimpImage *image;
- GdkPixbuf *pixbuf = NULL;
+ g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
+
+ gimp_display_shell_icon_update_stop (shell);
+ if (gimp_display_get_image (shell->display))
+ shell->icon_idle_id = g_timeout_add_full (G_PRIORITY_LOW,
+ GIMP_DISPLAY_UPDATE_ICON_TIMEOUT,
+ gimp_display_shell_icon_update_idle,
+ shell,
+ NULL);
+ else
+ gimp_display_shell_icon_update_idle (shell);
+}
+
+void
+gimp_display_shell_icon_update_stop (GimpDisplayShell *shell)
+{
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
- image = gimp_display_get_image (shell->display);
+ if (shell->icon_idle_id)
+ {
+ g_source_remove (shell->icon_idle_id);
+ shell->icon_idle_id = 0;
+ }
+}
+
+
+/* private functions */
+
+static gboolean
+gimp_display_shell_icon_update_idle (gpointer data)
+{
+ GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (data);
+ GimpImage *image = gimp_display_get_image (shell->display);
+ GdkPixbuf *pixbuf = NULL;
+
+ shell->icon_idle_id = 0;
if (image)
{
@@ -71,43 +103,6 @@ gimp_display_shell_icon_update (GimpDisplayShell *shell)
}
g_object_set (shell, "icon", pixbuf, NULL);
-}
-
-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 ba45f0f..a94e72b 100644
--- a/app/display/gimpdisplayshell-icon.h
+++ b/app/display/gimpdisplayshell-icon.h
@@ -20,8 +20,7 @@
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);
+void gimp_display_shell_icon_update_stop (GimpDisplayShell *shell);
#endif /* __GIMP_DISPLAY_SHELL_ICON_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]