Dana Jansens [Thu, 28 Feb 2008 15:00:29 +0000 (10:00 -0500)]
If a window is maximized and has FUNC_MAXIMIZE disabled, still let it unmaximize. When normal hints change and we reconfigure, the w/h of the window may not have changed - rather the minw/maxh etc may have changed. So in client_try_configure always run through the code that checks them to see if the client should be resized or whatever.
Mikael Magnusson [Thu, 28 Feb 2008 16:54:49 +0000 (17:54 +0100)]
Update send-to-desktop menu in the client menu when ctrl-clicking and the client is still visible, ie toggling omnipresent.
Also indicates which is the current desktop by moving the omnipresent
icon to it when the window is omnipresent. Do some refactoring and
cleanup so the net change is removal of lines, go me.
Mikael Magnusson [Tue, 26 Feb 2008 13:49:49 +0000 (14:49 +0100)]
Various cleanups of event.c
Typo in debug message.
Improve some comments.
Space after comma.
Factor out compress_client_message_event.
Fold two ifs together.
Change duplicated case to fall through.
Pressing a button and leave/enter would cause the button to show hover mode, not pressed mode. Change the behaviour back to how it used to be for pressing (the button stays pressed when you move outside of its box) and make it work correctly, as commit 041d17373e04 also did for menus.
Reverting this behaviour because it seems impossible to do the enter/leave stuff correctly for the close button on maximized windows. Leaving the titlebar contexts doesn't give us an Enter event to go along with it, so even if we check all motion events, the button will flash unpressed when leaving the topright contexts.
Dana Jansens [Tue, 26 Feb 2008 05:59:25 +0000 (00:59 -0500)]
change the buttons in the kill prompt from "yes/no" which can be a little confusing to be more clear "cancel/force exit" so people won't do the wrong thing by accident so much
Dana Jansens [Fri, 22 Feb 2008 15:38:14 +0000 (10:38 -0500)]
Let ObPrompts be modal dialogs, and when they are transient for a window, make it transient for its entire group, so it can be stacked at the highest level above other transients
Dana Jansens [Thu, 21 Feb 2008 18:00:11 +0000 (13:00 -0500)]
If multiple key bindings at the same level are not able to be translated, then don't have them conflict and end up removing untranslated bindings from the key tree. This way they can be re-translated later.
This fixes keybindings getting lost when VMWare grabs the keyboard/pointer
Dana Jansens [Mon, 18 Feb 2008 22:12:38 +0000 (17:12 -0500)]
Fix button press behaviours. On LeaveNotify, make the button no longer pressed. On MotionNotify, only make it hovered if no button is pressed down. On EnterNotify, make it hovered or pressed as appropriate.
This fixes case where you left-click and hold on a button, then right click to open the menu - this used to leave the button in a pressed state.
Dana Jansens [Mon, 18 Feb 2008 20:55:59 +0000 (15:55 -0500)]
Grab key bindings with GrabModeSync, so that if they lead to a keyboard grab, then no keyboard events will be lost between the initial keybinding and the keyboard grab.
Dana Jansens [Thu, 14 Feb 2008 09:47:49 +0000 (10:47 +0100)]
Introducing the icon cache.
If an icon is the same as one in the cache, then it uses that one.
icons of different sizes (from the same client) are linked together into
one, and resizes of icons are cached and linked to all the various sizes.
so you only need one icon in memory for all your terminals now. ya!
Mikael Magnusson [Thu, 14 Feb 2008 14:46:02 +0000 (15:46 +0100)]
put the char member at the bottom of the struct so that it doesnt mess up alignment for the other members (assuming the compiler doesn't pad the struct appropriately anyways)
Dana Jansens [Tue, 12 Feb 2008 03:45:27 +0000 (22:45 -0500)]
don't ping everything all the time. yay. ping when you close, and if it doesn't reply then show the kill prompt. also show a more correct prompt for windows connecting from non-local machines - ask to disconnect them from the X server.
Dana Jansens [Thu, 7 Feb 2008 06:03:05 +0000 (01:03 -0500)]
if a prompt is already showing and you try show it again, then make it active. in the "kill this?" prompt use the window's original title without any of the openbox-appended-ness
Dana Jansens [Sun, 10 Feb 2008 21:49:16 +0000 (16:49 -0500)]
use memcpy's to make splitvertical gradient much faster - using log n memcpy's is much quicker than setting a pointer value n times
Here are some profiling results. splitvertical1 is the original code, splitvertical2 is some slight improvements in locality for it, and splitvertical3 is the new O(log n) memcpy code
i also tested this with 'time' to draw 1000 gradients, and the new code used approximately half the user time, and finished 10 seconds quicker. so yeah, it's magical and works well.