[gnome-builder/gnome-builder-3-26] workbennch: add a IDE_WORKBENCH_OPEN_FLAGS_NO_VIEW flag
- From: Sébastien Lafargue <slafargue src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/gnome-builder-3-26] workbennch: add a IDE_WORKBENCH_OPEN_FLAGS_NO_VIEW flag
- Date: Wed, 20 Sep 2017 10:10:41 +0000 (UTC)
commit 22de9f611facc7fea2e5159f5ff089a5d94b0207
Author: Sebastien Lafargue <slafargue gnome org>
Date: Wed Sep 20 11:15:20 2017 +0200
workbennch: add a IDE_WORKBENCH_OPEN_FLAGS_NO_VIEW flag
to resume:
IDE_WORKBENCH_OPEN_FLAGS_NO_VIEW:
load the buffer but don't create a view
IDE_WORKBENCH_OPEN_FLAGS_BACKGROUND:
load the buffer, create the view, don't present it to the user
of course the buffer/view are only created if it's not already done.
libide/buffers/ide-buffer-manager.c | 8 +++++---
libide/editor/ide-editor-workbench-addin.c | 4 +++-
libide/workbench/ide-workbench.h | 1 +
plugins/command-bar/gb-vim.c | 2 +-
4 files changed, 10 insertions(+), 5 deletions(-)
---
diff --git a/libide/buffers/ide-buffer-manager.c b/libide/buffers/ide-buffer-manager.c
index 4cd9b09..2245488 100644
--- a/libide/buffers/ide-buffer-manager.c
+++ b/libide/buffers/ide-buffer-manager.c
@@ -712,8 +712,9 @@ ide_buffer_manager__load_file_query_info_cb (GObject *object,
}
}
- if (state->is_new || (state->flags & IDE_WORKBENCH_OPEN_FLAGS_BACKGROUND) == 0)
- create_new_view = TRUE;
+ if (!(state->flags & IDE_WORKBENCH_OPEN_FLAGS_NO_VIEW))
+ if (state->is_new || (state->flags & IDE_WORKBENCH_OPEN_FLAGS_BACKGROUND) == 0)
+ create_new_view = TRUE;
g_signal_emit (self, signals [LOAD_BUFFER], 0, state->buffer, create_new_view);
@@ -862,8 +863,9 @@ ide_buffer_manager_load_file_async (IdeBufferManager *self,
"fraction", 1.0,
NULL);
g_task_return_pointer (task, g_object_ref (buffer), g_object_unref);
- if (!(flags & IDE_WORKBENCH_OPEN_FLAGS_BACKGROUND))
+ if (!(flags & IDE_WORKBENCH_OPEN_FLAGS_BACKGROUND || flags & IDE_WORKBENCH_OPEN_FLAGS_NO_VIEW))
ide_buffer_manager_set_focus_buffer (self, buffer);
+
IDE_EXIT;
}
diff --git a/libide/editor/ide-editor-workbench-addin.c b/libide/editor/ide-editor-workbench-addin.c
index 2287208..3042a1d 100644
--- a/libide/editor/ide-editor-workbench-addin.c
+++ b/libide/editor/ide-editor-workbench-addin.c
@@ -362,7 +362,9 @@ ide_editor_workbench_addin_open_cb (GObject *object,
}
}
- if (self->perspective != NULL && !(open_file_task_data->flags & IDE_WORKBENCH_OPEN_FLAGS_BACKGROUND))
+ if (self->perspective != NULL &&
+ !(open_file_task_data->flags & IDE_WORKBENCH_OPEN_FLAGS_NO_VIEW) &&
+ !(open_file_task_data->flags & IDE_WORKBENCH_OPEN_FLAGS_BACKGROUND))
ide_editor_perspective_focus_buffer_in_current_stack (self->perspective, buffer);
g_task_return_boolean (task, TRUE);
diff --git a/libide/workbench/ide-workbench.h b/libide/workbench/ide-workbench.h
index d2a90fa..4dff307 100644
--- a/libide/workbench/ide-workbench.h
+++ b/libide/workbench/ide-workbench.h
@@ -34,6 +34,7 @@ typedef enum
{
IDE_WORKBENCH_OPEN_FLAGS_NONE = 0,
IDE_WORKBENCH_OPEN_FLAGS_BACKGROUND = 1 << 0,
+ IDE_WORKBENCH_OPEN_FLAGS_NO_VIEW = 1 << 1,
} IdeWorkbenchOpenFlags;
#define IDE_TYPE_WORKBENCH (ide_workbench_get_type())
diff --git a/plugins/command-bar/gb-vim.c b/plugins/command-bar/gb-vim.c
index 85b0413..664413a 100644
--- a/plugins/command-bar/gb-vim.c
+++ b/plugins/command-bar/gb-vim.c
@@ -616,7 +616,7 @@ load_split_async (GtkWidget *active_widget,
&file,
1,
"editor",
- IDE_WORKBENCH_OPEN_FLAGS_BACKGROUND,
+ IDE_WORKBENCH_OPEN_FLAGS_NO_VIEW,
NULL,
callback,
split_callback_data);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]