summaryrefslogtreecommitdiff
path: root/openbox/client.c
AgeCommit message (Collapse)Author
2010-06-26settings can't be NULL here, or we'd have already crashed anywayMikael Magnusson
2010-06-14Fix the EXTENTS reported on window frames.Dana Jansens
Change the order things are done on map, so we apply startup state without any states set first, thus getting all the functions possible for the window type etc. then change the order states are applied, as some remove the ability to apply others (ie fullscreen comes last). Add an oldsize to ObFrame that remembers the size of the frame last reported to the world through the EXTENTS property. If you frame_adjust_area(FAKE) then frame_adjust_area(NONFAKE), the EXTENTS would not be updated since the oldsize wasn't remembered across fake updates. Make the extentsrequest test ask about windows with states set also.
2010-06-14allow a user to set "undecorated" on a window without decorationsDana Jansens
if not based on window type, the app may decide to have decorations again sometime. this was not always legal but chromium has made it so.
2010-05-21allow new windows on other desktops to get focused if specified in a per-app ↵Dana Jansens
rule you can not client_active() with user=false and desktop=true and activate things on other desktops, by the general focus steal restrictions, if you wanted to do that sorta thing
2010-05-20don't need a force_reply when changing the decor for a windowDana Jansens
it will send a configurenotify if the client's rootwindow position changed
2010-05-20allows a window to unmax by resizing.Dana Jansens
makes "clever" use of the client's pre_max_area values to allow this to happen without flashing, and preserving them in case the user cancels the resize after it has become unmaximized.
2010-04-28fix XSYNCronization of resizes (especially with two monitors).Dana Jansens
1) a ConfigureNotify must always follow a Sync notification 2) determine the final size of the window with its position else struts are not applied properly for (partly) maximized windows 3) set the sync counter to a value when managing a new window
2010-04-28make sure clients stay on screen when the root window changes size, and ↵Dana Jansens
maximized/fullscreen windows must be on some monitor or it doesn't make much sense (and asserts)
2010-04-28Remove two unused variablesMikael Magnusson
Remains from 64adc0eeba598cb1469b2140777fba30e3053f0e
2010-04-28make an event queue for X events. the queue's min size is 16 XEvents (~3k)Dana Jansens
2010-04-20don't change stacking stuff on windows when moving them during the unmanage ↵Dana Jansens
phase.
2010-04-16event_curtime is replaced (publicly) by event_time()Dana Jansens
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.
2010-04-16When determining the current timestamp, try get something a lil more accurateDana Jansens
Get the first timestamp from the event queue, rather than (potentially) the last. also treat it as the actual event_curtime, meaning it is used when focusing a newly mapped window etc.
2010-04-16add an option to next/previous window to only include ↵Dana Jansens
hilited/flashing/urgent windows (feature req/bug #4341)
2010-04-16use const Rect* not Rect const*Dana Jansens
2010-03-29if a launch time isnt there (like for client_activate) assume the window ↵Dana Jansens
launched before the last desktop switch, not after. ie don't change desktops if you're not sure.
2010-03-25allow non-normal windows to go to 0,0. and remove a debugging g_printDana Jansens
2010-03-01add a function client_is_oldfullscreen() that determines if a window is an ↵Dana Jansens
"oldschool fullscreen window" or not. use this throughout. and allow oldschool fullscreen windows to move to 0,0 even with a strut there.
2010-03-01when an app tries to move to 0,0 and there is a strut there (java swing!), ↵Dana Jansens
move it to inside the strut instead (unless it is an oldschool fullscreen app)
2010-02-16a couple more g_free() to g_slice_free()'sDana Jansens
2010-02-16missed a g_free() that should be g_slice_free()Dana Jansens
2010-02-15dont trust the _NET_ACTIVE_WINDOW timestamp. (fixes bug #4519)Dana Jansens
if we decide to focus the window, do not use their provided timestamp. chromium gives a very old timestamp, which means we think we're focusing the window but it never actually gets focus, leading to inconsistent behaviour by openbox. use the timestamp for making decisions about passing focus if you want (we dont right now), but not for the XSetInputFocus call.
2010-02-12remove a bunch of g_new()/g_free() by returning Rect const*'s from screen ↵Dana Jansens
area functions when possible
2010-02-12using g_slice_new() instead of g_new() part 1Dana Jansens
2010-01-15make edge detection for maximized windows only look at the edges of screensDana Jansens
2010-01-15Remember the maximized state of a window when it goes fullscreen and try ↵Dana Jansens
restore it after
2010-01-14If a window places itself at (0,0) and there are struts there, assume it is ↵Dana Jansens
a bug. Also allow oldschool fullscreen windows that cover all monitors on a multihead setup to work properly Added a test 'oldfullscreen' that makes a oldschool fullscreen window
2010-01-14allow app rules to match windows by their title when mappingDana Jansens
and save the title in the _OB_APP_TITLE property
2010-01-11Merge branch 'backport' into workDana Jansens
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
2010-01-11More work on refreshing the focus cycle dialog when windows are ↵Dana Jansens
added/removed from the valid focus order
2010-01-11Add _OB_VERSION and _OB_APP_ROLE/CLASS/NAME/TYPEDana Jansens
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.
2010-01-11Redraw the focus cycle popup when the list of focusable windows changes, ↵Dana Jansens
rather than closing it
2010-01-10allow application rules to place transient/dialog/splash windows, and allow ↵Dana Jansens
application rules to match only on the role or type if you wish.
2010-01-08Make focus_valid_target() take a desktop argument.Dana Jansens
So you can find valid targets on desktops other than the currently visible one
2009-12-21Set up work for making a 3.5 prerelease.Dana Jansens
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/*>
2009-12-11Merge branch 'backport' into workDana Jansens
Conflicts: openbox/config.c openbox/event.c openbox/prop.c openbox/prop.h openbox/screen.c openbox/screen.h
2009-12-11Set hints that remember the WM_WINDOW_ROLE and WM_CLASS properties for our ↵Dana Jansens
users. The hints are _OB_ROLE, _OB_NAME, and _OB_CLASS.
2009-12-09Make the edge detection fully include monitor edges.Dana Jansens
This fixes the move-to-edge behaviour, when moving past the edge of a monitor, the window will stop with its tail edge against the inside of the monitor's edge.
2009-12-09Properly react when a client's strut changes.Dana Jansens
Previously it would only react if the height of the strut changed, not if its start/end changed (that was a long-standing bug).
2009-12-09Fix the Focus/Activate actions to focus windows on other desktops correctlyDana Jansens
2009-12-09Allow skip_taskbar windows to be focused on map when the user requests it in ↵Dana Jansens
rc.xml. Fixes bug #4350
2009-12-08Merge branch 'backport' into workDana Jansens
Conflicts: openbox/actions/all.h openbox/actions/session.c openbox/client.c openbox/event.c openbox/grab.c
2009-12-08Don't hilite new windows when we're restoring them from a saved session.Dana Jansens
2009-12-08Fix client_activate() to work for internal Openbox menusDana Jansens
client_activate() is a helpful way to focus a window on another desktop, but only Openbox is allowed to do such things, user messages cannot.
2009-12-08Don't kill keygrabs when focus moves.Dana Jansens
Applications should be better behaved by now, and GTK based apps seem to be at least. We can file bug reports with them if we need to still.
2009-12-08Change _net_active_window behaviour.Dana Jansens
Move focus on _net_active_window "app" requests if focus stealing would be allowed. If focus is not given to the target window and it is hilited (or any other situation where it is hilited) and the window is on another desktop, then also raise it and make it the LRU window, so when you switch desktops you go right to it.
2009-11-21Merge branch 'backport' into workDana Jansens
Conflicts: openbox/popup.c
2009-11-21Don't ever give borders to windows that didnt have them before by making ↵Dana Jansens
them "undecorated" with the keepborder config option on. This fixes what commit 85f39cd27e7ea0eec8bc78f6139092b44fda2dad fixed for the fullscreen window case, but also fixes bug #4344.
2009-11-21Revert all commits for the Hooks feature to move it to a topic branch.Dana Jansens
This reverts commit fd2f617be7ff57fcb187daa737f66d243544c8cd. This reverts commit a47d0a53652a96ca1df96fc9268757df1431ae55. This reverts commit a1908e076736e1a618bd305c5963dbfecaa30497. This reverts commit dc2e6f6bf7143a56de360a393b33906735e63625. This reverts commit 985e7dadf9a3ebf4bd265d955c3198e96405e5d2. This reverts commit db781556d63d1a50bd1b1b4b6b5423ef703bf2c7. This reverts commit feec8f663f0a11546c2da87575fecc8a88d97ca1.
2009-11-07Make clang happierMikael Magnusson
Add asserts to default: in switch statements Store pointed to variables locally so it knows they don't change Remove some dead assignments Mark ob_exit_with_error as noreturn Use "%s", msg instead of just msg to printf style functions Use the c_pfocus variable