codic12 / worm

A dynamic, tag-based window manager written in Nim
MIT License
716 stars 24 forks source link

Respect dock windows better #16

Open codic12 opened 2 years ago

codic12 commented 2 years ago

We can treat them as special status clients and keep them raised.

Or the least we can do is at least respect their boundaries for maximization etc

codic12 commented 2 years ago

This was fixed when I did the rewrite in Nim way back in November, I think..

is0n commented 2 years ago

We can treat them as special status clients and keep them raised.

This was fixed when I did the rewrite in Nim way back in November, I think..

I've noticed that _NET_WM_WINDOW_TYPE_DOCK windows are not being raised. Instead they're just not being managed.

Is there any way of having them be raised?

codic12 commented 2 years ago

Yes, I just keep them unmanaged. Should they be raised? Probably, I can't think currently how to do it though. Perhaps when any window is moved / resized, at the end iterate through all the dock windows and call XRaiseWindow on all.

is0n commented 2 years ago

Yes, I just keep them unmanaged. Should they be raised?

Dock windows (in my experience) are kept:

  1. Floating
  2. Raised above other windows
codic12 commented 2 years ago

Perhaps when any window is moved / resized, at the end iterate through all the dock windows and call XRaiseWindow on all.

But this sounds kind of hacky, not sure how well it will work. but I guess I will try to implement this.

is0n commented 2 years ago

I don't know much about window managers but the simplest solution to me is to just prevent any dock windows from being unraised/lowered.

Or maybe when a normal window is being raised, you could raise them above other normal windows but below dock windows. 🤔

codic12 commented 2 years ago

I don't know much about window managers but the simplest solution to me is to just prevent any dock windows from being unraised/lowered.

That would be true, but I don't think there's any X call to do that.

Or maybe when a normal window is being raised, you could raise them above other normal windows but below dock windows.

Yes, but that doesn't solve the issue if you drag a window over the panel to obscure it. I think that raising dock windows on move/resize is the only trivial way to solve this but I'll look at what other WMs do.