[gimp] app: Handle dock windows without docks in action_data_get_foo()



commit 2d1d2aae17678b4af6cceafad1ca825190ab3885
Author: Martin Nordholts <martinn src gnome org>
Date:   Sat Oct 3 16:23:12 2009 +0200

    app: Handle dock windows without docks in action_data_get_foo()

 app/actions/actions.c |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)
---
diff --git a/app/actions/actions.c b/app/actions/actions.c
index 36c1da5..a95a827 100644
--- a/app/actions/actions.c
+++ b/app/actions/actions.c
@@ -271,7 +271,10 @@ action_data_get_gimp (gpointer data)
   else if (GIMP_IS_DOCK (data))
     context = gimp_dock_get_context (((GimpDock *) data));
   else if (GIMP_IS_DOCK_WINDOW (data))
-    context = gimp_dock_get_context (gimp_dock_window_get_dock (((GimpDockWindow *) data)));
+    {
+      GimpDock *dock = gimp_dock_window_get_dock (((GimpDockWindow *) data));
+      context = dock ? gimp_dock_get_context (dock) : NULL;
+    }
   else if (GIMP_IS_CONTAINER_VIEW (data))
     context = gimp_container_view_get_context ((GimpContainerView *) data);
   else if (GIMP_IS_CONTAINER_EDITOR (data))
@@ -302,7 +305,10 @@ action_data_get_context (gpointer data)
   else if (GIMP_IS_DOCK (data))
     return gimp_dock_get_context ((GimpDock *) data);
   else if (GIMP_IS_DOCK_WINDOW (data))
-    return gimp_dock_get_context (gimp_dock_window_get_dock (((GimpDockWindow *) data)));
+    {
+      GimpDock *dock = gimp_dock_window_get_dock (((GimpDockWindow *) data));
+      return dock ? gimp_dock_get_context (dock) : NULL;
+    }
   else if (GIMP_IS_CONTAINER_VIEW (data))
     return gimp_container_view_get_context ((GimpContainerView *) data);
   else if (GIMP_IS_CONTAINER_EDITOR (data))
@@ -332,7 +338,10 @@ action_data_get_image (gpointer data)
   else if (GIMP_IS_DOCK (data))
     context = gimp_dock_get_context ((GimpDock *) data);
   else if (GIMP_IS_DOCK_WINDOW (data))
-    context = gimp_dock_get_context (gimp_dock_window_get_dock (((GimpDockWindow *) data)));
+    {
+      GimpDock *dock = gimp_dock_window_get_dock (((GimpDockWindow *) data));
+      context = dock ? gimp_dock_get_context (dock) : NULL;
+    }
   else if (GIMP_IS_ITEM_TREE_VIEW (data))
     return gimp_item_tree_view_get_image ((GimpItemTreeView *) data);
   else if (GIMP_IS_IMAGE_EDITOR (data))
@@ -363,7 +372,10 @@ action_data_get_display (gpointer data)
   else if (GIMP_IS_DOCK (data))
     context = gimp_dock_get_context ((GimpDock *) data);
   else if (GIMP_IS_DOCK_WINDOW (data))
-    context = gimp_dock_get_context (gimp_dock_window_get_dock (((GimpDockWindow *) data)));
+    {
+      GimpDock *dock = gimp_dock_window_get_dock (((GimpDockWindow *) data));
+      context = dock ? gimp_dock_get_context (dock) : NULL;
+    }
   else if (GIMP_IS_NAVIGATION_EDITOR (data))
     context = ((GimpNavigationEditor *) data)->context;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]