Browse Source

Reorder tabs should now work.

merge-requests/365/head
eidheim 10 years ago
parent
commit
784456b7d3
  1. 19
      src/notebook.cc
  2. 1
      src/notebook.h

19
src/notebook.cc

@ -32,7 +32,15 @@ int Notebook::size() {
} }
Source::View* Notebook::get_view(int page) { Source::View* Notebook::get_view(int page) {
return source_views.at(page); return source_views.at(get_index(page));
}
size_t Notebook::get_index(int page) {
for(size_t c=0;c<hboxes.size();c++) {
if(page_num(*hboxes.at(c))==page)
return c;
}
return -1;
} }
Source::View* Notebook::get_current_view() { Source::View* Notebook::get_current_view() {
@ -177,15 +185,16 @@ bool Notebook::close_current_page() {
} }
} }
int page = get_current_page(); int page = get_current_page();
int index=get_index(page);
remove_page(page); remove_page(page);
auto source_view=source_views.at(page); auto source_view=source_views.at(index);
if(auto source_clang_view=dynamic_cast<Source::ClangView*>(source_view)) if(auto source_clang_view=dynamic_cast<Source::ClangView*>(source_view))
source_clang_view->async_delete(); source_clang_view->async_delete();
else else
delete source_view; delete source_view;
source_views.erase(source_views.begin()+ page); source_views.erase(source_views.begin()+index);
scrolled_windows.erase(scrolled_windows.begin()+page); scrolled_windows.erase(scrolled_windows.begin()+index);
hboxes.erase(hboxes.begin()+page); hboxes.erase(hboxes.begin()+index);
} }
DEBUG("end true"); DEBUG("end true");
return true; return true;

1
src/notebook.h

@ -14,6 +14,7 @@ class Notebook : public Gtk::Notebook {
public: public:
Notebook(Directories &directories); Notebook(Directories &directories);
Source::View* get_view(int page); Source::View* get_view(int page);
size_t get_index(int page);
int size(); int size();
Source::View* get_current_view(); Source::View* get_current_view();
bool close_current_page(); bool close_current_page();

Loading…
Cancel
Save