Commit graph

7521 commits

Author SHA1 Message Date
Dana Jansens
69672e9d07 Properly build path names for obt_paths_try_exec 2012-09-30 14:57:24 -04:00
Dana Jansens
9f31f80ce8 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)
2012-09-30 14:50:30 -04:00
Dana Jansens
7d32190a4c 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.
2012-09-30 14:50:30 -04:00
Dana Jansens
30fe9697df skip empty strings when splitting paths in the environment 2012-09-30 14:50:30 -04:00
Dana Jansens
5ced1a06fc hide the menus before shutting them down on reconfigure 2012-09-30 14:50:30 -04:00
Dana Jansens
f53fa1e589 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.
2012-09-30 14:50:30 -04:00
Dana Jansens
fbc3e344cd Just put copyright starting year in README so we don't need to keep updating it. Make --version match README. 2012-09-30 14:50:21 -04:00
Dana Jansens
e27680e420 Generate a fake leave event on actions that move windows (used to generate another enter event?) 2012-09-30 14:50:17 -04:00
Dana Jansens
08756833d4 Link X into libobt (Fixes compile on debian). 2012-09-30 14:50:05 -04:00
Dana Jansens
73608702b8 Ignore enters on windows that are raised over focused window while being mapped. 2012-09-30 14:50:00 -04:00
Dana Jansens
be9637e403 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.
2012-09-30 14:48:04 -04:00
Dana Jansens
ad5b92588f 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).
2012-09-30 14:46:11 -04:00
Mikael Magnusson
58f666a2a5 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.
2012-09-30 14:38:58 -04:00
Mario Blättermann
4195eafdb6 Update german translation 2012-09-30 14:24:21 -04:00
Mikael Magnusson
515ea1abcb Fix bootstrapping, forgot to change WANT_AUTOMAKE to 1.11 in previous commit 2012-08-15 20:52:00 +02:00
Dana Jansens
5aad740a52 Quiet build outbut on by default 2011-10-26 10:48:04 -04:00
Dana Jansens
fb2ce21385 Fix window width/height going less than 1 on some platforms (bug #5246) 2011-10-16 18:52:16 -04:00
Dana Jansens
9868ee29b7 ignore .rej files 2011-10-16 18:51:52 -04:00
Dana Jansens
eb4c8ff097 Fix maximized windows and such after screen resizings 2011-10-16 18:51:52 -04:00
Dana Jansens
8412fb0297 Hear screen resizes when they don't change the root window (cloning) 2011-10-16 18:51:52 -04:00
Dana Jansens
0f18d0624d Check the return value for launching the startup command.
Copy/paste error?
2011-10-16 18:51:52 -04:00
Dana Jansens
3991e148e2 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).
2011-10-16 18:51:51 -04:00
Dana Jansens
14deacc8f3 Remove unused variable 2011-10-16 18:51:51 -04:00
Dana Jansens
8a975cb100 respect the active/mouse options for monitor placement, and use ObMonitorPlace for per-app too 2011-10-16 18:51:51 -04:00
Dana Jansens
4aade63604 Allow per-app settings to pick a monitor for a window without choosing a position in it. 2011-10-16 18:51:51 -04:00
Dana Jansens
c590a83207 Add "active" and "primary" options to the <monitor> placement option for per-app settings (bug #5180) 2011-10-16 18:51:51 -04:00
Dana Jansens
a0d14c7d44 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.
2011-10-16 18:51:51 -04:00
Dana Jansens
332280daf9 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.
2011-10-16 18:51:51 -04:00
Fryderyk Dziarmagowski
b1039d6142 Link libobt into libobrender, as it uses things from libobt (bug #5150)
libobrender uses ObtPaths stuff, so it needs to link in libobt.
2011-10-16 18:51:51 -04:00
Dana Jansens
aa15563fee Propagate _NET_WM_WINDOW_OPACITY to the frame window (bug #5132) 2011-10-16 18:51:51 -04:00
Dana Jansens
fd9bb43059 Strip leading/trailing whitespace when parsing colors and other strings (bug #4937) 2011-10-16 18:51:51 -04:00
Dana Jansens
808bb02af8 free undecorated border colors 2011-10-16 18:51:51 -04:00
Carlos Pita
fadf435ee1 Specific border width/color for undecorated active/inactive windows (bug #4889)
The attached patch adds three theme options with backward compatible defaults:

undecorated.border.width
  defaults to border.width

window.undecorated.active.border.color
  defaults to window.active.border.color

window.undecorated.inactive.border.color
  defaults to window.inactive.border.color
2011-10-16 18:51:51 -04:00
Dana Jansens
e4e7c2be52 Fix crash when keyboard map changes and no keybindings exist.
Don't assume old tree is non-null and start rebinding it.
2011-10-16 18:51:51 -04:00
Mikael Magnusson
c885c9a676 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.
2011-10-16 22:50:26 +02:00
Dana Jansens
1d2da703ec Parse all the actions in a single menu item 2011-10-15 15:50:10 -04:00
Dana Jansens
63fcce3791 Don't remove openbox-gnome.session on make clean - it's not generated. 2011-10-11 18:03:24 -04:00
Geoffrey Antos
3f870080de 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.
2011-10-07 09:38:25 -04:00
Dana Jansens
303cbe76dc 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.
2011-10-06 12:01:30 -04:00
Dana Jansens
a23954ec17 bug #5253 kde4 is out now, use kde4 menus by default.
Startup scripts should export "XDG_MENU_PREFIX=kde-4-" but they export
"XDG_MENU_PREFIX=kde-".
2011-10-05 13:42:50 -04:00
Dana Jansens
8e4fcae64d 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).
2011-10-05 13:42:44 -04:00
Mikael Magnusson
5fdb5cb7dd Update copyright notice in --version output 2011-10-05 13:34:13 -04:00
Mikael Magnusson
4ee0b6f88e Fix typo in configure.ac, noticed by hwoarang 2011-10-05 13:33:59 -04:00
Dana Jansens
dc6d1d75b4 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.
2011-10-05 13:32:09 -04:00
Dana Jansens
eea1a9fef9 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.
2011-10-05 13:32:08 -04:00
Mikael Magnusson
98b02c6b60 Fix a memleak introduced by 0dd91ba0e2, some cleanups 2011-08-03 23:01:28 +02:00
Dana Jansens
ef0bfdc743 be a bit more explicit about what is being copied from one texture to another 2011-08-02 22:18:34 +02:00
Carlos Pita
177a0340a7 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
osd.button.unpressed.text.color
osd.button.pressed.text.color
osd.button.focused.text.color
%
% for the line art around the button
%  (if you don't wan't the box just make box.color = bg.color)
osd.button.pressed.box.color
osd.button.focused.box.color

%%%% textures
%
osd.button.unpressed.bg
osd.button.pressed.bg
osd.button.focused.bg

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.
2011-08-02 22:18:31 +02:00
Mikael Magnusson
d09fd3183e Merge branch 'm4/master' 2011-08-02 22:18:14 +02:00
Mikael Magnusson
9116b124da Revert these two commits temporarily to make the buttons merge easier
1e427a3358
2288da0ae3
2011-08-02 22:17:17 +02:00