← Back to team overview

unity-design team mailing list archive

Re: Maximize and other window states

 

On Thu, Mar 3, 2011 at 5:01 AM, Owais Lone <hello@xxxxxxxxxxxxx> wrote:

>
>
> On Thu, Mar 3, 2011 at 2:48 AM, Saleel Velankar <svelanka@xxxxxxxxx>wrote:
>
>> On Thursday, March 03, 2011 1:33:34 AM Owais Lone wrote:
>> > Here is the idea,
>> >
>> > *  Every window can have two states (size and position on screen) and
>> the OS
>> > remebers these states for all the apps.
>>
>> The OS (atleast kubuntu) currently remembers unmaximized sizes <restore
>> state>
>> of windows.
>
>

Right, I want it to remember two not just one.


 > *  The maximize button switches between the two states instead of
>> switching
>> > between maximize and restore.
>>
>> This is what the maximize button does currently, 1 click to take up all
>> the
>> space, another click to go back to the unmaximized state.
>>
>
The idea is not to have it take up all the space but as much space as I tell
it to.
I should be able to have two restored states with different sizes/positions
and switch between them instead of switching between a restored state and an
always full size (maximized) state.



>  >     For example, my terminal window switches between 400x300 and 600x400
>> by
>> > clicking the maximize button. I can manually resize any of them and it
>> > should be remembered.
>> Yes, this works in kubuntu. My konsole is always 90x30 (1/4 of my
>> screensize)
>> when unmaximized. Changing this size 100x34 manually, the system remembers
>> my
>> size.
>
>
Probably I was not clear enough, let me try again.

For a minute forget about maximize and restore. Think of it this way, every
window has two states. A state is a combination of size and position. I can
switch between these two states using one of the three window control
buttons (currently the maximize button). I can also change one of the state
to fullsize and keep other as is, in which case it will act like traditional
maximize/restore condition.

For example, my terminal window has two states.

state1 : 100x60 with top-left @ 200x100
state2 : 500x400 with top-left @ 50x100

Clicking the button switches between these two states. I can manually resize
any of the states and both of them will be remembered. Say I resize the
window while in state1 to 200x180. Now, I'll be able to switch between
200x180 and 500x400.

Till now we have no concept of maximized windows. Now, I could resize one of
the states to the MAX possible size. Now the states look like this

state1: MAXSIZE
state2: 500x400 with top-left @ 50x100

This case is essentially the maximize/restore scenario.

I can again change state1 from MAX size back to 200x180 and now the
"maximize" button will again switch between the two non-max-sized states.



>> > *  If I want to maximize the terminal, I can drag the title bar to the
>> panel
>> > and I get a maximized window. Clicking the maximize button switches
>> between
>> > maximize and other state.
>> which is like clicking the restore button? In kubuntu you can drag a
>> window to
>> the top to full screen, left/right to halfscreen, any of the corners to
>> quarterscreen. If this is not currently in ubuntu, I would say it is a
>> feature
>> that really needs to be in.
>>
>
>> > *  If I drag the window down while it is maximized, the current state
>> looses
>> > the maximize status and I the maximize button again starts to switch
>> > between the two un-maximized states.
>> Again, I must be confused, but isnt this what happens currently?
>>
>> --Saleel
>
>
Restore button should switch between states, both can be unmaximized.
Dragging to and from the panel resizes the current state to max size and
back. The other state remains as is.

So, a state is just the size of a window. A window can have 2 sizes and we
can switch between them and one of the sizes can be the maximum possible
size (maximize).

It sounds complicated but really is not. We currently have two possible
states, MAX (fixed) and RESTORED (resizable). I'm saying, let's make MAX
resizable too and allow switching between two states, one of which may or
may not be the maximum possible size.


 Hope that clears it up a little.
--
Owais Lone
hello@xxxxxxxxxxxxx
http://owaislone.org/

Follow ups

References