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 #2310
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
Dana Jansens
e1b6c6dd90
use theme.show_handle
2003-09-10 17:03:29 +00:00
Dana Jansens
a72371b41f
bigtime theme changes. bigtime.
2003-09-08 18:38:52 +00:00
Dana Jansens
fafcb6e476
only remove one flash timer at a time, so all frames dont stop flashing just cuz a window closed
2003-09-03 21:24:37 +00:00
Dana Jansens
806a8c411f
add a reconfigure action, also reconfigure on SIGUSR2.
...
support reconfiguring throughout the entire codebase.
2003-09-03 18:11:39 +00:00
Dana Jansens
5dafdaf285
dont crash when flashing a window when it goes away, remove the timer when dying
2003-09-01 04:30:59 +00:00
Dana Jansens
bd70fff6f9
improved frame flashing code, can start and stop it on command
2003-09-01 03:41:53 +00:00
Dana Jansens
0621e22932
add code to flash the frame
2003-09-01 02:57:19 +00:00
Dana Jansens
9a0c31797a
fix border on shaded maximized windows
2003-08-27 18:38:36 +00:00
Dana Jansens
5186d04c61
better handling of maximizing, wrt changing decorations on the windows, and showing the correct decor for the max state especially for windows which dont change size (Xnest) when maximized cuz they are at their maximum size already
2003-08-25 08:49:48 +00:00
Dana Jansens
7e7efa5c1a
set the client decorations to match the frame's so that there is not thot to be changes later on whene there were actually none
2003-08-25 08:37:23 +00:00
Dana Jansens
a098c2437e
rename the 'root' context to 'desktop'
2003-08-20 23:13:40 +00:00
Dana Jansens
a09984bbc0
add an obscured flag that tracks if the frame is at all obscured
2003-08-20 23:01:56 +00:00
Dana Jansens
6375df675f
grab root mouse bindings on desktop windows also, since they are conceptually the desktop.
2003-08-20 06:17:43 +00:00
Dana Jansens
c94341602e
dont map the tl/tr invisible grips when the grip decors are turned off
2003-08-05 18:58:18 +00:00
Dana Jansens
2494762dbf
a couple frame layout bugfixes hidden inside all this.. wee
...
fixes for maximizing windows:
- when you toggledecor, it will reconfigure once, but the new constraints from the decor changes would not be in effect when the window was resized to the contranits. fixed by calling frame_adjust_area first thing ni client_configure_fulll with fake=TRUE which will recalc all the frame geometry without resizing/redrawing anything in the frame. this way the decor can take effect in the geometries.
- when maxed horizontally, make the client fill the screen, but dont do this by just making it wider than the screen, fit it to the screen and adjust the titlebar/handle as appropriate to keep it all on the screen.
- when maxed horizontally and vertically, remove the handle from the decorations
2003-08-05 10:31:20 +00:00
Dana Jansens
441041d17d
the grips go below the titlebar buttons
2003-08-02 06:40:01 +00:00
Dana Jansens
960a7f0184
invisible resizing areas/grips in the top corners of the window
2003-08-02 06:20:31 +00:00
Dana Jansens
c68f0a0f11
fix a long-lurknig gravity bug
2003-07-31 19:16:04 +00:00
Dana Jansens
54ad34a039
move the titlebar layout from the theme to the rc file
2003-07-30 16:25:08 +00:00
Dana Jansens
b8ba52fabc
code cleaning
2003-07-30 06:08:12 +00:00
Dana Jansens
742106511f
hover theme elements for window titlebar buttons
2003-07-28 19:21:45 +00:00
Dana Jansens
81af5a8b0c
add disabled buttons, instead of now showing buttons at all when they wont do anything, now show a disabled button instead. this severely breaks compatibility with blackbox themes since there is no good way to automiatically create a disabled button that i can think of, so if they dont exist in the theme you get black and white for the button.
...
when a window cant be resized, its handle is not removed but its grips are.
change allowing the user to disable individual decorations as that is overkill,
instead allow a toggle through the client.decorate boolean.
2003-07-10 23:27:02 +00:00
Dana Jansens
bddbe94328
make ob_state a function so it cant be changed outside of openbox.c
2003-07-10 19:06:00 +00:00
Dana Jansens
35418ca0fc
remove the ob_root var, its redundant of what Xlib already provides
2003-07-10 19:01:41 +00:00
Dana Jansens
7d943a950e
prefixing and capitalization for the Frame->ObFrame struct and the Context->ObFrameContext enum and its constants.
2003-07-10 07:16:19 +00:00
Dana Jansens
2477a38d2f
rename the Client struct to ObClient
2003-07-10 06:38:42 +00:00
Dana Jansens
276b2be581
add misc.h with some standard enumerations with proper prefixing and capitalizations.
...
use the new enums throughout.
provide keycodes and cursors through ob_cursor and ob_keycode functions, which use the new misc.h enums for picking the cursor and keycode.
2003-07-10 06:18:47 +00:00
Dana Jansens
069e9607fa
add decoration state to the frame struct. make client_configure adjust the frame if the decorations do not match between the client and the frame, so that when they change it can send a configurenotify to the client.
2003-06-21 18:59:35 +00:00
Dana Jansens
b1f5555218
put the render theme into a struct
2003-06-21 01:53:26 +00:00
Dana Jansens
a4a0cb7829
fixed to accomodate the changes to the render/ API.
2003-06-21 00:42:47 +00:00
Dana Jansens
cd12a2eae5
simply the render interface by not requiring the setting of all the areas. only take a w and h in paint(). best font layout ever.
2003-06-20 02:17:23 +00:00
Dana Jansens
6e93be1d2e
remove non-planar surfaces
2003-06-20 00:05:51 +00:00
Dana Jansens
b77e40e1c7
rename "Slit" to "Dock".
...
add config options to the rc3 for the dock.
create a window_map, add DockApps to the ObWindow types, use the window_map for translating windows into objects for event handling (only one lookup now) and remove the old maps (client_map, menu_map).
2003-05-16 18:10:10 +00:00
Dana Jansens
c4a5149016
add a slit to the kernel
2003-05-10 20:52:32 +00:00
Dana Jansens
16a9ac018e
let the frame hold a focus state so that it can lie.
...
dont focus windows while cycling, just highlight them as if they are focused
2003-04-25 19:55:41 +00:00
Dana Jansens
573aaf7ede
make the icon larger than the buttons by one pixel in each direction, this makes it as tall as the label and lets it fit more image in
2003-04-20 07:08:40 +00:00
Dana Jansens
7e8cdf1ab7
use the new cursor defn's
2003-04-17 05:29:11 +00:00
Dana Jansens
bb8b9ddbc5
pass the Client for frame_context cuz the client might be NULL
2003-04-13 08:36:38 +00:00
Dana Jansens
5cf61ee023
move the openbox engine into librender and the kernel. the theme is loaded and stored inside librender. the frame is decorated and managed inside the kernel.
2003-04-13 07:18:28 +00:00
Dana Jansens
bca8082d6d
use a context enum instead of quarks
2003-04-05 17:22:01 +00:00
Dana Jansens
8d19206866
was not using the pointer properly. leaving the value untouched
2003-03-31 07:49:40 +00:00
Dana Jansens
f8a47de5ec
merge the C branch into HEAD
2003-03-16 21:11:39 +00:00