Steps to reproduce:
1. With no project open, open some files
2. Open project A
3. Without closing project A first, open project B
4. Close project B
5. The originally open files from (1) are gone

The problem is that when project A closes and all its files are closed, 
load_config() gets called which contains

configuration_save_default_session();

This saves the session with all files closed and replaces the original session.

This patch modifies the code to call configuration_save_default_session() only 
when there are some open tabs so the above problem gets solved.

Even though I was worried that this would break saving default session when all 
its files get closed and then a project is loaded, it doesn't seem to be 
the case (I haven't investigated deep enough why).

An alternative to this approach would be to pass a boolean as a parameter of 
quite many functions and propagate the information whether project close 
preceded its opening but it introduces a much bigger diff and makes the 
complicated session opening stuff even wilder.

Fixes #3897.
You can view, comment on, or merge this pull request online at:

  https://github.com/geany/geany/pull/3898

-- Commit Summary --

  * Fix a problem when multiple project opens clear the default session

-- File Changes --

    M src/project.c (3)

-- Patch Links --

https://github.com/geany/geany/pull/3898.patch
https://github.com/geany/geany/pull/3898.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3898
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany/pull/[email protected]>

Reply via email to