PDA

View Full Version : Window Maximizing


EdLesMann
October 3rd, 2007, 05:35 PM
Hello,
I have been using Beryl for a little over a year now. I did a Beryl install when Ubuntu Feisty was released and I don't think I ever even updated it because everything just worked. It was wonderful.

There are a few things that I have reached the point of "can't live without" (like transparency; I use that ALL the time). There were a few things that got disabled and never used. There were also things I would turn on just to dazzle people who have never heard of Beryl (like the fire animations) and then turn them off.

Recently I discovered a bug in another product that the short story is, I have to run Ubuntu Gutsy as there is no easy way to fix the software in Feisty. I figured I would try out the Compiz-Fusion that Gutsy offers by default. I am impressed for the most part! So far I have found replacements for the effects I care little about (lost my beryl theme :( but found a really cool new theme:D), played around with a few effects I never used before and I have almost everything on my "can't live without" list. There is only one very important thing that I can not seem to find: maximizing any and every window by double clicking (or some other means).

I enabled the GL Desktop configuration tool (System-Preferences-GL Desktop) and turned on the "Title bar action" : "Double click titlebar to perform this action: Maximize". This works on a standard window that has the minimize and maximize buttons. It doesn't work on windows that don't have those actions!

While I have MANY examples, I will use one that I know almost everyone has. System-Administration-Synaptic. When Synaptic has loaded hit "Reload". You will see the "Downloading Package Information" window. Double clicking does not expand it. I can find no way of expanding it. Beryl expanded that with a double click just fine!

OK, so why would I want to expand that window. Truth is, I don't care about that one. What I do care about are other windows like it. Here is one I use all the time as a programmer which some people may not have. Open eclipse. Then do Help->About. If you have used eclipse then you know that to find out what plugins are installed/active and to find out information about plugins (like highlighting for C, PHP, Bash, ect) you go to this help menu. When I go to this menu I get a menu that shows up about 4 mouse widths across and about 8 mouse heights down (the mouse pointer was an easy measurment:p). The menu is FAR smaller then the information being displayed. I can't view the information I need to view. I have a few other programs in similar situations. Expanding this window is very much needed!

Under Beryl, I double click and it expanded every window including the one in Synaptic and the one in Eclipse. I searched Google and came up short. I have looked through every menu I can find and I have not found anything that leads me to a solution.

Can anyone help out?

Thank you!
EdLesMann

maniac
October 4th, 2007, 05:33 PM
Hello,
I have been using Beryl for a little over a year now. I did a Beryl install when Ubuntu Feisty was released and I don't think I ever even updated it because everything just worked. It was wonderful.

There are a few things that I have reached the point of "can't live without" (like transparency; I use that ALL the time). There were a few things that got disabled and never used. There were also things I would turn on just to dazzle people who have never heard of Beryl (like the fire animations) and then turn them off.

Recently I discovered a bug in another product that the short story is, I have to run Ubuntu Gutsy as there is no easy way to fix the software in Feisty. I figured I would try out the Compiz-Fusion that Gutsy offers by default. I am impressed for the most part! So far I have found replacements for the effects I care little about (lost my beryl theme :( but found a really cool new theme:D), played around with a few effects I never used before and I have almost everything on my "can't live without" list. There is only one very important thing that I can not seem to find: maximizing any and every window by double clicking (or some other means).

I enabled the GL Desktop configuration tool (System-Preferences-GL Desktop) and turned on the "Title bar action" : "Double click titlebar to perform this action: Maximize". This works on a standard window that has the minimize and maximize buttons. It doesn't work on windows that don't have those actions!

While I have MANY examples, I will use one that I know almost everyone has. System-Administration-Synaptic. When Synaptic has loaded hit "Reload". You will see the "Downloading Package Information" window. Double clicking does not expand it. I can find no way of expanding it. Beryl expanded that with a double click just fine!

OK, so why would I want to expand that window. Truth is, I don't care about that one. What I do care about are other windows like it. Here is one I use all the time as a programmer which some people may not have. Open eclipse. Then do Help->About. If you have used eclipse then you know that to find out what plugins are installed/active and to find out information about plugins (like highlighting for C, PHP, Bash, ect) you go to this help menu. When I go to this menu I get a menu that shows up about 4 mouse widths across and about 8 mouse heights down (the mouse pointer was an easy measurment:p). The menu is FAR smaller then the information being displayed. I can't view the information I need to view. I have a few other programs in similar situations. Expanding this window is very much needed!

Under Beryl, I double click and it expanded every window including the one in Synaptic and the one in Eclipse. I searched Google and came up short. I have looked through every menu I can find and I have not found anything that leads me to a solution.

Can anyone help out?

Thank you!
EdLesMann
Actually, I think this was a bug in Beryl. Applications can tell the WM that they don't want to be maximized; and the decorator should hide (or at least disable) the maximize button in that case.
Please post an xprop output for such a non-maximizable window.

hudy
December 7th, 2007, 01:47 AM
This is the only post I've found thus far about this in these forums - is there no answer to re-enabling this behavior?

I'm with EdLesMann. This is not a bug.

If a window is resizable, then it should be maximizable, whether there's a little control box in the corner of the window or not. I'd also support EdLesMann's position that every window should be maximizable, whether resizable or not. Every window manager that I've adopted for full-time use supports this to one or the other extent - including VirtuaWin & other 'virtual desktop' software for win32. VirtuaWin is especially nice.

The alternative is to drag such a small window to a corner of the screen, then move the mouse to the opposite corner of the window, make the resize cursor appear through dainty micro-manipulation of the mouse pointer, and drag to enlarge the window. These 'micro-movements' (as window borders are only a few pixels wide) are beyond an inconvenience. They slow me down, unacceptably so.

Before anyone suggests larger window borders, I submit that such a change would only be fixing the symptom, not the root cause.

Developers: If you want to target mouse-users, then by all means make the default the new, more limited behavior, but for Pete's sake please don't remove the capability entirely! Think of your users who need accessibility assistance. Think of the most advanced users you have, who insist on lightning-fast user interfaces. If Compiz is dumbed-down, and advanced features are removed, the advanced users will remove themselves too.

I mourn the passing of Beryl at this point. I'm sticking with Compiz (Fusion) in the hopes that this will be corrected at some point, but like EdLesMann, I can't accept it forever. It's nearly maddening, I'm telling you :-)

I have a single-key shortcut that maximizes windows, but for 80% of the windows where I use it it now does nothing. On a 16x12 screen, these windows are /small/, too.

"Help!"

Here's xprop for a resizable window. Below it, you'll find xprop for a window
(Eclipse, Help->About) that is not resizable, but could be, and perhaps should
be...

Thanks for reading this.

/Bill
================================================== ==============================

> xprop (resizable)
_NET_WINDOW_DECOR(INTEGER) = 20070319, 17042210, 8, 8, 30, 8, 0, 0, 30, 0, 0, 0, 589909, -20, -42, 0, 0, 20, 42, 0, 0, 594021, 0, -42, 0, 0, 815, 42, 20, 0, 589926, 0, -42, 22, 0, 22, 42, 835, 0, 589977, -20, 0, 0, 21, 20, 22, 0, 53, 594089, 0, 0, 0, 21, 815, 22, 20, 53, 589994, 0, 0, 22, 21, 22, 22, 835, 53, 600213, -20, 0, 0, 0, 20, 11, 0, 42, 600230, 0, 0, 22, 0, 22, 11, 835, 42
XKLAVIER_STATE(INTEGER) = 0, 2
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_DESKTOP(CARDINAL) = 0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MODAL
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
window id # of group leader: 0x4800001
_NET_FRAME_EXTENTS(CARDINAL) = 8, 8, 30, 8
_NET_FRAME_WINDOW(WINDOW): window id # 0x1204f52
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_STICK, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x5e, 0x0, 0x0
WM_TRANSIENT_FOR(WINDOW): window id # 0x48333e3
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 75707729
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DIALOG
_NET_WM_USER_TIME(CARDINAL) = 2990681625
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x4833550
WM_CLIENT_LEADER(WINDOW): window id # 0x4800001
_NET_WM_PID(CARDINAL) = 29995
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "hostname"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified location: 0, 0
program specified minimum size: 1 by 1
window gravity: NorthWest
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "<unknown>", "RationalSDP"
WM_ICON_NAME(STRING) = "About IBM Rational Software Development Platform Features "
_NET_WM_ICON_NAME(UTF8_STRING) = 0x41, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x49, 0x42, 0x4d, 0x20, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20
WM_NAME(STRING) = "About IBM Rational Software Development Platform Features "
_NET_WM_NAME(UTF8_STRING) = 0x41, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x49, 0x42, 0x4d, 0x20, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x20

================================================== ==============================

> xprop (non-resizable)
_NET_WINDOW_DECOR(INTEGER) = 20070319, 17042050, 8, 8, 30, 8, 0, 0, 30, 0, 0, 0, 589909, -20, -42, 0, 0, 20, 42, 0, 0, 594021, 0, -42, 0, 0, 676, 42, 20, 0, 589926, 0, -42, 22, 0, 22, 42, 696, 0, 589977, -20, 0, 0, 21, 20, 22, 0, 53, 594089, 0, 0, 0, 21, 676, 22, 20, 53, 589994, 0, 0, 22, 21, 22, 22, 696, 53, 600213, -20, 0, 0, 0, 20, 11, 0, 42, 600230, 0, 0, 22, 0, 22, 11, 696, 42
XKLAVIER_STATE(INTEGER) = 0, 2
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_DESKTOP(CARDINAL) = 0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MODAL
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
window id # of group leader: 0x4800001
_NET_FRAME_EXTENTS(CARDINAL) = 8, 8, 30, 8
_NET_FRAME_WINDOW(WINDOW): window id # 0x1204f47
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_STICK, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x1a, 0x0, 0x0
WM_TRANSIENT_FOR(WINDOW): window id # 0x4800140
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 75707365
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DIALOG
_NET_WM_USER_TIME(CARDINAL) = 2990712936
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x48333e4
WM_CLIENT_LEADER(WINDOW): window id # 0x4800001
_NET_WM_PID(CARDINAL) = 29995
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "hostname"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified location: 0, 0
program specified minimum size: 676 by 324
program specified maximum size: 676 by 324
window gravity: NorthWest
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "<unknown>", "RationalSDP"
WM_ICON_NAME(STRING) = "About IBM Rational Software Development Platform "
_NET_WM_ICON_NAME(UTF8_STRING) = 0x41, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x49, 0x42, 0x4d, 0x20, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x20
WM_NAME(STRING) = "About IBM Rational Software Development Platform "
_NET_WM_NAME(UTF8_STRING) = 0x41, 0x62, 0x6f, 0x75, 0x74, 0x20, 0x49, 0x42, 0x4d, 0x20, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x20

Deciare
December 7th, 2007, 02:29 AM
Actually, I think this was a bug in Beryl. Applications can tell the WM that they don't want to be maximized; and the decorator should hide (or at least disable) the maximize button in that case.
Please post an xprop output for such a non-maximizable window.
Compiz doesn't allow any Dialog-type window to be maximised, including those that have maximise buttons with KWin. I notice that Metacity doesn't provide maximise buttons for dialog windows either, so it may not strictly be a Compiz issue, but as the earlier posters noted, it seems to make little sense for a resizable window to be impossible to maximise.

Here's the xprop output of Konsole's "Edit Current Profile..." window, whose type is Dialog:
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_STATE(ATOM) =
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 5, 5, 25, 5
_NET_FRAME_EXTENTS(CARDINAL) = 5, 5, 25, 5
_NET_WM_DESKTOP(CARDINAL) = 0
_NET_WM_USER_TIME(CARDINAL) = 857982816
WM_TRANSIENT_FOR(WINDOW): window id # 0x2200004
_NET_STARTUP_ID(UTF8_STRING) = 0x30
_NET_WM_ICON(CARDINAL) = [snip]
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 857982905
XdndAware(ATOM) = BITMAP
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INF O) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
_NET_WM_NAME(UTF8_STRING) = 0x45, 0x64, 0x69, 0x74, 0x20, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x22, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x22, 0x20, 0x2d, 0x20, 0x4b, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65
WM_CLIENT_LEADER(WINDOW): window id # 0x2200006
WM_WINDOW_ROLE(STRING) =
_NET_WM_PID(CARDINAL) = 8141
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DIALOG, _NET_WM_WINDOW_TYPE_NORMAL
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x1, 0x1e, 0x0, 0x0
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING,_NET_WM_CONTEXT_HELP
WM_NAME(STRING) = "Edit Profile "Shell" - Konsole"
WM_LOCALE_NAME(STRING) = "en_CA.UTF-8"
WM_CLASS(STRING) = "konsole", "Konsole"
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
bitmap id # to use for icon: 0x220000b
bitmap id # of mask for icon: 0x220595a
window id # of group leader: 0x2200006
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified minimum size: 436 by 529
window gravity: NorthWest
WM_CLIENT_MACHINE(STRING) = "raravis"
No maximise functionality is available for this window even though it is resizable, and KWin allows it to be maximised.

For comparison, here's the output from Audacious' Preferences window, whose type is Normal:
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_STATE(ATOM) =
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 5, 5, 25, 5
_NET_FRAME_EXTENTS(CARDINAL) = 5, 5, 25, 5
_NET_WM_DESKTOP(CARDINAL) = 0
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
bitmap id # to use for icon: 0x260001e
bitmap id # of mask for icon: 0x2600025
window id # of group leader: 0x2600001
XdndAware(ATOM) = BITMAP
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INF O) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 858038294
_NET_WM_ICON(CARDINAL) = [snip]
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 40044321
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_USER_TIME(CARDINAL) = 858038213
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x2630720
WM_CLIENT_LEADER(WINDOW): window id # 0x2600001
_NET_WM_PID(CARDINAL) = 8455
WM_LOCALE_NAME(STRING) = "en_CA.UTF-8"
WM_CLIENT_MACHINE(STRING) = "raravis"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified minimum size: 719 by 549
window gravity: NorthWest
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING,_NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "audacious", "Audacious"
WM_ICON_NAME(STRING) = "Audacious Preferences"
_NET_WM_ICON_NAME(UTF8_STRING) = 0x41, 0x75, 0x64, 0x61, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73
WM_NAME(STRING) = "Audacious Preferences"
_NET_WM_NAME(UTF8_STRING) = 0x41, 0x75, 0x64, 0x61, 0x63, 0x69, 0x6f, 0x75, 0x73, 0x20, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73
Maximise functionality is available for this window.

maniac
December 10th, 2007, 06:35 AM
hudy's window is neither maximizable nor resizable because the app specified a minimum window size and a maximum window size that equal each other.