Commit graph

192 commits

Author SHA1 Message Date
Dana Jansens
c7e813580f fix some math for frame elements 2007-05-22 15:43:28 +00:00
Dana Jansens
a0941554f6 fix showing the resize cursors at the right times.
fix losing the pre-size/position for windows mapped maximized or fullscreen states (and on restart)
2007-05-22 01:03:13 +00:00
Dana Jansens
b8f207892a some repositioning of frame elements for maximized windows.
fix clicking on borders not counting as the button in that corner for full max windows
disable the resize cursors for full max windows
2007-05-21 23:56:07 +00:00
Dana Jansens
3c3fc81b6c fix iconify animation to deal with the new frame layouting 2007-05-20 22:10:42 +00:00
Dana Jansens
4c7119f94f hide more decor whwn its not being used 2007-05-20 20:00:23 +00:00
Dana Jansens
598199425d make frame elements unmap when they arent in use 2007-05-20 14:56:09 +00:00
Dana Jansens
2cce02b1b9 fix for shaped windows 2007-05-20 07:19:52 +00:00
Dana Jansens
ef95323122 fix for variable sized border between titlebar and client 2007-05-20 07:09:31 +00:00
Dana Jansens
7472ed3557 fix new dimensions for maximized windows 2007-05-20 07:02:49 +00:00
Dana Jansens
1612a16e80 frame can handle having no border between the titlebar and the client now 2007-05-20 06:47:43 +00:00
Dana Jansens
1b7c2dac9e draw the handle without borders 2007-05-20 06:45:02 +00:00
Dana Jansens
0353b979c6 construct the titlebar without borders 2007-05-20 05:39:16 +00:00
Dana Jansens
96fbc0c622 set the resize cursors only when the window can be resized 2007-05-20 05:01:00 +00:00
Dana Jansens
ff681544e4 the left and right resize handles are the border, not grips 2007-05-20 04:44:58 +00:00
Dana Jansens
cf5c75420a stop using a border for the outer frame window. step 1 of borderless-ness. now transparent windows dont look so terrible, yay 2007-05-20 04:44:00 +00:00
Dana Jansens
2dada607c5 don't assume screen 0 2007-05-20 03:39:40 +00:00
Dana Jansens
8159ac5f86 i think this is good? can you run X at 32 bits? 2007-05-20 03:38:02 +00:00
Dana Jansens
05d93485b7 show and hide the new left/right resize bars at the right time 2007-05-19 23:43:44 +00:00
Dana Jansens
813d5c2ec9 add a root context that only applies to the root window. it fallsback to the desktop context, so desktop stuff applies to it too. 2007-05-19 22:07:15 +00:00
Dana Jansens
b26635fe99 add Left and Right contexts for resizing 2007-05-19 21:39:40 +00:00
Dana Jansens
ecdb7d5807 let you resize on the bottom of the frame when handle height is 0 in the theme 2007-05-19 21:03:51 +00:00
Dana Jansens
eb09b1873d move focus_cycle_indicator into its own file 2007-05-19 14:36:19 +00:00
Dana Jansens
718adbae65 move focus cycling into its own file 2007-05-19 14:15:28 +00:00
Dana Jansens
6142eb3a48 when done iconify animating, send a configure notify (this fixes kde's pager showing the window in the wrong place) 2007-05-18 15:20:03 +00:00
Dana Jansens
3ddc053ccd that broke flashing 2007-05-15 04:44:15 +00:00
Dana Jansens
6194c9796c save some rendering 2007-05-15 03:46:51 +00:00
Dana Jansens
ca88a21a39 where did those come from ? 2007-05-13 00:52:05 +00:00
Dana Jansens
5eba6007e7 change the "handle" context to "bottom". add a "top" context. make the top
and bottom contexts resize vertically in the default config file.
2007-05-12 17:54:55 +00:00
Dana Jansens
06181f9cc4 make the handle resize by default, and give the handle the resize south cursor 2007-05-12 17:32:10 +00:00
Dana Jansens
b63ad92cca give different border colors to active and inactive windows. adjust the xml theme format a little to make it BETTER. rawr. add some metadata standards too. 2007-05-11 22:18:43 +00:00
Dana Jansens
caba57b694 don't adjust the decorations while the server is grabbed, move it to client.c 2007-05-11 02:44:50 +00:00
Dana Jansens
6412fba7fd fix positioning of the icon 2007-05-09 23:52:53 +00:00
Dana Jansens
da22958786 fix hovering for corner buttons during full-max 2007-05-09 23:38:16 +00:00
Dana Jansens
66afa1dceb when a window is fully maxed, make clicking on the titlebar past the edge buttons count as clicking on the buttons 2007-05-09 22:21:28 +00:00
Dana Jansens
7f262bc2a0 add support for _NET_REQUEST_FRAME_EXTENTS 2007-05-09 20:13:20 +00:00
Dana Jansens
24f258e646 size the frame properly on mapping 2007-05-09 03:52:53 +00:00
Dana Jansens
193ca2197a further work to r6205. make the disabled titlebar buttons hide if they won't move other buttons around by doing so. 2007-05-09 03:41:48 +00:00
Dana Jansens
a430d7d3c8 hide titlebar buttons if that won't move other buttons 2007-05-09 00:57:37 +00:00
Dana Jansens
affc84cc96 more animation frames for iconifying, if your computer can do it 2007-05-06 05:32:07 +00:00
Dana Jansens
3409148047 fixes to the properties and net_supported. a bunch weren't supported. better checking at runtime to make sure everything is in the atom. 2007-05-05 18:19:26 +00:00
Dana Jansens
378adaa94f yay. way way cleaner code for iconify animations. let people show/hide the frame logically and it will do everything except during animations the frame will show what it needs to for visual display. 2007-05-05 16:53:48 +00:00
Dana Jansens
3e90c85df0 oops, i left in the really long animate time heh 2007-05-05 16:17:29 +00:00
Dana Jansens
b5e597f1b3 lots of fixes for the iconify animation. i think it should all work perfectly now ?
one change in action.c may affect bindings... THIS COULD BREAK CURRENT CONFIG FILES. ya.
so, if you used a press binding and it moved the window, no enter event will be generated for that anymore because you are holding down the button when the window moves. if you don't like that then use a click binding instead.

1
2007-05-05 16:16:26 +00:00
Dana Jansens
48a4eafb42 better iconify animation code. now it is time limited even under heavy load or whatever. yay 2007-05-05 14:36:41 +00:00
Dana Jansens
cf67851d6d dont retrurn a context while incoify animating 2007-05-05 13:29:01 +00:00
Dana Jansens
9ee9b70757 dont make two animations conflict 2007-05-05 13:12:04 +00:00
Dana Jansens
90fefcb78d maybe 1/5 of a second is better? 2007-05-05 06:03:50 +00:00
Dana Jansens
08e42acaad animate iconify/reestore. yeah. 2007-05-05 05:58:35 +00:00
Dana Jansens
564b727966 fix drawcontent=no resizing 2007-05-01 12:17:37 +00:00
Dana Jansens
55d2916c1e a whole lot of changes to the moving/resizing code. it was broken for non-northwest gravities. now it is not. at least, that is the idea. 2007-05-01 04:46:29 +00:00
Dana Jansens
d9204860c3 some more border fixups 2007-04-25 04:07:52 +00:00
Dana Jansens
89658cf648 the inner stuff was being placed wrong all this time.
also give the inner window a border. clicking to the left/right of the client now will be the client context rather than the frame. frame is just for grabbed buttons after all.
2007-04-25 03:52:33 +00:00
Dana Jansens
1582b36187 proper handling of the plate though, too 2007-04-24 20:48:28 +00:00
Dana Jansens
d3ca984e93 make the inner window work like the plate used to for actions 2007-04-24 20:42:34 +00:00
Dana Jansens
79cd7b4b2c dont cause focus change with enter events when youre already in the window 2007-04-24 20:39:59 +00:00
Dana Jansens
3595da62ca never mind on the hint idea, it was fun while it lasted. at least i know it is there now. 2007-04-24 01:16:33 +00:00
Dana Jansens
a806f05214 missing a thinger 2007-04-24 01:02:35 +00:00
Dana Jansens
a488360f48 add the PointerMotionHintMask everywhere, we dont need every mouse event 2007-04-24 01:00:27 +00:00
Dana Jansens
3993847dd4 set the eventmask on frame windows again.. 2007-04-24 00:07:28 +00:00
Dana Jansens
5316bc6c3e 1. remove some old event handling that was not used at all. yay less bandwidth.
2. make the client padding color show during resizes with drawContents off
2007-04-24 00:00:11 +00:00
Dana Jansens
d0013c0861 add a window between the frame and the plate for drawing the client border. this way when the client window disappears, nothing gets rendered underneath it. 2007-04-23 23:21:47 +00:00
Dana Jansens
06943a10ff back out r5812. you do want that there 2007-04-23 02:02:34 +00:00
Dana Jansens
806655e78a you cant grab substructureredirect on the plate. why was this even here? 2007-04-22 22:55:06 +00:00
Dana Jansens
7d1226c57c xflush after changing the focus decorations so it gets shown faster 2007-04-22 19:08:38 +00:00
Dana Jansens
939fbcfd31 add a comparitor to timers. use this in event.c to let you remove timers from the queue selectively for delayed focus 2007-04-22 04:16:00 +00:00
Dana Jansens
fda5ddfe16 excessive debug printing.. :) 2007-04-12 02:26:41 +00:00
Dana Jansens
eb2a0feb01 watch for reverttoparent reverting to the root window, which will create a DetailInferior focusin event on root.
adding some debug messages also which I am using..
2007-03-24 23:19:45 +00:00
Dana Jansens
e227ac841e we're only getting one unmap notify now, with the new event mask on the root window. we're not getting one for the frame window anymore. 2007-03-20 04:42:25 +00:00
Dana Jansens
5f7ffb00ba refix for managing iconic windows, without having the frame map which caused flashing.
instead, keep track of if the frame has been mapped yet. if it hasn't and it is getting hidden, then make sure to unmap the child.
2007-03-14 13:58:36 +00:00
Dana Jansens
2d03d09577 make frame and client window in a consistant mapped state when the window is grabbed 2007-03-14 02:23:50 +00:00
Dana Jansens
c018e21220 i rewrote handling of focus events. this is pretty much based on blackbox's current form, as well as reading the xlib programming manual at:
http://tronche.com/gui/x/xlib/events/input-focus/normal-and-grabbed.html

this may break for people. that'd be nice to hear about, so it can be fixed. but hopefully this is more robust. it sure is a lot more simple.
2007-03-12 05:25:34 +00:00
Dana Jansens
35ab1264ee remove the kde frame extents property, add the _NET_FRAME_EXTENTS property in its stead 2007-03-11 00:12:37 +00:00
Dana Jansens
56307d6077 a) remove the top_grip_height business from the theme
b) make the focus indicator based on border width and padding, not the handle height
c) add 2 more windows for the top corners for resizing, much easier to find them now. also base their width on padding, not the handle height or other weird things
2007-03-08 01:26:03 +00:00
Dana Jansens
b5af5ad3e8 was using paddingx for y-things, oops 2007-03-08 01:08:44 +00:00
Dana Jansens
ec304c9e43 scary commit..but here goes.
YOUR THEMES ARE NOW OFFICIALLY BROKEN.

Openbox has just moved it's theme format to an XML based one. The details of
this format can be found in data/themerc.xsd (and http://openbox.org/themerc.xsd

ALSO! This is very good and important and stuff! In the tools directory you
will find THEMETOXML ! This tool takes a themerc on stdin, and spits out
the same theme in theme.xml format. So this is all you need to do to update
your themes.

PLEASE NOTE: This themetoxml does _not_ install itself anywhere. It simply
builds and then lives out in its tools/themetoxml directory, and that's it. So
if you want to use it, that is where to find it.

In moving to the new XML format, a number of additions/changes to the theme
engine have been made. Themetoxml takes these into account and will set all
the new things appropriately to make your theme look the same as it always has.

New additions include..
* padding now has an horizontal and vertical component, instead of being one number
* menus can have different borders than windows (color and size)
* menu offset can now be negative. it's a little weird, but someone will want it no doubt
* fonts are no longer controled by the theme at all, however font shadowing is, and on that note..
* font shadows are now any color you want, not just black and white
* you can now set the shadow anywhere you can set the text's color, so you have more control, i.e. you can set shadow on active menu items but not inactive, or disabled, etc.
* every color now has an alpha channel. at the moment they don't do anything, besides the font shadow one, but it leaves room for future explorations. it is REALLY HIGHLY RECOMMENDED that you set the alpha to 255 all the time, until such time as it could be useful. otherwise one day your theme may turn awful for people.
* font colors are in the range 0-255, in case you were wondering, and they have to be specified in decimal
* if you'd like to change you font's you can do so in your configuration file. this is how it is going to stay. changing the font in the theme assumes too much about peoples eye sight and locality and stuff. it doesn't belong there, sorry. the system-wide default rc.xml includes the new font settings for your viewing pleasure, and ill drop an example of it below.
* shadows can now be positioned in any direction, they have both an x and a y offset which can be negative and positive. and offset of 0,0 will disable the shadow

This isn't a release or anything. If someone had some good ideas about the xml theme format, I'd like to hear them. But I don't think it will be changing much right now beyond where it is. I don't even know how the new functionality will play out for themers, so we'll see.

Whew.. I guess that's it. I'm not sure if I mentioned every little change or not, but oh well. Mileage may vary.. Please send any feedback.

Here's the font configuration example. Hopefully ObConf will let you set this real soon.

<theme>
...
  <font place="ActiveWindow">
    <name>arial,sans</name>
    <size>7</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
  <font place="InactiveWindow">
    <name>arial,sans</name>
    <size>7</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
  <font place="MenuTitle">
    <name>arial,sans</name>
    <size>8</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
  <font place="MenuItem">
    <name>arial,sans</name>
    <size>8</size>
    <weight>bold</weight>
    <slant>normal</slant>
  </font>
</theme>
2007-03-05 15:44:17 +00:00
Dana Jansens
80a6f06c0a support clients which use true transparency 32-bit visuals.
this requires that when a client is using a 32-bit visual, we have to
make the frame windows that sit underneath it to use the same visual (and a
colormap which matches it)
2007-03-02 06:01:16 +00:00
Mikael Magnusson
d3d4aa2987 80 cols 2006-11-15 21:12:06 +00:00
Mikael Magnusson
4d50b21835 update copyright step 1 2006-08-22 16:37:35 +00:00
Mikael Magnusson
7b7f158088 add a means to tell the timer destroy function not to fire when for example freeing its client frame 2006-08-17 20:16:02 +00:00
Mikael Magnusson
1b4ff4e93f close but not quite 2006-08-17 19:26:55 +00:00
Mikael Magnusson
a2f2fefeff add a client destructor to frame.c so it doesn't try to keep flashing a free'd frame 2006-08-17 16:16:37 +00:00
Mikael Magnusson
bc1f845ada resize label after background pixmap has updated to avoid display problems 2006-03-13 11:51:40 +00:00
Mikael Magnusson
1fad2da07f more 64 bit fixes 2005-10-07 17:00:35 +00:00
Mikael Magnusson
1cfb65bc40 add a config option hideDisabled in the theme section that hides disabled buttons instead of showing them as disabled, based on patch in bug 2005-07-14 13:44:33 +00:00
Mikael Magnusson
6ec1881579 c++ comments 2005-07-14 13:23:05 +00:00
Mikael Magnusson
b2b8ad92bf update copyright notices 2004-03-21 11:57:31 +00:00
Mikael Magnusson
335e8acbfc yay no tabs in the source 2004-03-21 01:03:00 +00:00
Mikael Magnusson
a5451fa6fa hopefully fix some stuff with kde tray icons 2004-02-24 20:11:36 +00:00
Dana Jansens
7ae62cc7ef dont make our frame windows override-redirect, so that configure requests are generated if apps try to configure our frame (eg. import -frame) 2003-12-22 18:16:47 +00:00
Dana Jansens
740c5b2a20 consistant glib type usage 2003-10-15 03:59:35 +00:00
Dana Jansens
c9233ddb23 unmap and map the client window when the frame is hidden/shown 2003-10-15 03:01:34 +00:00
Dana Jansens
377d20e7bf use RrColorPixel 2003-10-11 06:47:29 +00:00
Dana Jansens
d38c835cef when the frame is adjusted while the focus_cycle_target is that frame's client, then redraw the indicator 2003-10-09 19:18:20 +00:00
Dana Jansens
4a14e50ae7 indenting 2003-10-02 04:21:37 +00:00
Dana Jansens
f68cf94d35 support the _KDE_NET_WM_FRAME_STRUT hint 2003-09-24 17:17:59 +00:00
Dana Jansens
ebe3091560 const 2003-09-17 08:01:37 +00:00
Dana Jansens
16f46c296d no tabs 2003-09-17 07:44:49 +00:00
Dana Jansens
c4e4760c41 add copyright headers, adjust --version output to include copyright, and --help output to not include version output. 2003-09-17 07:32:52 +00:00
Dana Jansens
88b8398342 add the MoveResize context, which is used while doing a move/resize on a window. Actions bound in this context can be executed with the mouse during a move/resize on a window. 2003-09-17 06:44:04 +00:00
Dana Jansens
13bbcdd86b dont redraw the frames when changing their theme 2003-09-14 21:08:21 +00:00