rxyhn / yoru

夜 - Yoru | Aesthetic and Beautiful Awesome Environment :first_quarter_moon:
GNU General Public License v3.0
3.46k stars 196 forks source link

Top Bar missing after opening video in fullscreen on maximised client [Bug] #160

Open GrohJann opened 1 year ago

GrohJann commented 1 year ago

Describe the bug When you open a video in fullscreen on a maximised client and then exit out of full screen the top bar is missing

Expected behavior the top bar should be shown again after leaving fullscreen mode

Screenshots If applicable, add screenshots to help explain your problem.

Distro (please complete the following information): i am on manjaro, but the bug should probably happen on all distros

Additional context The bug happens because in awesome/ui/panels/top-panel/init.lua the function remove_top_panel() hides the top panel when either the client is maximised or in fullscreen.

local function remove_top_panel(c)
    if c.fullscreen or c.maximized then
        c.screen.top_panel.visible = false
    else
        c.screen.top_panel.visible = true
    end
end

But the function is only executed when the client is put in fullscreen

client.connect_signal("property::fullscreen", remove_top_panel)

there are 2 ways of fixing this: 1) add

client.connect_signal("property::maximized", remove_top_panel)

below the line with fullscreen

2) remove

or c.maximized

from the function

this depends on how u want the ui to behave, but i believe the intended way would be option 2)

P.S.: in the same location there is a very similar function called add_top_panel() which also checks for both c.maximized and c.fullscreen. This might cause a bug aswell, but since I don't know what client.connect_signal("request::unmanage", add_top_panel) does, I am not able to test this assumption

Alex0os commented 10 months ago

Hey man, thank u, for me it worked. In the piece of code inside awesome/ui/panels/top-panel/init.lua that you described, I change the piece of code that said:

local function remove_top_panel(c) if c.fullscreen or c.maximized then c.screen.top_panel.visible = false else c.screen.top_panel.visible = true end end

to:

local function remove_top_panel(c) if c.fullscreen then c.screen.top_panel.visible = false else c.screen.top_panel.visible = true end end

And now the top-panel appears when I get out of fullscreen, thanks, It's been something that bodered me for days

tyrypyrking commented 1 month ago

Other way to fix this, would be adding panel upon fullscrean/maximized window going out of focus, which should be what desired (idk about multihead). Only change that needs to be made, is changing signal to unfocus.

    client.connect_signal("property::fullscreen", remove_top_panel)
    client.connect_signal("unfocus", add_top_panel)
tyrypyrking commented 1 month ago

request::unmanage is only being called when client is being closed. If we minimize it instead it will never be called. Ex.: steam games: by switching workspaces (my first day here, idk if this is the right word), the bar will be missing, and going back we have that fullscreen window minimized, so there should be no reason for it not to appear. This is clearly unintended and breaks the experience.