| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
When the strict option is used, normal windows are not able to show themselves
while showing the desktop.
|
|
|
|
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
http://icculus.org/pipermail/openbox/2010-September/006790.html
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
3.5.
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
tag.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
tells if two windows' current desktops are considered logically on the same
desktop (taking "all desktops" into account)
if a window is on "all desktops" it is considered to be on the current desktop
only - windows can only be in one place at a time.
|
|
|
|
STRING should be latin1 text (plus TAB and LF)
COMPOUND_TEXT should be encoded in the current locale.
|
|
This reverts commit aa3685d16af4a565eecdc39047ee8d140ef5cd99.
Mika's commit using a GSource to handle X Events fixes this problem, so this
commit is not needed
|
|
GMainLoop doesn't cause an flush to occur after handling a timeout.
|
|
|
|
|
|
maximized/fullscreen windows must be on some monitor or it doesn't make much sense (and asserts)
|
|
|
|
This function never returns CurrentTime, which is nice, cuz using CurrentTime for XSetFocus always sucks.
If the current XEvent did not have a timestamp, then event_time() will find one. It finds the first timestamp available in the X event queue, meaning the earliest timestamp >= the current (nontimestamped) event. All future events should have a timestamp >= event_time(), so using this in XSetFocus() should not mess up any future calls we make to it.
This change seems to work well, as it appears to fix bug #3648.
|
|
|
|
"oldschool fullscreen window" or not. use this throughout. and allow oldschool fullscreen windows to move to 0,0 even with a strut there.
|
|
area functions when possible
|
|
|
|
and save the title in the _OB_APP_TITLE property
|
|
Conflicts:
configure.ac
data/rc.xml
openbox/client.c
openbox/event.c
openbox/focus_cycle.c
openbox/focus_cycle_popup.c
openbox/openbox.c
openbox/prop.c
openbox/prop.h
openbox/screen.c
parser/parse.c
version.h.in
|
|
added/removed from the valid focus order
|
|
Add _OB_VERSION property on the root window.
Change _OB_ROLE/CLASS/NAME to _OB_APP_*.
Add _OB_APP_TYPE which has a string for the type chosen for the window on
mapping by Openbox.
Adjust the rc.xml to match these changes.
|
|
rather than closing it
|
|
Set version stuff to 3.5.0-rc1.
Copy the CHANGELOG from 3.4-working.
Rename the obt-4.0 and obrender-4.0 pkgconfig stuff to obt-3.5 and obrender-3.5
Rename the "render" directory to "obrender" so that the public headers can be
installed in <obrender/*>
|
|
Conflicts:
openbox/screen.c
|
|
|
|
disappears
|
|
switching desktops
|
|
|
|
The desktop popup can now be shown "permanently" in which case it stays until
you tell it to hide.
|
|
and trusted code
|
|
Conflicts:
obt/keyboard.c
obt/keyboard.h
openbox/event.c
openbox/menuframe.c
openbox/moveresize.c
openbox/openbox.c
openbox/screen.c
|
|
The spec is not going to change this hint, but rather add a new one. So for now
just revert to the old behaviour.
|
|
This fixes a bug which forced menus to show up on the same monitor as the
mouse pointer.
|
|
Conflicts:
openbox/config.c
openbox/event.c
openbox/prop.c
openbox/prop.h
openbox/screen.c
openbox/screen.h
|
|
users.
The hints are _OB_ROLE, _OB_NAME, and _OB_CLASS.
|
|
This matches the behaviour of the focus cycle and key chain popups.
|
|
This reverts commit 2e1adce628ee3234accc5d88cafb57672800cae0.
|
|
popup while it is going to be shown later by a delay."
This reverts commit 33328583a143677d27eb3d081ce66532c3aaca1c.
|
|
popups will appear
|
|
|
|
window which is no longer visible is still focused.
|