summaryrefslogtreecommitdiff
path: root/openbox/screen.c
AgeCommit message (Collapse)Author
2009-11-21Add a comment for commit ec9fbf05df3ac807d60ae6af36236ffc6567bbdc regarding ↵Dana Jansens
struts with multiple monitors.
2009-11-21Some fixes for the pager popups, and avoid a crash if you destroy a popup ↵Dana Jansens
while it is going to be shown later by a delay.
2009-07-05Fix interpretation of struts with multiple screensGeoffrey Antos
According to the WM Specification, the left, top, right, and bottom fields are to be declared relative to the overall X screen dimensions, not the monitor dimensions. The example given in the spec (v1.3 or 1.4draft2) is: "Another example is a panel on a screen using the Xinerama extension. Assume that the set up uses two monitors, one running at 1280x1024 and the other to the right running at 1024x768, with the top edge of the two physical displays aligned. If the panel wants to fill the entire bottom edge of the smaller display with a panel 50 pixels tall, it should set a bottom strut of 306, with bottom_start_x of 1280, and bottom_end_x of 2303. Note that the strut is relative to the screen edge, and not the edge of the xinerama monitor." In my case, I have a 1680x1050 monitor to the left of a 1920x1200 monitor aligned at the top. I then have a gnome-panel along the bottom edge of the 1680x1050 monitor with a height of 24 pixels. xprop reports the following partial strut: _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 175, 0, 0, 0, 0, 0, 0, 0, 1679 which is correct according to the spec. Gnome-panel is reserving the 150 pixels along the bottom that aren't visible on the screen plus the 25 it requests for itself. However, maximizing a window on this monitor leaves a gap of exactly 150 pixels between the bottom edge of the maximized window and the top edge of the panel. Also, when the 1680x1050 monitor is the primary monitor (id=1) then the _NET_WORKAREA property on the root window is also off by 150px for the same reason. This patch fixes the two issues I mentioned for exterior monitor edges. It doesn't attempt to account for "interior" monitor edges (i.e. a 'left' strut on monitor A when monitor B is directly to the left of monitor A) because it's not possible to do so with the current strut specification (see http://mail.gnome.org/archives/wm-spec-list/2004-March/msg00004.html for a discussion on this limitation) This could be avoided by having the partial strut atom contain a xinerama screen ID that the strut applies to, but unfortunately the discussion all those years ago never got anywhere. [ quoted from bug #3792 ]
2009-07-04Show desktop switch popup on every monitorMikael Magnusson
This should be a satisfactory fix for #3694 I hope.
2008-11-15Use ngettext for %d desktop(s).Mikael Magnusson
This poses a small problem. We currently let translators reorder this string, but ngettext only takes one numeric argument. This means that you can either get correct pluralization or the order you want, but not both. I fixed up the languages I understand at a very basic level, but the rest will need translator assistance.
2008-03-02add a RECONFIGURING state, and enter that when doing reconfiguringDana Jansens
2008-02-28Very inconsequential changes.Mikael Magnusson
2008-02-28Free copied glists when removing desktops.Mikael Magnusson
2008-02-25show the desktop change popup before mapping/unmapping all the windowsDana Jansens
this makes a big difference if the compmgr is being laggy trying to show windows
2008-02-17Add a comment for translators about how to change order of arguments.Mikael Magnusson
2008-02-13Fix a minor issue with lastdesktop right after startup.Mikael Magnusson
2008-02-08Don't bother setting screen_last_desktop here, it's inited in screen_startup ↵Mikael Magnusson
anyway.
2008-02-02add a --config-file command line option, and OB_CONFIG_FILE root hintDana Jansens
2008-01-22print a warning when the session has a different number of desktops than the ↵Dana Jansens
openbox config
2008-01-16Various fixes for sparse warnings.Mikael Magnusson
Define void functions with (void), not (). Add missing includes. Some functions were declared static but defined non-static. Some variables that should be file static were file global but not used in any other file. prop.h defined a new prop_atoms in each file that included it instead of declaring it extern.
2008-01-16add the new pid and ping atoms to the NET_SUPPORTED listDana Jansens
2008-01-11try to comment the code for when to save the "last desktop"Dana Jansens
2008-01-11make the time to remember last desktop a #define, and make it 750msDana Jansens
2008-01-11Don't record desktops for lastdesktop when switching away quickly again.Mikael Magnusson
When switching desktops, only record the previous desktop as the last desktop if the user stayed there for a while. This way you can scroll over a couple desktops quickly, then go back to the previous desktop you _used_, not the last you scrolled past.
2007-10-31Try to fix the popup only showing up on monitor 0.Mikael Magnusson
screen_find_monitor() should perhaps contain that big hunk of logic, I don't know if anything will break now that it returns screen_num_monitors sometimes. We'll see!
2007-09-04ANSI function declarations, ie () -> (void)Mikael Magnusson
2007-09-04Fix calling functions with wrong number of argumentsMikael Magnusson
2007-08-22Hide the desktop cycle popup when the focus cycle popup is shown.Mikael Magnusson
2007-08-07Another leaked Rect *aMikael Magnusson
2007-08-04don't make omnipresent windows lose focus when changing desktops. this is ↵Dana Jansens
done by allowing focus_fallback to specify if focus has been lost or not. usually if you're call it, focus is lost, but not always.
2007-08-03fallback focus when removing a desktop without doing a fake desktop switchDana Jansens
2007-08-03show a popup notification when switching desktops (also make all the config ↵Dana Jansens
options export time in milliseconds not half milli half micro)
2007-08-03new least-intrusive focus stealing preventionDana Jansens
2007-08-01remove focus-stealing-prevention stuff, don't use user_time crap at all. it ↵Dana Jansens
is broken in every application that has ever used it. ever. ever. \^_^/;;;
2007-07-26use the moveresize client to find the active monitor tooDana Jansens
2007-07-20don't move parents and children over when inserting desktops - cuz then they ↵Dana Jansens
all get moved a bunch of times, just move the top direct parent
2007-07-17remove trailing whitespaceMikael Magnusson
2007-07-12adding trunkDana Jansens
Signed-off-by: Dana Jansens <danakj@orodu.net>
2007-07-10user-sepcified marginsDana Jansens
2007-06-29compliance over functionlityDana Jansens
2007-06-23warp desktops when you hit the edge of the screen while moving a windowDana Jansens
2007-06-23move logic for add/remove desktop into screen.cDana Jansens
2007-06-21only enable automatic composite redirection for the client windows, not the ↵Dana Jansens
frames. maybe this will avoid screen artifacts with the crap server support
2007-06-20get the offscreen pixmaps for all windows (including their frames)Dana Jansens
2007-06-19backwards macroDana Jansens
2007-06-19check for damage and render extensions if going to use composite. require ↵Dana Jansens
them for it. also include the cflags/libs. and only run the xcomposite stuff so far when the server supports it
2007-06-19redirect window contents to offscreen pixmaps with composite so they are ↵Dana Jansens
available for use.
2007-06-13raise windows smartly when merging desktopsDana Jansens
2007-06-13improve the add/remove desktop actions a bunch.Dana Jansens
make the lastdesktop action not assert if you remove a desktop (i think it could have)
2007-06-13fix focus flicker on sendto+followDana Jansens
2007-06-13don't raise windows when moving them between desktops in some casesDana Jansens
2007-06-13don't force reconfigure in a number of places, also eat enter events when ↵Dana Jansens
reconfiguring. yay
2007-06-13fix the optimizeDana Jansens
2007-06-13optimizeDana Jansens
2007-06-13wrong vriablesDana Jansens