martyr-deepin / deepin-wm

Deprecated, consider create and maintain your own fork if you love it.
GNU General Public License v3.0
72 stars 30 forks source link

Windows Tiling out of Maximize #35

Open Foxei opened 6 years ago

Foxei commented 6 years ago

I your have a window in the maximized state you can't bring it back in the left/right tiling position. I think it should be small tweak to allow a window to be tiled without reset it state first and move it to the left/right afterwards.

aiamuzz commented 6 years ago

Its happening with a mouse drag ... the key is the point where the mouse cursor is holding the maximized window title bar that point of the cursor needs to touch(as if trying to fly out of the screen) on the left or right side of the screen, only then the tiling will effect.

Foxei commented 6 years ago

I know that. I’m not talking about the case there you are using a mouse. I referring using a touchpad gesture or keyboard shortcut to do so. This corresponds to a already closed issue from a while ago too. In the case you are using the qdbus command to tile your windows. You can‘t bring them into left/right mode if the window is maximized. Is that a intended behavior?

sonald commented 6 years ago

It's designed that way. the window manager does not save the previous state, but just the size as it was.

Foxei commented 6 years ago

This doesn't explain why the window manager don't allow to bring a window from maximized to left/right tiling with one command.

It's all about this function. Why does it return if the window isn't in normal state?

public void tile_active_window (Meta.TileSide side)
        {
            var gala = (wm as WindowManagerGala);
            var screen = gala.get_screen ();
            var display = screen.get_display ();
            var current = display.get_focus_window ();

            if (current == null || current.window_type != WindowType.NORMAL)
                return;

            current.tile_by_side (side);
        }
sonald commented 6 years ago

@Foxei because it keeps consistent with deepin-mutter's behaviour. and the above function is not a general way to do tiling, it is just exposed via dbus so that other components can interactive with wm. tile_active_window's only purpose is to do left/right tiling.

Foxei commented 6 years ago

@sonald okay, were do i find the general way of handling?