AgeCommit message (Collapse)AuthorFilesLines
2011-02-22Merge branch 'master' of git:// Spilsbury27-854/+2142
Conflicts: gtk/window-decorator/decorator.c
2011-02-21Fix initial stacking issuesSam Spilsbury1-1/+3
2011-02-21Fix down-left shift and wrong offsets for default decorations.Sam Spilsbury5-55/+54
Initialize settings before creating decoration frames
2011-02-21Relicence eventsource.cpp to MITSam Spilsbury1-11/+18
2011-02-21Fix memory leaksSam Spilsbury7-20/+83
- Use gtk_main_quit (); - Don't create gconf clients where we don't need to
2011-02-21Remove dead codeSam Spilsbury3-16/+0
2011-02-21Update copyright infoSam Spilsbury18-2/+412
2011-02-21Fix title scales not updating on theme changeSam Spilsbury2-0/+9
2011-02-21Also store correct pointer type and unref on exitSam Spilsbury1-13/+17
2011-02-21Prevent spurious frame creation and deletionSam Spilsbury1-0/+8
Bare, default and switcher decorations never change and they need to come and go, so keep references to them
2011-02-21Fix 2D Mode.Sam Spilsbury1-11/+26
Don't refresh shadow info (and check windows in paint list) if compositing is not active and set the border and max border properties for the default window type decoration (Without these properties, CompWindow::input () would return 0,0,0,0 and an output frame wouldn't be created)
2011-02-21Initialize variable. Fixes valgrind warningSam Spilsbury1-1/+2
2011-02-21Check if string is empty correctly. Fixes checks for CMAKE_BUILD_TYPESam Spilsbury1-6/+6
string being empty always returning true and thus the CMAKE_BUILD_TYPE being set to something the user didn't want
2011-02-21Read w->input () rather than the internal input extents.Sam Spilsbury1-8/+5
This provides information about the current state of the decoration extents in core, rather than our own information about the window decoration itself. Reverts part of 4ae95852e53075caed15586620127f0c1405fe474 Fixes unresponsive decorations in kde4-window-decorator and decorations initially "not responding" when you click on them (b.c.o #20)
2011-02-20Set default value for vpSize before loading plugins.Sam Spilsbury1-3/+10
There is a race where vpSize won't be updated to its "true value" until we reach core's option change callback or we read the value from the configuration plugin. Since we load all the plugins at once on screenInitPlugins on the command line, some plugins require that this value be set to *something* (It can be changed later) before they are initialized. Fixes incorrect vertex settings with cube, causing it to zoom out infinitely when switching viewports when loaded when compiz starts
2011-02-19Sync after ungrabbing the server.Sam Spilsbury1-0/+1
Turns out that XUngrabServer is not a synchronous call, so there is a race condition with the new startup order where the ungrab server request will sit in the output buffer waiting to be processed and the server won't actually be ungrabbed when we start loading plugins. This can have all kinds of side effects, for example when initializing GConf with GDBus, there will be a call to dbus-launch --autostart to try and get the session bus ID which will fail if there is still a server grab that hasn't been released (since it attempts to read X11 properties) Fixes LP: #691561
2011-02-19Map and unmap the switcher window directlySam Spilsbury1-19/+2
2011-02-19Update TODOSam Spilsbury1-1/+13
2011-02-19Cleanup init_settings some more, move the switcher stuff out into theSam Spilsbury2-24/+9
frame ctor and move USE_GCONF into one big ifdef
2011-02-19Store settings data in its own structSam Spilsbury9-139/+149
Prevents namespace issues and makes it more clear where to access this data.
2011-02-18Cleanup.Sam Spilsbury3-149/+143
Move things to where they should be, remove dead code
2011-02-18Add memory management to framesSam Spilsbury9-324/+624
We don't need to keep all the frame definitions around in memory all the time, so refcount them and only add them if we actually need them.
2011-02-17Add frame types system, allocate to hash table and use them to manageSam Spilsbury4-138/+207
2011-02-17Add frames refcounting systemSam Spilsbury9-24/+74
2011-02-17Cleanup meta_update_border_extents functionSam Spilsbury1-23/+16
Don't need to retrieve the frame all the time, just get it once
2011-02-17CleanupSam Spilsbury5-64/+34
decor_frame_type is available in decor_t now, so no need to get that manually
2011-02-17Added simple frames management system.Sam Spilsbury11-62/+61
Right now this just keeps the frames in a private area and returns a pre-allocated frame, but it will be expanded to allow reference counting on frames and allocation on-demand
2011-02-17Generalize shadow_only decoration into window decorations listSam Spilsbury4-38/+65
Remove debug message
2011-02-16Remove more dead codeSam Spilsbury1-2/+0
2011-02-16Generalize switcher into another decoration frame typeSam Spilsbury5-201/+273
2011-02-16Move _default_decoration into another decor_frame_t in decor_framesSam Spilsbury5-74/+18
No need to have another structure lying around for this ...
2011-02-16Fix shadows of non-default frame windowsSam Spilsbury2-17/+37
Include frame information when drawing the shadow outline and also get the metacity frame type from this information rather than the WnckWindow
2011-02-16Fix cairo modeSam Spilsbury3-62/+58
* Make sure we set the theme fptrs for get_title_scale on startup * Use the frame reference in the decor_t since that works for default decorations too
2011-02-15Fix crash when changing themeSam Spilsbury4-18/+19
Connect up the signal handler for the style change correctly.
2011-02-15Make the switcher a decoration frame.Sam Spilsbury8-85/+27
It is still separate to the normal "window type" decoration, but at least now it has access to everything it needs
2011-02-15Allow different font types in frames.Sam Spilsbury11-145/+253
Currently we used a single PangoContext and PangoFontDescription for everything ... this resulted in custom frames having the same titlebar size which wasn't any good. This commit changes a lot, namely: * Frame is now linked to the decoration object itself * Moved style windows into the frame * Moved font context and font description into the frame * Added API for getting the titlebar font size: obviously with the cairo decorations there isn't supposed to be any kind of visual difference here but with the metacity decorations we need to get that directly from libmetacity. It should be noted that these commits are in need of a cleanup ... which is coming in the next few commits.
2011-02-14Add frame management systemSam Spilsbury8-304/+432
There are different types of frames that we will need to support - like the GIMP's utility toolbox windows - we need to have stored separate frames in order to support them
2011-02-14Add definitions for different border typesSam Spilsbury1-1/+22
2011-02-14Add support for drawing with different metacity theme typesSam Spilsbury2-18/+36
2011-02-13Don't catch resize notifications on startupSam Spilsbury1-0/+13
DecorWindow::update might call updateWindowOutputExtents which calls ::resizeNotify ... since this loops over all windows it is not safe to have this function called.
2011-02-12Remove debugging messageSam Spilsbury1-3/+1
2011-02-12Slight optimization. Don't recalculate clip region on every paint, butSam Spilsbury2-16/+40
only where it makes sense to.
2011-02-12Fix artefacts in shadow clipping.Sam Spilsbury2-4/+12
Intersect the clip region already computed by core with the output region of the window so that we don't display parts of the window that might be occluded
2011-02-12Clip shadows where it makes senseSam Spilsbury2-1/+125
2011-02-11Merge branch 'master' of git:// Spilsbury16-80/+342
Conflicts: gtk/window-decorator/decorator.c
2011-02-11Merge branch 'master' of ↵Sam Spilsbury1-1/+2
2011-02-11Merge branch 'master' of git+ssh:// Spilsbury1-2/+2
2011-02-11Convert modifier masks from virtual to real ones before grabbing button.Sam Spilsbury1-13/+18
Also skip ignored modifier if it is also in the cleared ignored bits
2011-02-11Remove "semi-tracked" created windows on DestroyNotify.Sam Spilsbury1-0/+11
Fixes LP: #709461
2011-02-10Make the switcher window being override redirect.Sam Spilsbury14-75/+269
Previously the switcher window was a normal managed window (which the switcher plugin actually lied about, see SwitchWindow::managed), such that the decorators could pick it up and draw the switcher decoration. However now with reparenting, this means that whenever we actually manage and unmanage the switcher window (eg with map and unmap) it means we must also reparent the window, which floods the server with requests and makes the switcher slow. Since we don't interact with the switcher window, it makes no sense to manage it like this, so make it override redirect