Changeset 7eaf2d172909418013d8e9cf19812bc6906cc2ad
- Timestamp:
- 09/05/10 02:58:22 (3 years ago)
- Author:
- Nedko Arnaudov <nedko@…>
- Children:
- 86b174b97aaa58086f66be2873ac2201fdf559cf
- Parents:
- ef9e54e3fdea5f50be28da38b8c9801828bedec2
- git-committer:
- Nedko Arnaudov <nedko@arnaudov.name> / 2010-09-05T02:58:22Z+0300
- Message:
-
gui: properly cleanup on graph view creation failure
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
rb812ccc
|
r7eaf2d1
|
|
| 84 | 84 | } |
| 85 | 85 | |
| | 86 | static void detach_canvas(struct graph_view * view_ptr) |
| | 87 | { |
| | 88 | GtkWidget * child; |
| | 89 | |
| | 90 | child = gtk_bin_get_child(GTK_BIN(g_main_scrolledwin)); |
| | 91 | if (child == view_ptr->canvas_widget) |
| | 92 | { |
| | 93 | gtk_container_remove(GTK_CONTAINER(g_main_scrolledwin), view_ptr->canvas_widget); |
| | 94 | g_current_view = NULL; |
| | 95 | gtk_widget_show(g_view_label); |
| | 96 | gtk_scrolled_window_add_with_viewport(g_main_scrolledwin, g_view_label); |
| | 97 | } |
| | 98 | } |
| | 99 | |
| 86 | 100 | #define view_ptr ((struct graph_view *)context) |
| 87 | 101 | |
| … |
… |
|
| 221 | 235 | if (!ladish_app_supervisor_proxy_create(service, object, view_ptr, app_added, app_state_changed, app_removed, &view_ptr->app_supervisor)) |
| 222 | 236 | { |
| 223 | | goto detach_graph_canvas; |
| | 237 | goto remove_from_world_tree; |
| 224 | 238 | } |
| 225 | 239 | } |
| … |
… |
|
| 252 | 266 | ladish_app_supervisor_proxy_destroy(view_ptr->app_supervisor); |
| 253 | 267 | } |
| 254 | | detach_graph_canvas: |
| 255 | | graph_canvas_detach(view_ptr->graph_canvas); |
| | 268 | remove_from_world_tree: |
| | 269 | list_del(&view_ptr->siblings); |
| | 270 | if (!list_empty(&g_views)) |
| | 271 | { |
| | 272 | world_tree_activate((graph_view_handle)list_entry(g_views.next, struct graph_view, siblings)); |
| | 273 | } |
| | 274 | else |
| | 275 | { |
| | 276 | set_main_window_title(NULL); |
| | 277 | } |
| | 278 | |
| | 279 | detach_canvas(view_ptr); |
| | 280 | |
| | 281 | world_tree_remove((graph_view_handle)view_ptr); |
| 256 | 282 | destroy_graph_canvas: |
| 257 | 283 | graph_canvas_destroy(view_ptr->graph_canvas); |
| … |
… |
|
| 297 | 323 | } |
| 298 | 324 | |
| 299 | | static void detach_canvas(struct graph_view * view_ptr) |
| 300 | | { |
| 301 | | GtkWidget * child; |
| 302 | | |
| 303 | | child = gtk_bin_get_child(GTK_BIN(g_main_scrolledwin)); |
| 304 | | if (child == view_ptr->canvas_widget) |
| 305 | | { |
| 306 | | gtk_container_remove(GTK_CONTAINER(g_main_scrolledwin), view_ptr->canvas_widget); |
| 307 | | g_current_view = NULL; |
| 308 | | gtk_widget_show(g_view_label); |
| 309 | | gtk_scrolled_window_add_with_viewport(g_main_scrolledwin, g_view_label); |
| 310 | | } |
| 311 | | } |
| 312 | | |
| 313 | 325 | #define view_ptr ((struct graph_view *)view) |
| 314 | 326 | |