compositor: Configurable behavior when window to be focused conflicts with fullscreen (#12033)
Renames `misc:new_window_takes_over_fullscreen` into `misc:on_focus_under_fullscreen` and implements the following behavior: - By default, when a tiling window is being focused on a workspace where a fullscreen/maximized window exists, respect the `misc:on_focus_under_fullscreen` config variable.
This commit is contained in:
parent
1c1746de61
commit
40d8fa8491
51 changed files with 1003 additions and 694 deletions
|
|
@ -1279,11 +1279,11 @@ inline static const std::vector<SConfigOptionDescription> CONFIG_OPTIONS = {
|
|||
.data = SConfigOptionDescription::SBoolData{true},
|
||||
},
|
||||
SConfigOptionDescription{
|
||||
.value = "misc:new_window_takes_over_fullscreen",
|
||||
.description = "if there is a fullscreen or maximized window, decide whether a new tiled window opened should replace it, stay behind or disable the fullscreen/maximized "
|
||||
"state. 0 - behind, 1 - takes over, 2 - unfullscreen/unmaxize [0/1/2]",
|
||||
.value = "misc:on_focus_under_fullscreen",
|
||||
.description = "if there is a fullscreen or maximized window, decide whether a tiled window requested to focus should replace it, stay behind or disable the "
|
||||
"fullscreen/maximized state. 0 - ignore focus request (keep focus on fullscreen window), 1 - takes over, 2 - unfullscreen/unmaximize [0/1/2]",
|
||||
.type = CONFIG_OPTION_INT,
|
||||
.data = SConfigOptionDescription::SRangeData{0, 0, 2},
|
||||
.data = SConfigOptionDescription::SRangeData{2, 0, 2},
|
||||
},
|
||||
SConfigOptionDescription{
|
||||
.value = "misc:exit_window_retains_fullscreen",
|
||||
|
|
@ -1946,12 +1946,6 @@ inline static const std::vector<SConfigOptionDescription> CONFIG_OPTIONS = {
|
|||
.type = CONFIG_OPTION_STRING_SHORT,
|
||||
.data = SConfigOptionDescription::SStringData{"left"},
|
||||
},
|
||||
SConfigOptionDescription{
|
||||
.value = "master:inherit_fullscreen",
|
||||
.description = "inherit fullscreen status when cycling/swapping to another window (e.g. monocle layout)",
|
||||
.type = CONFIG_OPTION_BOOL,
|
||||
.data = SConfigOptionDescription::SBoolData{true},
|
||||
},
|
||||
SConfigOptionDescription{
|
||||
.value = "master:slave_count_for_center_master",
|
||||
.description = "when using orientation=center, make the master window centered only when at least this many slave windows are open. (Set 0 to always_center_master)",
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include "../desktop/rule/windowRule/WindowRule.hpp"
|
||||
#include "../desktop/rule/layerRule/LayerRule.hpp"
|
||||
#include "../debug/HyprCtl.hpp"
|
||||
#include "../desktop/state/FocusState.hpp"
|
||||
#include "defaultConfig.hpp"
|
||||
|
||||
#include "../render/Renderer.hpp"
|
||||
|
|
@ -490,7 +491,7 @@ CConfigManager::CConfigManager() {
|
|||
registerConfigVar("misc:session_lock_xray", Hyprlang::INT{0});
|
||||
registerConfigVar("misc:close_special_on_empty", Hyprlang::INT{1});
|
||||
registerConfigVar("misc:background_color", Hyprlang::INT{0xff111111});
|
||||
registerConfigVar("misc:new_window_takes_over_fullscreen", Hyprlang::INT{0});
|
||||
registerConfigVar("misc:on_focus_under_fullscreen", Hyprlang::INT{2});
|
||||
registerConfigVar("misc:exit_window_retains_fullscreen", Hyprlang::INT{0});
|
||||
registerConfigVar("misc:initial_workspace_tracking", Hyprlang::INT{1});
|
||||
registerConfigVar("misc:middle_click_paste", Hyprlang::INT{1});
|
||||
|
|
@ -619,7 +620,6 @@ CConfigManager::CConfigManager() {
|
|||
registerConfigVar("master:new_on_active", {"none"});
|
||||
registerConfigVar("master:new_on_top", Hyprlang::INT{0});
|
||||
registerConfigVar("master:orientation", {"left"});
|
||||
registerConfigVar("master:inherit_fullscreen", Hyprlang::INT{1});
|
||||
registerConfigVar("master:allow_small_split", Hyprlang::INT{0});
|
||||
registerConfigVar("master:smart_resizing", Hyprlang::INT{1});
|
||||
registerConfigVar("master:drop_at_cursor", Hyprlang::INT{1});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue