8 years agoAdd support for loading SVG icons using librsvg.
Dana Jansens [Sun, 11 Aug 2013 00:46:27 +0000 (20:46 -0400)]
Add support for loading SVG icons using librsvg.

This adds a configure option --disable-librsvg, but defaults to
using the library if it is present during configure.

When enabled, Openbox will attempt to load svg image files using
the library, similar to how Imlib2 is used for other image

Since librsvg uses the libXml2 library, their errors end up in
the same global namespace as Openbox config file parsing. To
avoid this, we reset the libXml current error whenever we start
loading a file, and save the last error that occurred when we
are finished, by storing the error in the ObtXmlInst.

8 years agoAdd autopoint to README.GIT list of packages
Dana Jansens [Sat, 10 Aug 2013 16:29:26 +0000 (12:29 -0400)]
Add autopoint to README.GIT list of packages

8 years agoFix a typo that prevented setting client size for the height only (???)
Mikael Magnusson [Sun, 11 Aug 2013 00:07:32 +0000 (02:07 +0200)]
Fix a typo that prevented setting client size for the height only (???)

8 years agoConvert two // to /*
Mikael Magnusson [Sun, 11 Aug 2013 00:03:23 +0000 (02:03 +0200)]
Convert two // to /*

8 years agoConstrain the moveresize popup to the monitor which has the client
Mikael Magnusson [Tue, 23 Apr 2013 20:29:58 +0000 (22:29 +0200)]
Constrain the moveresize popup to the monitor which has the client

8 years agoRename bounds to monitor in place_overlap and move a const
Mikael Magnusson [Tue, 23 Apr 2013 19:34:58 +0000 (21:34 +0200)]
Rename bounds to monitor in place_overlap and move a const

9 years agoFix least overlap to fall back to the chosen monitor, not (0,0).
Mikael Magnusson [Thu, 18 Apr 2013 13:36:56 +0000 (15:36 +0200)]
Fix least overlap to fall back to the chosen monitor, not (0,0).

9 years agoWe forgot to count the dock in LeastOverlap
Mikael Magnusson [Wed, 17 Apr 2013 11:42:27 +0000 (13:42 +0200)]
We forgot to count the dock in LeastOverlap

9 years agoRemove some evil tabs
Mikael Magnusson [Tue, 11 Jan 2011 17:12:01 +0000 (18:12 +0100)]
Remove some evil tabs

9 years agoRefactor the per-app parsing code into a helper function and reduce nesting by 2...
Dana Jansens [Tue, 2 Oct 2012 02:04:14 +0000 (22:04 -0400)]
Refactor the per-app parsing code into a helper function and reduce nesting by 2 levels

9 years agoMake MoveResizeTo work on the dimensions of the frame, not the client
Dana Jansens [Sun, 7 Oct 2012 01:35:42 +0000 (21:35 -0400)]
Make MoveResizeTo work on the dimensions of the frame, not the client

9 years agoAllow application rules to control window size (Fix bug 4661)
Dana Jansens [Tue, 2 Oct 2012 01:43:56 +0000 (21:43 -0400)]
Allow application rules to control window size (Fix bug 4661)

Use the following in your per-app rules:


A and B can be integer values to specify a size in pixels. They can also be
percentages or fractions to be relative to the size of the monitor the window
is placed on.

9 years agoRemove now-unused config_place_center option.
Dana Jansens [Tue, 2 Oct 2012 02:39:39 +0000 (22:39 -0400)]
Remove now-unused config_place_center option.

The new LeastOverlap placement doesn't use this option, and it kind of defeats
the purpose of the algorithm.

9 years agoWhen an undecorated window is maximized give it a 1px border at the top (Fix bug...
Dana Jansens [Mon, 1 Oct 2012 04:32:39 +0000 (00:32 -0400)]
When an undecorated window is maximized give it a 1px border at the top (Fix bug 5506)

We want to keep some way for a user to re-decorate the window with the default
bindings. However with a large border width, the top border is much bigger than
it needs to be! So make it fixed at 1px large in this case.

9 years agoAllow non-interactive focus cycling.
Dana Jansens [Tue, 2 Oct 2012 02:32:59 +0000 (22:32 -0400)]
Allow non-interactive focus cycling.

Adds an <interactive>bool</interactive> option to the NextWindow and
PreviousWindow actions. When it is false, the action is not interactive and will
immediately switch focus to whatever the next focus target is.

Removing the "interactive" flag from the focus_cycle() method, as it was unused
previously, and the new code does not make use of it either. In order to be
non-interactive it simply starts a focus_cycle then immediately ends it when the
action ends.

The "interactive" flag in focus_cycle() forced a linear cycling order which may
not be what you want, so the new method is preferrable anyhow.

9 years agoDon't let autostart checking for background-setting tools end up in logs (Fix bug...
Dana Jansens [Mon, 1 Oct 2012 04:53:57 +0000 (00:53 -0400)]
Don't let autostart checking for background-setting tools end up in logs (Fix bug 5186)

9 years agoAdd a $pointer execute variable substitution and make $wip and $pid consistent (Fix...
Dana Jansens [Tue, 2 Oct 2012 00:20:15 +0000 (20:20 -0400)]
Add a $pointer execute variable substitution and make $wip and $pid consistent (Fix bug 5758)

$wip and $pid would output values for the current target window if there was
one, but output nothing at all if there wasn't making the output difficult to
parse. Changed to make these always output a 0 if there is no target.

Added a $pointer variable that is replaced with the x and y coordiates of the
pointer, separated by a space.

Inspired by the work of Denis Kaganovich <mahatma@eu.by>.

9 years agoRemove unused variable
Dana Jansens [Mon, 1 Oct 2012 05:04:41 +0000 (01:04 -0400)]
Remove unused variable

9 years agoFix duplicate const warning
Dana Jansens [Tue, 2 Oct 2012 15:36:31 +0000 (11:36 -0400)]
Fix duplicate const warning

9 years agoFix some namings and xml formatting in rc.xml and rc.xsd
Denis Kaganovich [Sun, 7 Oct 2012 00:53:36 +0000 (20:53 -0400)]
Fix some namings and xml formatting in rc.xml and rc.xsd

9 years agoWhen a window is the focus target and it is removed from the focus order, reset the...
Dana Jansens [Mon, 1 Oct 2012 03:42:16 +0000 (23:42 -0400)]
When a window is the focus target and it is removed from the focus order, reset the focus cycling (Fix bug 5410)

We were only doing this if a dialog was showing. But if it's the target, then
a dialog is not relevant, we should always recompute the focus cycling. This
avoids a crash when not using a dialog and closing a window during cycling.

9 years agoFix negative ResizeRelative values with terminal windows (Fix bug 5228)
Dana Jansens [Mon, 1 Oct 2012 04:11:04 +0000 (00:11 -0400)]
Fix negative ResizeRelative values with terminal windows (Fix bug 5228)

Inspired by patches from Brian Mock <mock.brian@gmail.com>.

9 years agoGet the window's title in the fake-managed case since we apply app rule matching...
Dana Jansens [Mon, 1 Oct 2012 03:24:45 +0000 (23:24 -0400)]
Get the window's title in the fake-managed case since we apply app rule matching (Fix bug 5277)

9 years agoPrint error message to stderr (Fix bug 5731)
Xin Wang [Thu, 16 Aug 2012 23:57:08 +0000 (07:57 +0800)]
Print error message to stderr (Fix bug 5731)

As stdout is redirected to /dev/null by some DMs, we need to print error
messages to stderr.

9 years agoAddress a couple bugs in rc.xsd (Fix bug 5746)
Denis Kaganovich [Mon, 1 Oct 2012 03:00:24 +0000 (23:00 -0400)]
Address a couple bugs in rc.xsd (Fix bug 5746)

9 years agoMake .desktop files obey specs where possible (Fix bug 5737)
Julian Ospald [Mon, 1 Oct 2012 02:54:18 +0000 (22:54 -0400)]
Make .desktop files obey specs where possible (Fix bug 5737)

9 years agoAllow windows created by execute actions to steal focus if the user isn't interacting...
Dana Jansens [Mon, 1 Oct 2012 02:41:34 +0000 (22:41 -0400)]
Allow windows created by execute actions to steal focus if the user isn't interacting with another window (Fix bug 5419).

When the execute action was run, we would say that the user had used the focused
at that time. Then when a new window popped up, we'd think the user was busy in
the current window and prevent the new one from steal focus.

Now the execute action does not update the "user interacted with the focused
window" timestamp anymore. So, if they aren't currently typing in some window
when they trigger an execute action, and the window appears, it will steal

9 years agoAllow window matching based on the group leader's name and class (Fix bug 5721)
Dana Jansens [Mon, 1 Oct 2012 02:16:10 +0000 (22:16 -0400)]
Allow window matching based on the group leader's name and class (Fix bug 5721)

In Openbox 3.4 we used the group leader's WM_CLASS value when it was available.
This prevents windows in the group from overriding with a specific value,
however which is bad. More rationale can be found in

Some applications (eg. Firefox) use command line flags to set the WM_CLASS
property on the group leader but do not change the property on the mapped
windows themselves. This makes matching these windows not possible in Openbox

We resolve this by exposing the group's WM_CLASS values alongside the individual
window's values. We add _OB_APP_GROUP_NAME and _OB_APP_GROUP_CLASS properties
along with "groupname" and "classname" attributes for the rc.xml application

9 years agoAllow loading of menu files outside of your XDG_CONFIG_HOME (Fix bug 5711)
Dana Jansens [Mon, 1 Oct 2012 01:23:58 +0000 (21:23 -0400)]
Allow loading of menu files outside of your XDG_CONFIG_HOME (Fix bug 5711)

When the given file name can not be found in your XDG_CONFIG_HOME, ie in
 ~/.config/openbox, then try the file name directly.

This means if you specify a menu file such as "/home/dana/helloworld.xml",
openbox will try, in order:
1) ~/.config/openbox/home/dana/helloworld.xml
2) /home/dana/helloworld.xml

And it will load the file you meant when it tries the second one.

9 years agoMake LeastOverlap placment replace the behaviour of Smart and address style nits
Dana Jansens [Mon, 1 Oct 2012 01:12:07 +0000 (21:12 -0400)]
Make LeastOverlap placment replace the behaviour of Smart and address style nits

9 years agoLeastOverlap placement option (Fix bug 5385)
Ian Zimmerman [Mon, 1 Oct 2012 00:51:01 +0000 (20:51 -0400)]
LeastOverlap placement option (Fix bug 5385)

Adds a new placement algorithm that finds a place on the monitor that overlaps
the least amount of windows as possible.

Original patch by Ian Zimmerman <itz@buug.org>.
Port to Openbox 3.5 by David Vogt <dv@adfinis.c>.

9 years agoUse the nearest monitor when the search query rect does not intersect any monitor...
Dana Jansens [Mon, 1 Oct 2012 00:29:45 +0000 (20:29 -0400)]
Use the nearest monitor when the search query rect does not intersect any monitor (Fix bug 5500)

Previously we would try to find the primary monitor and use that when the search
was outside any monitor. However, if the primary monitor is chosen by the mouse
position and the mouse is not inside any monitor, we enter infinite recursion
trying to find the primary monitor.

The nearest monitor is a better metric anyhow, and this ensures
screen_find_monitor() is never recursive as it always returns a value without
depending on other screen.c methods.

9 years agoDon't edge-warp with the cursor based on a monitor that does not contain the pointer...
Dana Jansens [Sun, 30 Sep 2012 21:08:05 +0000 (17:08 -0400)]
Don't edge-warp with the cursor based on a monitor that does not contain the pointer (Fix bug 4992)

9 years agoPick the monitor most relevant to a rectangle more cleverly.
Dana Jansens [Sun, 16 Oct 2011 03:04:21 +0000 (23:04 -0400)]
Pick the monitor most relevant to a rectangle more cleverly.

When monitors overlap (this happens with cloning), we were choosing a monitor
to associate with a window, for maximization for example, somewhat arbitrarily.

Now we have a more clever algorithm that considers the configured primary
monitor first, and that does not prefer monitors based on their sizes, but only
how much of the window is in the monitor, excluding parts that were claimed
by another monitor already.

9 years agoTheme button-specific values should fallback to the button general values consistentl...
Hanno Meyer-Thurow [Sun, 30 Sep 2012 22:46:10 +0000 (18:46 -0400)]
Theme button-specific values should fallback to the button general values consistently (Fix bug 5443)

9 years agoPrompt should not always use the currently focused button as its result (Fix bug...
Dana Jansens [Sun, 30 Sep 2012 22:09:37 +0000 (18:09 -0400)]
Prompt should not always use the currently focused button as its result (Fix bug 5518)

9 years agoUpdate manpage to current version. (Fix bug 5444)
John Vogel [Sat, 17 Mar 2012 16:33:24 +0000 (12:33 -0400)]
Update manpage to current version. (Fix bug 5444)

9 years agoDon't strip leading whitespace from menu labels (Fix bug 4782)
Dana Jansens [Sun, 30 Sep 2012 19:50:26 +0000 (15:50 -0400)]
Don't strip leading whitespace from menu labels (Fix bug 4782)

9 years agoCreate some Openbox release scripts
Dana Jansens [Mon, 4 Oct 2010 18:33:16 +0000 (14:33 -0400)]
Create some Openbox release scripts

release/bugs: Prints a list of bugs that are mentioned in git commits for a
  git revision, since previous release.
  - Very useful for updating the CHANGELOG file!

release/go: Tests a git revision for correct compilation, and prepares files
  for release.
  - Makes the tarball
  - Makes a GPG signature for the tarball
  - Tags the release
  - Spits out URLs to edit and gives the changelog for copy/paste.

release/email: Sends an email to the Openbox mailing list with the changelog
  and details about the release.  Call this with the same parameters used for
  running release/go once it is finished, and the files are uploaded, etc.
  - Also emails mikachu re freshmeat.net

9 years agoAllow client destroy notify functions to be removed based on the data associated...
Dana Jansens [Fri, 29 Jul 2011 19:59:22 +0000 (15:59 -0400)]
Allow client destroy notify functions to be removed based on the data associated with them.

9 years agoFix prompt cleanup (was not going through the list correctly when freeing items)
Dana Jansens [Tue, 2 Aug 2011 19:53:42 +0000 (15:53 -0400)]
Fix prompt cleanup (was not going through the list correctly when freeing items)

9 years agoSelect the menu item under the mouse when the mouse is moved (Fix bug 5237)
Dana Jansens [Sat, 15 Oct 2011 00:48:54 +0000 (20:48 -0400)]
Select the menu item under the mouse when the mouse is moved (Fix bug 5237)

9 years agoMake ResizeRelative resize in terms of pixels for windows with resize increments...
Dana Jansens [Fri, 14 Oct 2011 23:42:37 +0000 (19:42 -0400)]
Make ResizeRelative resize in terms of pixels for windows with resize increments (Fix bug 5228)

If the resize is less than the window's resize increment then we bump it up
to ensure a resize does at least happen.

9 years agoMake the inactive osd text color fall back to the old osd property, and lastly inheri...
Dana Jansens [Mon, 8 Aug 2011 19:42:48 +0000 (15:42 -0400)]
Make the inactive osd text color fall back to the old osd property, and lastly inherit from the unfocused window color.

9 years agoAllow an xml tag to be unregistered from the xml parser.
Dana Jansens [Fri, 5 Aug 2011 15:00:53 +0000 (11:00 -0400)]
Allow an xml tag to be unregistered from the xml parser.

9 years agoProperly build path names for obt_paths_try_exec
Dana Jansens [Sun, 24 Jul 2011 23:29:26 +0000 (19:29 -0400)]
Properly build path names for obt_paths_try_exec

9 years agoadd menu_sort_entries() which sorts all entries in an ObMenu
Dana Jansens [Thu, 27 Jan 2011 22:30:45 +0000 (17:30 -0500)]
add menu_sort_entries() which sorts all entries in an ObMenu

this function sorts each group of entries that appear together between two
consecutive separators (or ends of the list)

9 years agoAdd another BSEARCH function that lets you search through an array of objects.
Dana Jansens [Thu, 27 Jan 2011 22:23:47 +0000 (17:23 -0500)]
Add another BSEARCH function that lets you search through an array of objects.

If you give it a value x, the macro lets you pull a value out of each object
that you want to compare to x.

9 years agoskip empty strings when splitting paths in the environment
Dana Jansens [Tue, 25 Jan 2011 18:32:43 +0000 (13:32 -0500)]
skip empty strings when splitting paths in the environment

9 years agohide the menus before shutting them down on reconfigure
Dana Jansens [Mon, 24 Jan 2011 22:00:41 +0000 (17:00 -0500)]
hide the menus before shutting them down on reconfigure

9 years agoFix for when the menu's update function returns FALSE and no menu is shown.
Dana Jansens [Mon, 24 Jan 2011 21:45:56 +0000 (16:45 -0500)]
Fix for when the menu's update function returns FALSE and no menu is shown.

The ObMenuFrame was not being freed, and the child pointer was being left
pointing to the frame that was not visible.

9 years agoJust put copyright starting year in README so we don't need to keep updating it....
Dana Jansens [Sun, 30 Sep 2012 16:27:26 +0000 (12:27 -0400)]
Just put copyright starting year in README so we don't need to keep updating it. Make --version match README.

9 years agoGenerate a fake leave event on actions that move windows (used to generate another...
Dana Jansens [Tue, 2 Aug 2011 20:28:19 +0000 (16:28 -0400)]
Generate a fake leave event on actions that move windows (used to generate another enter event?)

9 years agoLink X into libobt (Fixes compile on debian).
Dana Jansens [Thu, 27 Oct 2011 17:29:30 +0000 (13:29 -0400)]
Link X into libobt (Fixes compile on debian).

9 years agoIgnore enters on windows that are raised over focused window while being mapped.
Dana Jansens [Wed, 26 Oct 2011 14:30:37 +0000 (10:30 -0400)]
Ignore enters on windows that are raised over focused window while being mapped.

9 years agoUse the KeyCode to directly find the modifier mask. (Fix bug 5173)
Dana Jansens [Sun, 16 Oct 2011 15:50:15 +0000 (11:50 -0400)]
Use the KeyCode to directly find the modifier mask. (Fix bug 5173)

We were finding the KeySym first, and then converting back to a modifier mask.
But KeySym on a key's release can differ from on its press, and we don't need
them to determine the modmask from the keycode.

[setxkbmap -option "grp:shifts_toggle"] turns Shift_L into XK_ISO_Prev_Group on
key release, and Shift_R into XK_ISO_Next_Group.

9 years agoDon't make desktop switching interactive when no mods used. (Fix bug #5203)
Dana Jansens [Sun, 16 Oct 2011 15:10:14 +0000 (11:10 -0400)]
Don't make desktop switching interactive when no mods used. (Fix bug #5203)

Make mod state passing more consistent, and always give actions the full state
instead of stripping sometimes. (They ended up expecting it stripped always).

9 years agoFix crash on unexpected NET_WM_MOVERESIZE_CANCEL messages
Mikael Magnusson [Sun, 3 Jun 2012 18:18:48 +0000 (20:18 +0200)]
Fix crash on unexpected NET_WM_MOVERESIZE_CANCEL messages

gtk+ 3.4 apparently sends these randomly when you select text in a
GtkEntry. This also fixes bug #5460.

9 years agoUpdate german translation
Mario Blättermann [Thu, 17 Nov 2011 21:56:30 +0000 (22:56 +0100)]
Update german translation

9 years agoFix bootstrapping, forgot to change WANT_AUTOMAKE to 1.11 in previous commit
Mikael Magnusson [Wed, 15 Aug 2012 18:52:00 +0000 (20:52 +0200)]
Fix bootstrapping, forgot to change WANT_AUTOMAKE to 1.11 in previous commit

10 years agoQuiet build outbut on by default
Dana Jansens [Mon, 17 Oct 2011 19:48:31 +0000 (15:48 -0400)]
Quiet build outbut on by default

10 years agoFix window width/height going less than 1 on some platforms (bug #5246)
Dana Jansens [Sun, 16 Oct 2011 14:50:51 +0000 (10:50 -0400)]
Fix window width/height going less than 1 on some platforms (bug #5246)

10 years agoignore .rej files
Dana Jansens [Sun, 16 Oct 2011 02:45:03 +0000 (22:45 -0400)]
ignore .rej files

10 years agoFix maximized windows and such after screen resizings
Dana Jansens [Sun, 16 Oct 2011 01:04:54 +0000 (21:04 -0400)]
Fix maximized windows and such after screen resizings

10 years agoHear screen resizes when they don't change the root window (cloning)
Dana Jansens [Sun, 16 Oct 2011 01:04:21 +0000 (21:04 -0400)]
Hear screen resizes when they don't change the root window (cloning)

10 years agoCheck the return value for launching the startup command.
Dana Jansens [Sat, 15 Oct 2011 19:37:58 +0000 (15:37 -0400)]
Check the return value for launching the startup command.

Copy/paste error?

10 years agoFixes for gnome-session 3.
Dana Jansens [Sat, 15 Oct 2011 19:07:59 +0000 (15:07 -0400)]
Fixes for gnome-session 3.

We run by default with a panel (default gnome-panel) and then run Openbox
without any panel if one cannot be found.

- Adds a fallback session for if a panel (default gnome-panel) not found.
- Removes notifications as a requirement.  Seems to be a legacy thing judging
  from the ubuntu .session files.  Notifications are being provided by
  notify-osd on modern systems, and you can't check for its presence in
  gnome-session (gnome-classic.session always fails because it looks for it, so
  ubuntu falls back to gnome-fallback.session).

10 years agoRemove unused variable
Dana Jansens [Sat, 15 Oct 2011 17:42:30 +0000 (13:42 -0400)]
Remove unused variable

10 years agorespect the active/mouse options for monitor placement, and use ObMonitorPlace for...
Dana Jansens [Sun, 16 Oct 2011 00:07:57 +0000 (20:07 -0400)]
respect the active/mouse options for monitor placement, and use ObMonitorPlace for per-app too

10 years agoAllow per-app settings to pick a monitor for a window without choosing a position...
Dana Jansens [Fri, 14 Oct 2011 23:24:45 +0000 (19:24 -0400)]
Allow per-app settings to pick a monitor for a window without choosing a position in it.

10 years agoAdd "active" and "primary" options to the <monitor> placement option for per-app...
Dana Jansens [Fri, 14 Oct 2011 23:12:11 +0000 (19:12 -0400)]
Add "active" and "primary" options to the <monitor> placement option for per-app settings (bug #5180)

10 years agomake undecorated windows place according to their undecorated state (bug #5179)
Dana Jansens [Fri, 14 Oct 2011 22:54:32 +0000 (18:54 -0400)]
make undecorated windows place according to their undecorated state (bug #5179)

splits client_setup_decor_and_functions() into 3 functions.

1. add client_setup_default_decor_and_functions()
- called from client_get_all() to get the maximum decor/functions that will
  be available for use by the client.
2. add client_setup_decor_undecorated()
- sets up the client's undecorarted decor if the flag is set by the per-app
  settings or session state.
- we do this before setting up the frame so the frame reflects the window as it
  should be when getting placed.
3. client_setup_decor_and_functions()
- calls the above 2 to perform the same functions as before.
- added to client_apply_startup_state() so that we can ensure it was run fully
  at least once in the mapping process, since it is not called in
  client_get_all() anymore.

10 years agoit would seem this cannot return NULL now
Dana Jansens [Fri, 14 Oct 2011 22:52:36 +0000 (18:52 -0400)]
it would seem this cannot return NULL now

It will get the primary monitor if there is not monitor under the pointer. But
assert so it's clear something went wrong if this does happen. Note that there
was previously no check for the return value even though the comment claimed
there should be.

10 years agoLink libobt into libobrender, as it uses things from libobt (bug #5150)
Fryderyk Dziarmagowski [Fri, 14 Oct 2011 21:41:43 +0000 (17:41 -0400)]
Link libobt into libobrender, as it uses things from libobt (bug #5150)

libobrender uses ObtPaths stuff, so it needs to link in libobt.

10 years agoPropagate _NET_WM_WINDOW_OPACITY to the frame window (bug #5132)
Dana Jansens [Fri, 14 Oct 2011 21:39:24 +0000 (17:39 -0400)]
Propagate _NET_WM_WINDOW_OPACITY to the frame window (bug #5132)

10 years agoStrip leading/trailing whitespace when parsing colors and other strings (bug #4937)
Dana Jansens [Fri, 14 Oct 2011 21:06:05 +0000 (17:06 -0400)]
Strip leading/trailing whitespace when parsing colors and other strings (bug #4937)

10 years agofree undecorated border colors
Dana Jansens [Fri, 14 Oct 2011 21:17:22 +0000 (17:17 -0400)]
free undecorated border colors

10 years agoSpecific border width/color for undecorated active/inactive windows (bug #4889)
Carlos Pita [Fri, 14 Oct 2011 21:01:18 +0000 (17:01 -0400)]
Specific border width/color for undecorated active/inactive windows (bug #4889)

The attached patch adds three theme options with backward compatible defaults:

  defaults to border.width

  defaults to window.active.border.color

  defaults to window.inactive.border.color

10 years agoFix crash when keyboard map changes and no keybindings exist.
Dana Jansens [Fri, 14 Oct 2011 20:43:18 +0000 (16:43 -0400)]
Fix crash when keyboard map changes and no keybindings exist.

Don't assume old tree is non-null and start rebinding it.

10 years agoChange default doubleclick timeout to 500ms and keep track of where last click was
Mikael Magnusson [Thu, 4 Aug 2011 16:34:54 +0000 (18:34 +0200)]
Change default doubleclick timeout to 500ms and keep track of where last click was

Bug #5152 - "mouse double-click time is too low by default - 200ms"

We only use the doubleclick in one place in the default configuration,
for doubleclicking titlebars to maximize windows, so any negative impact
of increasing the timeout should be minimal, especially with the
addition of requiring the two clicks to be in the same place.

Doubleclicks are hardcoded to occur within 8 pixels for now, it doesn't
seem worth it to add a config until someone complains. A possibility is
using the drag threshold, but some people have that set very low so it
could be hard to doubleclick then.

10 years agoParse all the actions in a single menu item
Dana Jansens [Sat, 15 Oct 2011 19:45:27 +0000 (15:45 -0400)]
Parse all the actions in a single menu item

10 years agoDon't remove openbox-gnome.session on make clean - it's not generated.
Dana Jansens [Tue, 11 Oct 2011 22:03:24 +0000 (18:03 -0400)]
Don't remove openbox-gnome.session on make clean - it's not generated.

10 years agoMake openbox-gnome-session compatible with gnome3 with gnome-session 3.0+ support.
Geoffrey Antos [Fri, 7 Oct 2011 13:29:30 +0000 (09:29 -0400)]
Make openbox-gnome-session compatible with gnome3 with gnome-session 3.0+ support.

Yay they did something nice and made it easier for other window managers to be used.  How unexpected and pleasant.

10 years agoDon't show prompts inside the message handler to prevent recursion
Dana Jansens [Thu, 6 Oct 2011 14:03:52 +0000 (10:03 -0400)]
Don't show prompts inside the message handler to prevent recursion

Showing prompts causes messages to be created which causes the glib message
handler to abort().  Save the messages and show them when done all other
processing for the current event.

10 years agobug #5253 kde4 is out now, use kde4 menus by default.
Dana Jansens [Thu, 29 Sep 2011 16:52:07 +0000 (12:52 -0400)]
bug #5253 kde4 is out now, use kde4 menus by default.

Startup scripts should export "XDG_MENU_PREFIX=kde-4-" but they export

10 years agoMake "no" a valid choice for the dialog option in cyclewindows.c.
Dana Jansens [Tue, 30 Aug 2011 15:14:06 +0000 (11:14 -0400)]
Make "no" a valid choice for the dialog option in cyclewindows.c.

It is the same as "none" for backward compatibility (it used to be a boolean).

10 years agoUpdate copyright notice in --version output
Mikael Magnusson [Tue, 13 Sep 2011 18:39:12 +0000 (20:39 +0200)]
Update copyright notice in --version output

10 years agoFix typo in configure.ac, noticed by hwoarang
Mikael Magnusson [Sat, 3 Sep 2011 10:23:22 +0000 (12:23 +0200)]
Fix typo in configure.ac, noticed by hwoarang

10 years agoConsistency with helper/modal windows and multiple desktops.
Dana Jansens [Wed, 5 Oct 2011 17:25:46 +0000 (13:25 -0400)]
Consistency with helper/modal windows and multiple desktops.

When focusing a window, bring its helper windows.  This happened before when
switching its desktop, but if you have 2 windows on different desktops and
switch between them, the helpers should come to both when they are being used.

When a new helper/modal window maps on a different desktop and you are using
the application, then the helper/modal window is moved to the current desktop
to be with the application you are using.

10 years agoFix focus stealing for changing desktops/Use timestamp for user input events
Dana Jansens [Tue, 4 Oct 2011 21:53:54 +0000 (17:53 -0400)]
Fix focus stealing for changing desktops/Use timestamp for user input events

Change the logic for when to allow stealing focus across desktops.
- It was possible to call event_time_after() with a CurrentTime in the old code.
- It would disallow a user requested change which is crazy.
- It would change desktops on you when a new window appeared but this is
  generally not desirable.

event_source_time() is supposed to give the time which the user made things
happen. we leave it at 0 for user-input events right now which means stuff like
changing desktop doesn't save any timestamp at all.  we should use the
timestamp from x for user-generated events.

10 years agoFix a memleak introduced by 0dd91ba0e2382a8f6177f501f8a0b26e0daf26a8, some cleanups
Mikael Magnusson [Wed, 3 Aug 2011 21:01:28 +0000 (23:01 +0200)]
Fix a memleak introduced by 0dd91ba0e2382a8f6177f501f8a0b26e0daf26a8, some cleanups

10 years agobe a bit more explicit about what is being copied from one texture to another
Dana Jansens [Tue, 25 Jan 2011 17:02:42 +0000 (12:02 -0500)]
be a bit more explicit about what is being copied from one texture to another

10 years agoSeparate theme options for osd prompt buttons.
Carlos Pita [Wed, 12 Jan 2011 23:49:45 +0000 (20:49 -0300)]
Separate theme options for osd prompt buttons.

I managed to keep backwards compatibility without really cluttering
the code so here is the patch
http://bugzilla.icculus.org/show_bug.cgi?id=4874 too.

Please keep in mind that this is my first piece of code for openbox
and that I'm not a die hard openbox user (yet), not to tell the patch
was not exhaustively tested. Anyway I think it's pretty much in a good
shape but any criticism will be welcome.

Basically the patch add the following theme options for controlling
buttons in osd prompts:

%%%% colors
% for the text inside the button
% for the line art around the button
%  (if you don't wan't the box just make box.color = bg.color)

%%%% textures

The buttons can be in three states:

 unpressed: neither clicked nor selected
 focused: selected but not clicked
 pressed: clicked (and of course selected)

I discarded the previous distinction between press and pfocus as in
fact it was only a formal distinction, in that both appearances
mimicked each other in every sense. It think that it was just
inherited from the way titlebar buttons are managed so I decided to
simplify it a bit.

All the options default in a way that preserves backwards compatibility:

osd.button.unpressed.text.color  -> osd.active.label.text.color
osd.button.pressed.text.color -> osd.active.label.text.color
osd.button.focused.text.color -> osd.active.label.text.color

osd.button.pressed.box.color ->  window.active.button.pressed.image.color
osd.button.focused.box.color -> window.active.button.hover.image.color

osd.button.unpressed.bg -> window.active.button.unpressed.bg
osd.button.pressed.bg -> window.active.button.pressed.bg
osd.button.focused.bg -> window.active.button.hover.bg

Notice that a good deal of locs where added to theme.c but in
compensation prompt.c is pretty much simpler now because the
appearances and textures are created while loading the theme.

10 years agoMerge branch 'm4/master'
Mikael Magnusson [Tue, 2 Aug 2011 20:18:14 +0000 (22:18 +0200)]
Merge branch 'm4/master'

10 years agoRevert these two commits temporarily to make the buttons merge easier
Mikael Magnusson [Tue, 2 Aug 2011 20:17:11 +0000 (22:17 +0200)]
Revert these two commits temporarily to make the buttons merge easier


10 years agoUpdate portuguese translation
Pedro Beja [Sat, 24 Apr 2010 20:21:23 +0000 (22:21 +0200)]
Update portuguese translation

10 years agoUpdate estonian translation
Mikael Magnusson [Thu, 22 Apr 2010 13:55:13 +0000 (15:55 +0200)]
Update estonian translation

10 years agoAdd Plural-Forms header to fi.po and remove fuzzy mark.
Mikael Magnusson [Sat, 13 Mar 2010 20:57:58 +0000 (21:57 +0100)]
Add Plural-Forms header to fi.po and remove fuzzy mark.

10 years agoUpdate polish translation.
Jakub Łojewski [Thu, 11 Mar 2010 13:29:41 +0000 (14:29 +0100)]
Update polish translation.

10 years agoFix some rebase artifacts
Mikael Magnusson [Thu, 14 Oct 2010 14:05:15 +0000 (16:05 +0200)]
Fix some rebase artifacts