| Age | Commit message (Collapse) | Author |
|
another enter event?)
|
|
|
|
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.
|
|
Make mod state passing more consistent, and always give actions the full state
instead of stripping sometimes. (They ended up expecting it stripped always).
|
|
gtk+ 3.4 apparently sends these randomly when you select text in a
GtkEntry. This also fixes bug #5460.
|
|
|
|
|
|
|
|
Copy/paste error?
|
|
ObMonitorPlace for per-app too
|
|
position in it.
|
|
per-app settings (bug #5180)
|
|
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.
|
|
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.
|
|
|
|
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
|
|
Don't assume old tree is non-null and start rebinding it.
|
|
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.
|
|
|
|
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.
|
|
It is the same as "none" for backward compatibility (it used to be a boolean).
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
1e427a3358deeadf8abc326e714ee201fddc43d6
2288da0ae3b44c987687e3deeb7864fcb7b23bb9
|
|
|
|
|
|
|
|
Use screen_find_monitor(area) instead of screen_find_monitor_point(
topleft corner) in order to find a better monitor when the menu isn't
opening with the mouse cursor in the top left corner.
I made screen_find_monitor return the primary screen when it failed to
find a monitor containing the rect, instead of the total area, no idea
what behaviour this will change but I doubt it will be worse.
|
|
|
|
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.
|
|
|
|
Fake managing a window doesn't read a requested desktop, but ended up placing
a NET_WM_DESKTOP hint on the window (with value 0). Fake managing doesn't
need to set the DESKTOP hint since the window is not actually being managed,
so remove it from the codepath.
|
|
|
|
screen edges.
This caused a serious annoyance when shrinking a maximized window, it would
shrink to the other end of the monitor, effectively reducing it to its minimum
size.
|
|
Make waiting_for_sync always present, but it is set to 0 (not waiting) if we aren't using sync.
|
|
|
|
isn't shown yet.
|
|
short (bug #4596)
|
|
|
|
if using "focus under mouse" (Fixes bug #4617)
|
|
window is from a user. also if allow_other_desktops is false, then always disallow other desktops (Fixes bug #4752)
|
|
stealing for user-requested focusing.
Seems panels such as xfce's and gnome's still treat their activation requests
as being from an application when a user has requested it.
Make the focus stealing code more lenient for user-requested focusings
(_NET_ACTIVE). But treat new windows as not user-requested unless they
gave a launch time.
When activating a window, if another window would be the one to actually get
focused, then activate that instead (avoid clicking a window in the panel and
nothing happens).
|
|
Seeing as how you already use glib, I just substituted g_setenv and g_unsetenv
as appropriate, and it now works for me.
|
|
"ShapeInput" (Fixes bug #4662)
the sawfish window manager has ifdefs for this sort of situation.
I followed suit, and #ifdef'd it, and it now works for me.
patch attached.
Slight changes to the patch from danakj@orodu.net for readability
|
|
if the window is related to other existing windows
and one of those windows was the last used
then we will give it a launch time equal to the last user time,
which will end up giving the window focus probably.
else
the window is related to other windows, but you are not working in them?
seems suspicious, so we will give it a launch time of NOW - STEAL_INTERVAL,
so it will be given focus only if we didn't use something else during the
steal interval.
else
the window is all on its own, so we can't judge it. give it a launch time
equal to the last user time, so it will probably take focus.
this way running things from a terminal will give them focus, but popups
without a launch time shouldn't steal focus so easily.
|
|
|
|
|