Commit Graph

2038 Commits

Author SHA1 Message Date
Owen W. Taylor
52638b9d8e In case of GConf failure, fall back to local keybinding values
Always compile the default keybindings into Metacity, and if we
fail to retrieve the values from GConf, use the compiled-in
value. This makes things more robust especially in an environment
like JHBuild where GConf-schema-installation may not work
correctly.

Also use these values for the no-GConf case, rather than
having a separate arrray and code path.

http://bugzilla.gnome.org/show_bug.cgi?id=576127
2009-04-24 09:54:18 -04:00
Colin Walters
514d00698d Add support for a "meta key" which initiates extended WM operations
This patch adds the concept of a special key for WM operations, and
the default is Super_L, which on extended PC hardware is the
"Windows key".  What we do is handle the special case of a press
and release of this key (without any other intervening keys).

Super_L+<key> should still be passed to applications.  In the future
we may want to also take some of these keybindings (e.g. Super+TAB)
though.

http://bugzilla.gnome.org/show_bug.cgi?id=563047
2009-04-24 09:54:18 -04:00
Owen W. Taylor
c4a4de0056 Fix return transfer annotations for a number of functions and add docs
Add return transfer annotations (and while I was at it, docs), for
public functions that return MetaDisplay, MetaWindow, and MetaScreen.

http://bugzilla.gnome.org/show_bug.cgi?id=561297

http://bugzilla.gnome.org/show_bug.cgi?id=580027
2009-04-24 09:54:17 -04:00
Owen W. Taylor
28a4be2536 Add meta_workspace_set_builtin_struts()
Add a function to set a list of "built-in" struts for a workspace;
these are struts that are combined with the struts of the windows in
the workspace when determining the work area of the workspace.

http://bugzilla.gnome.org/show_bug.cgi?id=561297

http://bugzilla.gnome.org/show_bug.cgi?id=580026
2009-04-24 09:54:17 -04:00
Dan Winship
6e9803cd9f Add ::window-added and ::window-removed signals to MetaWorkspace
Add sigals to MetaWorkspace to allow tracking when windows are added
and removed. Note that on window creation that these signals are fired
before the window setup is totally complete, so they need to be used
with some care. (For example, the compositor, if present, has not
been notified of the new window.)

http://bugzilla.gnome.org/show_bug.cgi?id=580025
2009-04-24 09:54:17 -04:00
Owen W. Taylor
63b1d6642c Improve handling of errors when calling CompositeNameWindowPixmap
To guard against CompositeNameWindowPixmap failing, just use an
error trap. Previous code used:

 GrabServer/GetWindowAttributes/CompositeNameWindowPixmap/UngrabServer

To prevent BadMatch errors from !viewable, but didn't check the
return value of GetWindowAttributes and didn't check if an error
occured during the error trap. This way is more correct and more
efficient.

http://bugzilla.gnome.org/show_bug.cgi?id=580023
2009-04-24 09:54:17 -04:00
Owen W. Taylor
626912a9a4 Merge branch 'gnome-2-26' into master
Conflicts:
	configure.in
	src/core/schema-bindings.c
2009-04-08 16:11:12 -04:00
Tomas Frydrych
2e0cd7af5e Fixed focus handling in finish_minize().
When the window being hidden/mimimized has focus, is modal, but is not on the
  currently active workspace (e.g., during workspace switch before the new
  focus window is activated), we must prevent focus being passed to the modal
  window ancestor (otherwise the ancestor ends up being forcefully moved onto
  the active workspace).
2009-04-07 13:02:57 +01:00
Tomas Frydrych
8ccb9e04eb Postpone creation of the guard window until we are ready to manage windows.
Creating the gard window when constructing MetaScreen causes the screen to
  go black for the duration of Metacity startup which is uggly. We do not
  actually need that window until we are ready to manage windows on the screen.
2009-04-02 12:25:53 +01:00
Owen W. Taylor
8ab9ed5d4e Expose meta_window_get_icon_geometry()
Make meta_window_get_icon_geometry() public, so that it can be used
to from plugins to animate windows minimizing to the correct
position.

Based on a patch from Cosimo Cecchi <cosimoc@gnome.org>

http://bugzilla.gnome.org/show_bug.cgi?id=571109
2009-03-31 17:29:48 -04:00
Owen W. Taylor
4253ff8e12 Add a "toggle_recording" keybinding
Add a keybinding (defaulting to <Control><Shift><Alt>r) to record
a screencast of the session. This isn't hooked up to anything in
metacity itself, but a plugin can connect to a signal on MetaScreen.

keybindings.c all-keybindings.h: Add the keybinding
screen.c: Add a ::toggle-recording signal

http://bugzilla.gnome.org/show_bug.cgi?id=575290
2009-03-13 17:06:04 -04:00
Owen W. Taylor
fb7b820187 Cleanup: split MetaSide from MetaDirection
The MetaDirection enumeration had META_SIDE_* values in it that
were used in some places where an enum with only four directions
was needed. Split this off into a separate enum called MetaSide
and use that enum name where appropriate.
2009-03-17 16:53:01 -04:00
Dan Winship
a47bb96536 Add a MetaScreen:restacked signal and expose MetaWindow.layer
Expose restacking and a window's stack layer to allow a compositor
to insert elements into the window stack in the right location.
(See Bug 571827 – hide panel when screensaver is active)

src/core/stack.h src/include/common.h: Move MetaStackLayer to
 a public header.

src/core/screen.c src/core/screen-private.h src/core/stack.c:
 Add a ::restacked signal emitted after we finish restracking.

src/core/window.h src/include/window.h: Add meta_window_get_layer()
2009-03-12 17:07:27 -04:00
Dan Winship
0e256a21a5 Use GDestroyNotify instead of custom type, for better introspectability 2009-03-25 10:50:40 -04:00
Tomas Frydrych
3b864f8af5 Delay creation of overlay window until we are ready to show the stage.
The overlay window was created before the plugins are loaded. Because the
  composite extension immediately maps the window, we ended blanking the screen
  while plugins, etc., were loading. This commit reorganizes the code so that
  the overlay window is only created just before we are ready to show the
  stage.

  The significant impact of this change is that plugins cannot manipulate the
  overlay window during their initial loading, i.e., they cannot call the
  input-region API (the plugin should hook into the "show" signal if it needs
  to do anything of this sort).

  The commit also removes the XClearArea() call on the overlay window that
  seems to have served no real purpose.
2009-03-30 16:56:52 +01:00
Dan Winship
f78390b094 Notify the compositor of new windows slightly sooner.
In particular, make it so that we call meta_compositor_add_window() on
a new window before calling meta_compositor_sync_stack() to position
it. The list returned by mutter_plugin_get_windows() is only updated
by sync_stack(), but sync_stack() only pays attention to windows that
add_window() has already been called on. So without this change, a
newly-mapped window will not be returned by
mutter_plugin_get_windows() until after the *next* restacking.

http://bugzilla.openedhand.com/show_bug.cgi?id=1512
2009-03-18 15:09:15 -04:00
Tomas Frydrych
0b635aafae Make prototype for meta_window_find_root_ancestor() public. 2009-03-19 16:01:32 +00:00
Tomas Frydrych
31f48c0cf0 Removed unnecessary g_object_ref/unref() bracketing around g_object_notify(). 2009-03-17 12:28:00 +00:00
Tomas Frydrych
cd0ef08783 Added MetaWindow::fullscreen property (read only). 2009-03-17 12:27:13 +00:00
Tomas Frydrych
4203fd2993 Added MetaWorkspace::n-windows property (read-only). 2009-03-17 08:54:19 +00:00
Tomas Frydrych
54e56a47da Moved meta_window_get_outer_rect() prototype to window.h
Useful for plugins.
2009-03-17 08:35:17 +00:00
Dan Winship
8216cbc4f6 Revert a seemingly non-functional and erroneous part of the no-tab-popup change
http://bugzilla.o-hand.com/show_bug.cgi?id=1446
2009-02-12 15:07:40 -05:00
Tomas Frydrych
9a4d1d1375 Moved bunch of prototypes from display-private.h to display. 2009-03-12 14:48:22 +00:00
Dan Winship
616e140420 Ignore override-redirect windows when restacking based on window groups.
http://bugzilla.gnome.org/show_bug.cgi?id=571616 /
http://bugzilla.openedhand.com/show_bug.cgi?id=1461
2009-02-26 09:59:14 -05:00
Emmanuele Bassi
050c1e268d Do not use Fixed values with COGL
The COGL API expects floating point values, not fixed point ones.
2009-03-10 12:52:03 +00:00
Tomas Frydrych
7afc4310f6 Added no_more_x_calls flag to MutterWindow.
Once the window destruction is initiated, we can still manipulate our
  MutterWindow with clutter API, but we can not longer use any X-based API,
  or MetaWindow API to query it.
2009-02-18 12:13:36 +00:00
Tomas Frydrych
39a3bb2c7d Sync up to upstream 2.25.144
Conflicts:

	configure.in
	src/core/main.c
	src/core/prefs.c
	src/core/window.c
	src/include/prefs.h
2009-02-12 17:14:12 +00:00
Tomas Frydrych
081272c5a9 Distcheck fixes. 2009-02-12 10:48:59 +00:00
Tomas Frydrych
f4bc825cf8 Do not destroy the GLX texture during redecoration.
Just ensure that it is on the top of the internal actor stack.
2009-02-11 14:20:37 +00:00
Tomas Frydrych
fb1fc4e7c6 Do not run map effect if the map is because window is getting redecorated. 2009-02-11 14:20:01 +00:00
Tomas Frydrych
ed3d222327 Recreate internals of MutterWindow when the decoration status changes. 2009-02-11 12:55:59 +00:00
Tomas Frydrych
8c0ae7be83 Turned window decorated flag into MetaWindow::decorated property.
This allows things like the compositor to easily track decoration status.
2009-02-11 12:16:41 +00:00
Tomas Frydrych
5780ffad12 Added MutterWindow::no-shadow property
Allows to specify that a window that otherwise would have shadow should not.
2009-02-10 10:22:35 +00:00
Tomas Frydrych
770a6f0138 Actually, if the parent of MutterWindow is a container, use the interface.
Just unparenting the window does not automatically remove it from it's
  parent.
2009-02-09 17:01:37 +00:00
Tomas Frydrych
16d49695ad Unparent rather than destroy MutterWindows.
clutter_actor_destroy() is pure evil, wreaking havoc in reference tracking.
2009-02-09 16:39:26 +00:00
Joshua Lock
6893ef034b Intialise *style to NULL.
*style being unitialised raises a warning which causes problems on systems which enable warnings as errors (-Werror).
2009-02-09 14:48:08 +00:00
Tomas Frydrych
3e754a6f35 Fixed handling of _NET_WM_WINDOW_OPACITY. 2009-02-06 11:16:33 +00:00
Thomas James Alexander Thurman
b2da6d86f3 queue resize on window undecorate
* src/core/frame.c: queue resize on window undecorate


svn path=/trunk/; revision=4114
2009-02-05 01:06:15 +00:00
Luca Ferretti
00192b019c Fix description, focus the desktop, not desktop backgroung (Closes bug
2009-02-03  Luca Ferretti  <elle.uca@libero.it>

	* src/include/all-keybindings.h: Fix description, focus the
	desktop, not desktop backgroung (Closes bug #569649)

svn path=/trunk/; revision=4112
2009-02-03 08:39:34 +00:00
Thomas James Alexander Thurman
21416f453a Wrap g_error calls in braces.
* src/core/schema-bindings.c: Wrap g_error calls in braces.


svn path=/trunk/; revision=4110
2009-02-03 02:21:36 +00:00
Thomas James Alexander Thurman
e5db44ca90 Set prop_hooks_table to NULL after freeing it.
* src/core/window-props.c:


svn path=/trunk/; revision=4103
2009-02-01 20:47:33 +00:00
Thomas James Alexander Thurman
a203fb1037 Window properties are looked up in a hash table rather than
by iteration over an array.  Saves ~44us per window, but
        also makes the code cleaner.
	* src/core/display-private.h:
	* src/core/window-props.c:


svn path=/trunk/; revision=4097
2009-01-29 14:32:31 +00:00
Thomas James Alexander Thurman
8e6c0bec78 some lists failed to keep track of their contents and therefore didn't
* src/core/edge-resistance.c: some lists failed to keep track
          of their contents and therefore didn't free correctly.
          Closes #552303.


svn path=/trunk/; revision=4095
2009-01-28 02:30:30 +00:00
Thomas James Alexander Thurman
69ae9e4a9d Free name of old theme when new theme is loaded.
* src/core/prefs.c: Free name of old theme when new theme
          is loaded.


svn path=/trunk/; revision=4094
2009-01-28 02:08:09 +00:00
Thomas James Alexander Thurman
1381f6d5f2 free the result of gdk_text_property_to_utf8_list() even when it returns
* src/ui/ui.c: free the result of gdk_text_property_to_utf8_list()
          even when it returns no data.


svn path=/trunk/; revision=4093
2009-01-28 02:00:33 +00:00
Owen Taylor
a6c951352f GtkStyle is specific to a particular colormap. Metacity uses different
2009-01-27  Owen Taylor  <otaylor@redhat.com>

       GtkStyle is specific to a particular colormap. Metacity
       uses different colormaps for windows with different
       visuals, so it must specialize the GtkStyle.

       Closes #568365 and #513944.

       * src/ui/frames.[ch]: Keep a GtkStyle for each MetaUIFrame, which is
         obtained by calling gtk_style_attach() on the style for the
         MetaFrames. When the style of the MetaFrames changes, reattach
         everything. When we call gtk_style_set_background() pass in the
         right style.

       * src/ui/themes.[ch]: Create a _with_style() variant of functions that
         previously took the style from widget->style passed in, so we
         can draw with the right style for the colormap.


svn path=/trunk/; revision=4092
2009-01-28 01:47:18 +00:00
Thomas James Alexander Thurman
0a172cc053 Added a gconf key to swap the meanings of the right and
middle buttons when the modifier key is held down.
        Closes #437910.  Thanks to Matt Kraai for looking over
        the patch.
	* src/core/display.c:
	* src/core/prefs.c:
	* src/include/prefs.h:
	* src/metacity.schemas.in.in:


svn path=/trunk/; revision=4091
2009-01-27 21:05:42 +00:00
Thomas James Alexander Thurman
f5fa4a3866 All the window properties are now handled using simple
window property handlers.  Closes #549886.
	* src/core/window-private.h:
	* src/core/window-props.c:
	* src/core/window.c:


svn path=/trunk/; revision=4090
2009-01-27 05:03:06 +00:00
Thomas James Alexander Thurman
8cbcbb0655 More of the window properties are checked using simple
window property handlers.  The ones which remain don't
        actually look up the new value in the ordinary way, and
        so are a little trickier to merge.  Added an "initial"
        flag to be on the safe side that the behaviour is the
        same as before (so we don't do things when a window's
        first mapped that we only used to do when a property
        changed).  Partial fix for bug #549886.
	* src/core/window-props.c:
	* src/core/window-props.h:
	* src/core/window.c:


svn path=/trunk/; revision=4089
2009-01-27 03:53:07 +00:00
Thomas James Alexander Thurman
35d9d2864f add support for _NET_WM_MOVERESIZE_CANCEL.
* src/core/window.c: add support for _NET_WM_MOVERESIZE_CANCEL.


svn path=/trunk/; revision=4088
2009-01-25 22:59:50 +00:00
Thomas James Alexander Thurman
77cb0db9c2 add meta_theme_draw_frame_by_name, which is needed for the theme editor.
* src/ui/theme.[ch]: add meta_theme_draw_frame_by_name, which
          is needed for the theme editor.


svn path=/trunk/; revision=4074
2009-01-11 04:48:54 +00:00
Jonathan Matthew
ee738f1d6f Defer hiding windows until effects finish
Add 'hide_after_effect' flag to MutterWindowPrivate, tracking
whether the window needs to be hidden after all outstanding effects
finish.

Set or clear the flag as appropriate in clutter_cmp_set_window_hidden.

In mutter_window_effect_completed, if hide_after_effect is TRUE
and no other effects are in progress, hide the window.
2009-01-05 20:26:47 +10:00
Tomas Frydrych
17c10f60d9 Fixed process_tab_grab()
When there is custom handler installed for the tab releavant tab function
  we do not want to actually call it form inside of this function, only to
  ensure that the grab is not released. The handler will get called in the
  normal way in process_event(). Whoever installed the handler (and requested
  the grab) also has to ensure the grab is released.
2009-02-03 17:30:49 +00:00
Tomas Frydrych
24823e19e0 Ensure that if custom handler is installed for one of the shortcuts that do
keyboard grab, the custom handler gets also called while the grab is in place.
2009-02-03 13:23:08 +00:00
Tomas Frydrych
c8e967ba1c Store the default keybinding handler alongside the custom one.
This allows us to fall back onto it if the custom handler removes itself.
2009-02-03 13:20:51 +00:00
Tomas Frydrych
f7aa5f8653 Ensure that we do not attempt to free the tab popup when there is none. 2009-02-03 13:16:01 +00:00
Tomas Frydrych
6da5a5abcb Handle gconf errors better for string values in preferences. 2009-02-03 10:15:23 +00:00
Dan Winship
0fdb644454 Make compositor private a GObject than a void pointer
Requiring the compositor private object to be a GObject allows the
return value of meta_window_get_compositor_private() to be used
via gobject-introspection, since the type and memory management
can be determined.

This allows a reverse mapping from MetaWindow to MutterWindow.

- Change meta_window_get/set_compositor_private to use GObject
  rather than void *
- Adapt code in compositor-mutter.c to match.
2009-02-02 15:16:05 -05:00
Tomas Frydrych
f6a3ba26f9 Can't g_free() MetaDisplay GObject. 2009-02-03 09:11:32 +00:00
Tomas Frydrych
d1920788ac Move meta_display_get_tab_*() functions into display.h 2009-02-02 17:01:27 +00:00
Tomas Frydrych
fc1ff18ca7 Added meta_screen_(un)grab_all_keys() to keybindings.h. 2009-02-02 16:53:38 +00:00
Tomas Frydrych
5f9a4ab8cc Do not allocate the tab_pop up object at all when the --no-tab-popup option is set
This option is intended primarily so that and Alt+Tab implementation can be
  provided in a plugin, so having the object around makes no sense.
2009-02-02 15:28:26 +00:00
Tomas Frydrych
920a847508 --no-tab-popup && no-tab-popup gconf key
Disables the use of popup (and highlight frame) for window cycling.
2009-02-02 14:09:04 +00:00
Tomas Frydrych
1e17ba1768 MetaWindow::raised signal. 2009-02-02 14:08:46 +00:00
Tomas Frydrych
e17377d407 MetaWindow::focus signal. 2009-02-02 11:00:13 +00:00
Tomas Frydrych
b47459af58 meta_keybindings_switch_window()
Public function to switch to the next window in Alt+Tab like fashion.
2009-01-29 16:26:12 +00:00
Tomas Frydrych
986bdac451 Removed const qualifier from key_handlers[] so we can modify it; use find_handler() in meta_keybindings_set_custom_handler(). 2009-01-29 15:29:43 +00:00
Tomas Frydrych
b5b37d72a3 Install keybindings.h 2009-01-29 15:14:25 +00:00
Tomas Frydrych
096e3dee8f Implemented meta_keybindings_set_custom_handler(). 2009-01-29 15:07:57 +00:00
Tomas Frydrych
e25282088b Expose keybindings data types; add user_data parameter the handler signature. 2009-01-29 14:53:03 +00:00
Tomas Frydrych
da36829f96 Rename keybindings.h to keybindings-private.h 2009-01-29 14:16:01 +00:00
Neil Roberts
ff5055834b Pass on MapNotify events to Clutter
Clutter needs to know about MapNotify events otherwise it will never
make the stage visible and nothing will paint.
2009-01-30 11:57:46 +00:00
Neil Roberts
b41abfd1f8 [mutter-shaped-texture] Use the new material api instead of raw GL calls
Now that Cogl has the material API we can use Cogl calls for
multi-texturing instead of directly calling GL.

The MutterShapedTexture actor keeps a handle to a material with the
right combine modes for combining the texture and the shape
mask. Before each paint it sets the layers of the material to be the
two textures.

A second material with different combine modes 1is also created if the
pixmap is 24 bit to implement the workaround from commit 72da8c57.
2009-01-30 11:56:58 +00:00
Thomas Wood
e1cc242b52 Port TextureFrame to the new materials and Clone API
Update TidyTextureFrame using clutter-0-9 branch of NbtkTextureFrame
2009-01-29 13:43:42 +00:00
Thomas Wood
4589d1246d Update to Clutter 0.9
Fixes various API breakage due to switching to Clutter 0.9.
2009-01-28 15:43:36 +00:00
Robert Bragg
66a5edd31a [mutter-shaped-texture] workaround multi-tex combine mode for RGB tfp textures
It seems that with the latest intel drivers when multi-texturing using an RGB
TFP texture, the texture is being setup internally as an RGBA texture, where
the alpha channel is mostly 0.0 so you only see a shimmer of the window. This
workaround forcibly defines the alpha channel as 1.0. Maybe there is some
clutter/cogl state that is interacting with this that is being overlooked,
but for now this seems to work. (Tested on i945 + DRI2)
2009-01-12 13:18:39 +00:00
Tomas Frydrych
a96939be0f MetaWindow::workspace-changed signal.
Emitted when window is moved from one workspace to another; the number of the
  old workspace is passed to the signal handlers.
2009-01-20 12:52:06 +00:00
Tomas Frydrych
cb3870f9f6 Sanity check to ensure we do not try to relocate windows onto NULL workspace. 2009-01-20 12:48:59 +00:00
Tomas Frydrych
25d628aea2 Exposed MetaGroup API. 2009-01-15 15:37:48 +00:00
Tomas Frydrych
aad8eb1999 Added meta_group_get_size() to allow for more efficient check of whether window is part of a larger group. 2009-01-15 15:21:43 +00:00
Tomas Frydrych
fc6b78a20c Ensure that meta_compositor_map_window() is even when we only get MapNotify. 2009-01-12 16:41:06 +00:00
Tomas Frydrych
4b3a8fefb6 Fixed mutter_window_is_override_redirect()
Broken in course of override redirect core changes.
2009-01-12 16:40:25 +00:00
Tomas Frydrych
ec0562550a Added meta_window_get_role(). 2009-01-12 12:30:31 +00:00
Tomas Frydrych
822e125492 Make sure we preserve pre-existing event mask on stage and overlay windows. 2009-01-09 16:28:12 +00:00
Tomas Frydrych
95fa3a3879 Ensure that when a workspace is removed from the middle of the list, the
_NET_WM_DESKTOP props on windows on following workspaces are correctly set.
2009-01-09 15:04:53 +00:00
Tomas Frydrych
d6b974ba15 Print dl error message if load fails. 2009-01-06 11:31:45 +00:00
Tomas Frydrych
ec09ac49f6 Do not attempt to load plugin if module is not usable. 2009-01-06 10:09:16 +00:00
Thomas James Alexander Thurman
c311e96b63 alt-F10 toggles maximisation, alt-F5 only restores. Also rename
* src/include/all-keybindings.h: alt-F10 toggles maximisation,
          alt-F5 only restores.  Also rename "unmaximize" to "restore".
	* src/ui/frames.c: Rename "unmaximize" to "restore".
          Closes #343824.


svn path=/trunk/; revision=4064
2008-12-25 16:53:33 +00:00
Frederic Peters
b66fbc0369 added call to g_thread_init(), as ORBit2 stopped doing it and Metacity is
* src/core/main.c: (main): added call to g_thread_init(), as ORBit2
stopped doing it and Metacity is using gconf; closes #565517.


svn path=/trunk/; revision=4063
2008-12-25 13:06:00 +00:00
Thomas James Alexander Thurman
151ddc08ec add screenshot commands which had mistakenly been removed; closes #564343,
* src/metacity.schemas.in.in: add screenshot commands which had
          mistakenly been removed; closes #564343, Launchpad bug 298463,
          Red Hat bug 474635, and probably others.


svn path=/trunk/; revision=4062
2008-12-24 20:39:00 +00:00
Thomas James Alexander Thurman
b81c7c48d5 fix move_to_corner_se
* src/include/all-keybindings.h: fix move_to_corner_se


svn path=/trunk/; revision=4061
2008-12-24 06:03:56 +00:00
Owen W. Taylor
e11100e584 Restore the ability to use the default effect implementations
The addition of method implementations in the base class in the
plugin-gobject branch broke the logic for checking to see
if a plugin didn't implement an effect. Requiring a mandatory
chain up to the base class is a fiddly anyways, so this patch
does the 'running' count computations in a different (and more
robust) way.

mutter-plugin.h mutter-plugin.c: Add _mutter_plugin_effect_started()
 to increment the running count.
mutter-plugin-manager.c: Call _mutter_plugin_effect_started()
 as necessary.
mutter-plugin.c: Remove the "real" methods that did nothing
 but implement the runnning count.
plugins/default.c: Remove chain-ups.
2008-12-22 16:53:10 -05:00
Thomas James Alexander Thurman
01027006a7 windows which attempt to present themselves but are offscreen end up
* src/core/window.c: windows which attempt to present themselves
          but are offscreen end up demanding attention, unless they
          are transient, when they move to the current workspace
          as before.  Closes #482354.


svn path=/trunk/; revision=4060
2008-12-21 05:35:30 +00:00
Thomas James Alexander Thurman
38faa8fe10 when the user double-clicks the title bar, end the grab op. Closes
* src/ui/frames.c: when the user double-clicks the title bar,
	  end the grab op.  Closes #401028.


svn path=/trunk/; revision=4059
2008-12-19 12:47:11 +00:00
Thomas James Alexander Thurman
45f2ec5f64 patches to fixes for -Wall. Closes #562939.
* src/core/iconcache.c: patches to fixes for -Wall.  Closes #562939.


svn path=/trunk/; revision=4049
2008-12-02 08:15:00 +00:00
Thomas James Alexander Thurman
3b1e91342e gnome-doc-tools version doesn't need to be so high. disable the entire
* configure.in: gnome-doc-tools version doesn't need to be so high.
	* src/compositor/compositor-xrender.c: disable the entire file if the
          compositor is disabled.
	* src/core/async-getprop.[ch]: fixes for -Wall
	* src/core/iconcache.c: fixes for -Wall
	* src/core/testasyncgetprop.c: fixes for -Wall
	* src/core/xprops.c: fixes for -Wall


svn path=/trunk/; revision=4045
2008-12-01 22:54:57 +00:00
Thomas James Alexander Thurman
cf2206352f add casts (#562106)
* src/core/xprops.c: add casts (#562106)


svn path=/trunk/; revision=4038
2008-11-25 23:18:08 +00:00
Thomas James Alexander Thurman
157aa0af6d reviewed by: Thomas Thurman
* src/Makefile.am: reorder compiler flags so local includes come last.
	  Closes #562033.


svn path=/trunk/; revision=4029
2008-11-23 20:29:18 +00:00
Thomas James Alexander Thurman
e146c24483 added
svn path=/trunk/; revision=4027
2008-11-23 20:05:13 +00:00
Thomas James Alexander Thurman
41b6f0803e remove apparently spurious warnings about operations on window "none"
* src/core/display.c: remove apparently spurious warnings about
	operations on window "none"


svn path=/trunk/; revision=4026
2008-11-23 18:53:55 +00:00
Thomas James Alexander Thurman
c2abbce2ed fix stupid infinite loop when GConf is turned off.
* src/core/prefs.c: fix stupid infinite loop when GConf is turned off.


svn path=/trunk/; revision=4024
2008-11-22 19:34:03 +00:00
Thomas James Alexander Thurman
38cd6a6c1f fix two places where there was a warning if GConf was turned off.
* src/core/prefs.c: fix two places where there was a warning
	if GConf was turned off.


svn path=/trunk/; revision=4023
2008-11-22 19:10:50 +00:00
Thomas Thurman
ac365b4ead (Apologies for huge commit; these were done on a transatlantic flight. This is why we need bzr.)
2008-11-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/all-keybindings.h: "backward", not "backwards" throughout.

2008-11-20  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: turned on -Wall and -Werror in order to
          trap as many problems as possible.
        * src/ui/resizepopup.c: added correct #include.
        * src/ui/theme-viewer.c: initialised variable.
        * src/core/xprops.c: corrected cast.
        * src/core/main.c: added warning if chdir() fails.
        * src/core/schema-bindings.c: checking the return
          result of fgets().

2008-11-20  Thomas Thurman  <tthurman@gnome.org>

        Merged screen and window keybinding tables so that
        we can use just one file for the both.  Also incidentally
        closes #528337.  Further efficiencies of scale to come.

        * src/include/prefs.h: replace META_PREF_*_KEYBINDINGS
          with META_PREF_KEYBINDINGS
        * src/core/keybindings.c: replace *_bindings with key_bindings
          and similar throughout; all window-based functions are now
          guaranteed to receive a window so don't need to check for
          themselves
          (find_handler): moved so it can also be called from
                          rebuild_binding_table
        * src/core/display-private.h: replace *_bindings with key_bindings
        * src/core/prefs.c: update_*_binding becomes update_key_binding;
          (change_notify): tidy up references to "enormous if statement"
                           since it's almost entirely gone now
        * src/core/all-keybindings.h: new merged version of
                           screen-bindings.h and window-bindings.h.


svn path=/trunk/; revision=4022
2008-11-22 19:02:54 +00:00
Owen W. Taylor
e083742426 Filter out events handled before the plugin before they get GTK+
Fix a problem where GTK+ was warning
'gdk_window_set_user_time called on non-toplevel' for every button
press and click on the mutter stage by excluding such events from
GTK+ processing.

Add a boolean return value to meta_compositor_process_event that
indicates whether the event has been handled and should be filtered
out of the event stream and for mutter, base that on the return
value of the plugin's xevent_filter vfunc.
2008-11-22 13:07:32 -05:00
Jonathan Matthew
e5fc168a46 ignore minimizing windows in resize_win 2008-12-19 14:08:38 +10:00
Owen W. Taylor
be7067bc0a Handle 0x0 textures by skipping paint/pick
Before we've retrieved a pixmap for a window, the shaped texture
has a 0x0 texture, which will cause mutter_shaped_texture_ensure_mask()
to crash. Just skip all of paint/pick in this case.

http://bugzilla.openedhand.com/show_bug.cgi?id=1283
2008-11-22 11:19:17 -05:00
Thomas James Alexander Thurman
a06d96316e This change adds support for the new _NET_WM_FULLSCREEN_MONITORS
property and client message.  This allows client applications to request
 	that a fullscreen window cover more than one monitor.
 	* src/include/boxes.h:
	* src/core/boxes.c: Add meta_rectangle_union
 	* src/core/window-private.h:
	* src/core/window.c:
 	(meta_window_new_with_attrs, meta_window_free, set_net_wm_state,
 	meta_window_update_fullscreen_monitors, meta_window_client_message): Add
 	MetaWindow property to store fullscreen monitors field, update
 	_NET_WM_FULLSCREEN_MONITORS property on windows, and handle client
 	message.
 	* src/core/atomnames.h: Add _NET_WM_FULLSCREEN_MONITORS atom.
 	* src/core/constraints.c (setup_constraint_info): If
 	_NET_WM_FULLSCREEN_MONITORS is interesting, use the data stored in
 	MetaWindow::fullscreen_monitors to determine the fullscreen area instead
 	of the basic xinerama_info area.


svn path=/trunk/; revision=4021
2008-11-17 02:57:20 +00:00
Thomas James Alexander Thurman
8524f510c6 Removed deprecated calls. Closes #560445.
* src/core/delete.c: remove deprecated g_strcasecmp.
	* src/include/main.h: no actual deprecated call, but
	  a mention of one which was out of date.


svn path=/trunk/; revision=4018
2008-11-12 03:56:01 +00:00
Thomas James Alexander Thurman
39e389cc5b Clean up #includes according to the GNOME Goal.
Closes #560449.  Patch is 122467.
	* src/core/place.c:
	* src/ui/draw-workspace.h:
	* src/ui/gradient.h:
	* src/ui/metaaccellabel.c:
	* src/ui/metaaccellabel.h:
	* src/ui/preview-widget.c:
	* src/ui/preview-widget.h:
	* src/ui/resizepopup.c:
	* src/ui/theme.c:
	* src/ui/theme.h:
	* src/ui/themewidget.h:


svn path=/trunk/; revision=4017
2008-11-12 03:43:51 +00:00
Thomas James Alexander Thurman
d079ef538c updated description of raise_on_click:
* src/metacity.schemas.in.in: updated description of
	  raise_on_click:
	  http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6


svn path=/trunk/; revision=4016
2008-11-10 12:51:33 +00:00
Thomas James Alexander Thurman
c4768a3b9f added dependency on Zenity remove error_on_generic_command() and
* configure.in: added dependency on Zenity
	* src/core/keybindings.c: remove error_on_generic_command() and
	  error_on_terminal_command(); rewrite error_on_command
	  in terms of meta_show_dialog()
	* src/core/util.c: add meta_show_dialog() to call Zenity
	* src/include/util.h: ditto


svn path=/trunk/; revision=4013
2008-11-08 18:51:56 +00:00
Owen W. Taylor
af8d281556 Add a few doc comments with annotations
Add (transfer none) annotations to mutter_window_get_texture()
and mutter_window_get_meta_window(), and while add doc comments,
actually add some docs as well.
2008-11-07 03:23:39 -05:00
Tomas Frydrych
0f73a011ce Fix module use tracking. 2008-12-18 12:56:32 +00:00
Tomas Frydrych
53cea00323 Fix following the renaming of meta_window_get_type() to meta_window_get_window_type(). 2008-12-18 12:46:53 +00:00
Tomas Frydrych
b7466365a1 Removed unused variable. 2008-12-18 12:46:39 +00:00
Tomas Frydrych
3b3226b678 Merge branch 'plugin-gobject' into next-generation
Conflicts:

	src/compositor/mutter/compositor-mutter.c
	src/core/window.c
2008-12-18 12:41:56 +00:00
Tomas Frydrych
ab2e925b65 Fixed xrender compositor following compositor API changes. 2008-12-18 12:37:34 +00:00
Tomas Frydrych
0214ece238 Merge commit 'clutter/override-redirect-core-1' into next-generation 2008-12-18 12:28:01 +00:00
Tomas Frydrych
a6d04255a8 Fixed bunch of warnings. 2008-12-18 11:05:17 +00:00
Tomas Frydrych
9821453b5f Merge branch 'upstream-2.25.55' into next-generation
Conflicts:

	configure.in
	src/Makefile.am
	src/core/screen-bindings.h
	src/metacity.schemas.in
2008-12-18 11:00:19 +00:00
Tomas Frydrych
c61eb77a70 GObjectified MutterPlugin. 2008-12-17 09:33:56 +00:00
Robert Bragg
13badba158 Adds a clear warning when GLX TFP is not being used
Since this is the most common cause of performance issues, this makes it
clearer when GLX TFP isn't being used. Note, there was a corresponding
fix to clutter_glx_texture_pixmap_using_extension() committed last week
as r3559 in the 0.8 branch.
2008-12-08 12:39:37 +00:00
Colin Walters
57a2d20d61 Add gproperties to MetaWindow: "title", "icon", "mini-icon"
We need these properties to do things outside of the frame, without
dropping to libwnck.

http://bugzilla.gnome.org/show_bug.cgi?id=563405
2008-12-05 20:03:27 -05:00
Colin Walters
8c3bcc7229 Make MetaDisplay a real GObject
We need this to be able to add signals, among other things.

http://bugzilla.gnome.org/show_bug.cgi?id=563047
2008-12-02 17:58:07 -05:00
Robert Bragg
f956853550 No longer handle ConfigureNotify events directly in mutter
We are now informed of window moves/resizes via callbacks from
src/core instead.
2008-11-27 13:40:52 +00:00
Robert Bragg
6849735e9d Adds support in src/core for tracking override redirect windows.
The metacity core is now directly aware of override redirect windows.
- They get MetaWindows like normal windows, so mutter no longer need to special
  case them. The net wm types applicable to override redirects are also
  recognised.
- The original positioning/stacking semantics of metacity with respect to OR
  windows are maintained, but now it's easier to synchronize the stacking
  between the core and mutter.
- mutter no longer needs to manualy track UnmapNotify, MapNotify,
  ReparentNotify, CreateNotify and DestroyNotify events; instead map, unmap,
  add and remove events can now be consistently delivered via the
  MetaCompositor callbacks.
2008-11-23 19:28:40 +00:00
Owen W. Taylor
06817df975 Add a 'n-workspaces' property to MetaScreen
Add a 'n-workspaces' property to MetaScreen to allow for notification
when the number of workspaces changes.

http://bugzilla.gnome.org/show_bug.cgi?id=561297
2008-11-17 17:22:28 -05:00
Owen W. Taylor
98ccfea388 Make MetaScreen and MetaWorkspace GObjects
src/core/screen.c src/core/screen-private.h src/include/screen.h:
Make MetaScreen a GObject.

src/core/workspace.c src/core/workspace-private.h src/include/workspace.h:
Make MetaWorkspace a GObject. Rename meta_workspace_free() to
meta_workspace_remove().

http://bugzilla.gnome.org/show_bug.cgi?id=561297
2008-11-17 15:56:34 -05:00
Neil Roberts
1ba3b3dd7d [mutter-shaped-texture] Create a rectangle texture if needed
If the window texture was created using the GL_TEXTURE_RECTANGLE_ARB
extension then also create a rectangle texture for the shape texture.
2008-11-17 16:15:00 +00:00
Owen W. Taylor
9a1be03205 Make MetaWindow a GObject
Make MetaWindow into a GObject so that it is accessible to
gobject-introspection (also allows for signals to be added.)

Renames:

 meta_window_free() => meta_window_unmanage()
 meta_window_get_type() => meta_window_get_window_type()
 meta_window_get_type_atom() => meta_window_get_window_type_atom()
2008-11-07 04:57:00 -05:00
Tomas Frydrych
026008a700 Fix to allow windows created from within Mutter itself to be managed. 2008-12-02 12:11:06 +00:00
Owen W. Taylor
b26fc771b1 Drain the clutter event queue
When multiple events are generated from a single event (for example,
when a motion event generates an enter/leave pair), events accumulate
in the clutter event queue if the clutter event source is not running.
Add a simple event source that checks clutter_events_pending() and
dispatches events as necessary.
2008-11-05 17:49:55 -05:00
Tomas Frydrych
04619df818 Added timestamp parameter to meta_window_change_workspace_by_index(). 2008-11-25 15:34:07 +00:00
Tomas Frydrych
c1928ead7c Exposed meta_display_get_current_time/_roundtrip(). 2008-11-25 15:24:48 +00:00
Tomas Frydrych
b43f9aec5a Fixed clutter-less build. 2008-11-25 12:26:26 +00:00
Tomas Frydrych
79d749fc82 Install atomnames.h 2008-11-24 11:25:12 +00:00
Tomas Frydrych
bcc5f104db Merge branch 'work' into clutter 2008-11-20 12:43:25 +00:00
Tomas Frydrych
99f6b2cdce meta_screen_get_active_workspace() 2008-11-20 12:41:28 +00:00
Thomas Wood
75d3845801 Add missing include header dependencies 2008-11-20 11:51:56 +00:00
Tomas Frydrych
c8e0acfef3 Added missing prototype for meta_compositor_set_window_hidden(). 2008-11-20 09:16:06 +00:00
Tomas Frydrych
da55d8e738 meta_window_change_workspace_by_index() 2008-11-20 09:14:58 +00:00
Tomas Frydrych
40c25dc426 Exposed meta_window_get_startup_id () 2008-11-19 12:30:45 +00:00
Tomas Frydrych
f3a8b2f12e Removed unused variable. 2008-11-07 10:14:36 +00:00
Tomas Frydrych
dcd350dd90 Fixed broken g_object_set_property() call.
Fixing this broken stuff, so it is disabled.
2008-11-07 10:13:40 +00:00
Owen W. Taylor
f826fb1d9a Support GL_ARB_texture_rectangle in MutterShapedTexture
mutter-shaped-texture.c: Retrieve the target from the cogl_texture
  and use it, instead of hardcoding GL_TEXTURE_2D.
2008-11-05 17:45:00 -05:00
Matthew Allum
123f4df31b Add support for setting MUTTER_DISABLE_MIPMAPS env var. 2008-11-05 11:48:07 +00:00
Robert Bragg
3211fb04d3 Merge branch 'fix-stacking' into clutter 2008-11-04 15:26:17 +00:00
Robert Bragg
17e12ccb6d [meta_window_hide] make sure the right xwindow gets mapped for live preview 2008-11-04 14:55:46 +00:00
Tomas Frydrych
6eab4fb9e8 Exposed meta_screen_get_n_workspaces() 2008-11-04 10:27:59 +00:00
Robert Bragg
8f8097aa2c Removes some g_print debugging 2008-11-03 17:49:24 +00:00
Robert Bragg
7a190f33f6 Tries to consider how window->hidden affects existing window->mapped tests
src/core does some things depending on window->mapped, but since we now
leave the window mapped for hidden windows we might get some wrong
descisions.

Also instead of calling meta_window_show when in meta_window_hide for
the case that the window isn't currently mapped, we now simply
XMapWindow.
2008-11-03 12:36:55 +00:00
Tomas Frydrych
7ec7a8fa44 meta_screen_get_active_workspace_index() 2008-11-03 12:32:25 +00:00
Robert Bragg
93b945ea42 Instead of hiding/showing the actors of hidden windows, reparent, it's more reliable
It's more awkward and error prone, considering plugin ininteractions, to simply
show/hide the actors of hidden windows, and it seems to be more reliable to
reparent them to a hidden group instead.
2008-11-03 10:26:21 +00:00
Robert Bragg
0058271aaa Re-works the approach to supporting live preview to handle stacking.
We can't easily use a metacity layer to hide windows as that means we
loose our original stacking position. (Metacity's stack positions are
only valid within a single layer) We now have a "guard window" per
screen that is a fullscreen override redirect that is lowered to the
bottom of the stack. Hidden windows now remain in their original layer
so the stacking position remains valid, but all hidden windows get
XRestacked under the guard window.

A new compositor hook is also added to inform it when a window becomes
hidden/unhidded, this lets us map/unmap the corresponding actor.

missing files in preview commit (TODO: rebase -i and squash this later)
2008-11-03 14:50:22 +00:00
Robert Bragg
cfa45beee1 exposes meta_window_showing_on_its_workspace via mutter_window_showing_on_its_workspace
This e.g. allows a switcher plugin to determine if a mutter window corresponds
to a minimized or visible window
2008-11-03 14:45:28 +00:00
Olav Vitters
f7b0c532aa Fix build by readding accidentally removed '}'.
* src/ui/theme-parser.c: Fix build by readding accidentally removed
	'}'.


svn path=/trunk/; revision=4010
2008-11-02 23:29:09 +00:00
Owen W. Taylor
20ce1e77d9 Don't show_all() the stage and overlay group at initialization.
Calling clutter_actor_show_all() on the stage and overlay_group breaks
the ability for plugins to create initially hidden actors. Call
clutter_actor_show() instead.
2008-10-31 18:59:04 -04:00
Robert Bragg
368346571a Ensure window->compositor_private is initialised in meta_window_new_with_attrs 2008-10-31 12:57:47 +00:00
Robert Bragg
7ea4380725 Adds a compositor_private member to MetaWindow
Since we often need to find a MutterWindow corresponding to a MetaWindow
this make it a simple de-reference of a compositor private pointer.
2008-10-31 09:10:10 +00:00
Owen W. Taylor
15daecacdc Allow absolute paths instead of plugin names
If a mutter plugin name (in GConf, or more likely on the command line)
looks like an absolute path, use that path directly rather than
looking for the plugin in the plugins directory.
2008-10-31 02:13:53 -04:00
Owen W. Taylor
1b943f8191 Add --mutter-plugins command line argument
src/core/main.c: Add --mutter-plugins argument (overrides GConf value)
src/core/prefs.c src/include/prefs.h: Add meta_prefs_override_clutter_plugins()
   to set a value for clutter_plugins that overrides the value from GConf
2008-10-31 08:33:37 -04:00
Robert Bragg
6d8baea4c2 [stacking] Simplifies the way compositor code has to handle stacking
The compositor now gets handed a GList of MetaWindows when the stacking
gets syncd with the X server.
2008-10-30 22:09:48 +00:00
Thomas James Alexander Thurman
4c9bfecac5 variable names in messages should be double-quoted. Closes #558309.
* src/ui/theme-parser.c: variable names in messages should be
	  double-quoted.  Closes #558309.


svn path=/trunk/; revision=4009
2008-10-29 23:38:48 +00:00
Owen W. Taylor
6683b5efff Clean up messages when loading plugins
Remove a "got here" leftover, remove unnecessary trailing \n when
calling g_message(), include g_module_error() in the output when
loading a module fails.
2008-10-29 14:40:51 -04:00
Owen W. Taylor
783e51281a Fix installation with --disable-static
If --disable-static is passed to configure, then .a files won't be built
or installed. Make removing them in install-exec-hook not fatal if they
don't exist.
2008-10-29 11:58:43 -04:00
Thomas James Alexander Thurman
5dc36e1201 fix accidental name change of run_command_terminal. Closes #557943.
* src/include/screen-bindings.h: fix accidental name change of
	  run_command_terminal.  Closes #557943.


svn path=/trunk/; revision=4008
2008-10-28 13:12:33 +00:00
Thomas Thurman
7405f040e8 Add initialisation which I missed on the previous checkin. Also an extra
2008-10-27  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (titlebar_handler, handle_preference_update_enum):
        Add initialisation which I missed on the previous checkin.  Also
        an extra comment.


svn path=/trunk/; revision=4004
2008-10-27 12:30:18 +00:00
Brian Cameron
5ed940e101 Fix some crashes with the new GDM 2.24. Closes #558058.
2008-10-27  Brian Cameron  <brian.cameron@sun.com>

        Fix some crashes with the new GDM 2.24.  Closes #558058.

        * src/ui/ui.c (meta_ui_parse_modifier): another null check
        * src/core/prefs.c (titlebar_handler, button_layout_handler):
          more null checks.


svn path=/trunk/; revision=4003
2008-10-27 11:52:47 +00:00
Thomas Thurman
d819b99d99 Ignore values of .../mouse_button_modifier key if the key's missing.
2008-10-26  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (mouse_button_mods_handler): Ignore values
          of .../mouse_button_modifier key if the key's missing.
          Closes Launchpad bug #258054, Launchpad bug #266929.


svn path=/trunk/; revision=4001
2008-10-26 17:25:42 +00:00
Tomas Frydrych
b5ac24e9c1 meta_screen_append_new_workspace() 2008-10-24 11:11:28 +01:00
Tomas Frydrych
d1635d13cb meta_screen_remove_workspace() 2008-10-24 11:03:43 +01:00
Tomas Frydrych
f80e39e2ca mutter_plugin_get_screen() 2008-11-03 10:07:12 +00:00
Tomas Frydrych
a7a0a0300f Exposed meta_screen_get_workspace_by_index. 2008-11-03 10:03:58 +00:00
Tomas Frydrych
685bbb2e64 Fixed format 2008-11-03 09:59:01 +00:00
Matthew Allum
e85f67f564 Fix minor warning 2008-10-31 23:37:46 +00:00
Matthew Allum
a2b47741ae Merge branch 'dev' into clutter 2008-10-31 23:13:27 +00:00
Matthew Allum
eeb762e1e2 Remove overlay debug message. 2008-10-31 23:12:40 +00:00
Emmanuele Bassi
6c5fc6b3d6 Make metacity.schemas compliant again
The clutter_plugins schema key did not define the type of the
elements inside the list, thus making gconftool choke when installing
the Metacity schemas.

Since clutter_plugins is a list of strings, the trivial fix is
to add the corresponding <list_type> element to the schema XML.
2008-10-31 16:57:00 +00:00
Matthew Allum
3991e82539 Set TFP texture filter-quality to high (as to enable mipmaps) 2008-10-31 16:28:33 +00:00
Tomas Frydrych
312cbf3e04 Added G_MODULE_BIND_LOCAL for plugin load.
See http://bugzilla.openedhand.com/show_bug.cgi?id=1216.
2008-10-31 08:08:08 +00:00
Tomas Frydrych
ce2bfc008d mutter_window_get_description()
Human redable description useful for debugging, now accessible to plugins and
  and also for override redirect windows.
2008-10-30 08:30:42 +00:00
Tomas Frydrych
b2fe0097e6 mutter_plugin_get_xdisplay() 2008-10-29 13:27:35 +00:00
Tomas Frydrych
e4501f801e mutter_plugin_set_stage_input_region() 2008-10-29 13:03:03 +00:00
Tomas Frydrych
7bef175590 MUTTER_PLUGIN_DIR variable/define
Define for use in plugin manager
  Makefile variable for plugin pc file and plugin installation.
2008-10-29 10:28:48 +00:00
Tomas Frydrych
a4a102726e Removed tridy-grid and scratch plugin 2008-10-29 09:01:50 +00:00
Matthew Allum
a42ea69d0e Tweak workspace switcher to display all windows 2008-10-28 23:04:51 +00:00
Tomas Frydrych
8f594c93cd Added StructureNotifyMask for override redirect windows.
We need to be getting ConfigureNotify events for these, so we can respond
    to changes in position of these windows. We cannot add this to windows
    Metacity manages, as this makes it got mental.
2008-10-28 13:02:33 +00:00
Tomas Frydrych
8f8a193c7e Revert "Add StructureNotifyMask windows the compositor is interested in."
This reverts commit f76f4dc898c435d9a15bc96a9aad89526f69fcb2.
2008-10-28 12:27:30 +00:00
Matthew Allum
c283fbe9b3 Merge branch 'clutter' of ssh://gitserver@git.o-hand.com/metacity-clutter into clutter 2008-10-28 11:34:05 +00:00
Matthew Allum
53d89a7fd5 Tweak/fix/improve workspace switching effect 2008-10-28 11:30:29 +00:00
Tomas Frydrych
68c2f75558 Changes necessary to build plugins out of tree:
metacity-plugins.pc.in
  installation necessary header files
  fixed misplaced inclusion of config.h
2008-10-28 10:45:45 +00:00
Tomas Frydrych
2a3445c865 Add StructureNotifyMask windows the compositor is interested in. 2008-10-27 17:17:09 +00:00
Tomas Frydrych
10f9a7f252 Forced live_hidden_windows to TRUE 2008-10-27 12:29:49 +00:00
Tomas Frydrych
b1c5a2e221 Added mutter_get_plugin() to mutter-plugin.h
So we can completely hide the struct name from plugins.
2008-10-27 10:34:32 +00:00
Tomas Frydrych
1d6e70a49d Fixed stale comment. 2008-10-27 09:38:21 +00:00
Tomas Frydrych
310970a91b De-C99fied default and scratch plugins. 2008-10-27 09:33:58 +00:00
Tomas Frydrych
07c1003905 Live previews for hidden windows.
ClutterActors for hidden windows (such windows on different than active
workspaces and windows that are minimized) are available, and reflect the
actual state of the window. This is intended for use in task-switchers etc.

This feature is disabled by default (due to increased demand on resources),
and can be enabled through the metacity/general/live_hidden_windows gconf key.

A trivial sample window switcher is included in the scratch plugin (activated
by clicking on the slide out panel).
2008-10-24 10:07:24 +01:00
Matthew Allum
273d213509 Integrate in Ebassi's workspace switching code from ui-hackfest branch. 2008-10-23 15:36:33 +01:00
Matthew Allum
4d441a6f7b Make the overlay message a little less in your face.. 2008-10-23 12:53:01 +01:00
Thomas Thurman
bb539466d5 fix stupid thinko which caused defaults to be incorrect "space" needs to
2008-10-23  Thomas Thurman  <tthurman@gnome.org>

        * src/core/schema-bindings.c: fix stupid thinko which
          caused defaults to be incorrect
        * src/include/window-bindings.h: "space" needs to be
          lowercase


svn path=/trunk/; revision=3992
2008-10-23 04:27:31 +00:00
Thomas Thurman
ab9bdf228b Support _NET_WM_STATE_STICKY (i.e. allow third-party apps to decide
2008-10-23  Thomas Thurman  <tthurman@gnome.org>

        Support _NET_WM_STATE_STICKY (i.e. allow third-party apps to decide
        whether a window is on all workspaces).  Bug found by Ka-Hing
        Cheung.  Closes #557536.

        * src/core/window.c (set_net_wm_state): report it
        * src/core/window.c (meta_window_client_message): set sticky
          if we receive it
        * src/core/window-props.c: set sticky if we find it
        * src/core/atomnames.h: add _NET_WM_STATE_STICKY


svn path=/trunk/; revision=3991
2008-10-23 04:09:14 +00:00
Thomas Thurman
445b6ae6ed support builds outside tree properly. ditto.
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/schema-bindings.c: support builds outside tree properly.
        * src/Makefile.am: ditto.


svn path=/trunk/; revision=3989
2008-10-23 04:02:48 +00:00
Thomas Thurman
2e9857b560 support builds outside tree properly.
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/schema-bindings.c: support builds outside tree properly.


svn path=/trunk/; revision=3988
2008-10-23 04:01:14 +00:00
Tomas Frydrych
3cc7b2c74d Fixed how windows are added to avoid duplication. 2008-10-22 17:12:15 +01:00
Tomas Frydrych
275cccb136 Fixed process_reparent() 2008-10-22 14:40:06 +01:00
Thomas Thurman
788cbc91b2 Fixes to make distcheck work again.
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        Fixes to make distcheck work again.

        * src/Makefile.am: include *-binding.h, and make the schema
          building work when builddir != srcdir
        * po/POTFILES.in (src/core/keybindings.): include *-binding.h


svn path=/trunk/; revision=3985
2008-10-22 13:08:44 +00:00
Thomas James Alexander Thurman
922b490499 2.25.2 release.
svn path=/trunk/; revision=3977
2008-10-22 03:50:25 +00:00
Joe Marcus Clarke
1866268c94 new functions add sigterm_handler in case we receive a SIGTERM. Closes
2008-10-22  Joe Marcus Clarke  <marcus@freebsd.org>

        * src/core/main.c (meta_finalize, sigterm_handler): new functions
        * src/core/main.c (main): add sigterm_handler in case we receive
          a SIGTERM.  Closes #553980.


svn path=/trunk/; revision=3974
2008-10-22 03:35:48 +00:00
Thomas Thurman
f186d90dd3 minimised windows are necessarily obscured.
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window.c (meta_window_set_demands_attention): minimised
          windows are necessarily obscured.


svn path=/trunk/; revision=3971
2008-10-22 03:21:23 +00:00
Thomas Thurman
671b69a251 Slight transformation of the x-macros used in keybindings to make them
2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        Slight transformation of the x-macros used in keybindings
        to make them clearer: write handler names out in full
        because the old suffix system was confusing to people
        skim-reading, and switched the order of the last two
        parameters so more would generally fit on a screen.

        * src/core/keybindings.c, src/core/schema-bindings.c
          src/core/prefs.c: sympathy changes
        * src/core/window-bindings.h, src/core/screen-bindings.h:
          transformation as above


svn path=/trunk/; revision=3970
2008-10-22 01:02:45 +00:00
Christian Persch
fd01dbaaea fix build when schemas are not installed. Closes #557335.
2008-10-21   Christian Persch  <chpe@gnome.org>

        * src/Makefile.am: fix build when schemas are not installed.
        Closes #557335.


svn path=/trunk/; revision=3969
2008-10-21 23:57:38 +00:00
Iain Holmes
be11a6bf72 Allow framed ARGB windows to have a shadow
When creating the drop shadow source, just have a translucent centre
2008-10-21 16:51:18 +01:00
Tomas Frydrych
4854710de2 Fix off-by-one error. Fix off-by-one error. Closes #557201.
2008-10-21  Tomas Frydrych  <tf@linux.intel.com>

       * src/core/screen-bindings.h: Fix off-by-one error.
       * src/core/window-bindings.h: Fix off-by-one error.
       Closes #557201.


svn path=/trunk/; revision=3968
2008-10-21 11:58:04 +00:00
Tomas Frydrych
0684ef95c5 Fixed up stage reactivity bug. 2008-10-21 08:58:44 +01:00
Tomas Frydrych
775cb1f4a4 Removed plugin .features member (no longer required); reanambled all effects in scratch plugin by popular demand. 2008-10-20 13:04:46 +01:00
Tomas Frydrych
73f90dfd69 Fixed 1-off bug in switch-workspace keybindings 2008-10-20 12:19:24 +01:00
Tomas Frydrych
8a0ffa93eb Merge branch 'clutter' of ssh://gitserver@git.o-hand.com/metacity-clutter into clutter 2008-10-20 08:54:03 +01:00
Tomas Frydrych
7ddb3a4663 Disabled event effects; disable_stage() convenience function. 2008-10-20 08:52:38 +01:00
Thomas Thurman
493408167b During a discussion with Rodney Dawes about making life easier for the
2008-10-18  Thomas Thurman  <tthurman@gnome.org>

        During a discussion with Rodney Dawes about making life easier
        for the translators, he pointed out that the short and long
        forms of almost all the keybindings say much the same thing
        in different words.  I believe this is an unconscionable burden
        to place on translators, and have therefore merged the short
        and long descriptions into the short description.  The long
        is now a general explanation of the format, plus possibly a
        notice about reversibility.  Closes #469361, and should solve
        the l10n issue previously mentioned.

        * src/core/keybindings.c: reflect changes in *-bindings.h
        * src/core/schema-bindings.c: reflect changes in *-bindings.h
        * src/core/prefs.c: reflect changes in *-bindings.h
        * src/core/window-bindings.h: Add flags field, always the same
          currently, so that it's the same as screen-bindings.h.
          Also, lose ONLY_BOUND_BY_DEFAULT, since we already had a
          rather more elegant way to perform the same effect.
          And merge the long and short descriptions.
        * src/core/screen-bindings.h (, item): Merge the long and
          short descriptions.


svn path=/trunk/; revision=3966
2008-10-18 04:33:14 +00:00
Robert Bragg
9a66ce6b01 Removes unused files: compositor-clutter-plugin-manager.c and compositor-clutter-plugin.h 2008-10-17 17:12:57 +01:00
Robert Bragg
08c3c187eb Removes the running counter from the plugins and instead manage it internally
to the plugin manager
2008-10-17 17:10:15 +01:00
Tomas Frydrych
b422faa4fe Fixed build when building without --with-clutter 2008-10-17 12:45:45 +01:00
Tomas Frydrych
a8dd848ca4 Connect to captured-event signal on stage for generic panel processing
This is to allow the panel to handle events the normal way without interference
2008-10-17 11:02:04 +01:00
Tomas Frydrych
143cb3d60b white space tweaks 2008-10-17 07:25:18 +01:00
Tomas Frydrych
92610f53c3 renamed DefaultPluginState to PluginState 2008-10-17 07:23:34 +01:00
Tomas Frydrych
30ece059cf whitespace cleanup; use g_slice in scratch plugin. 2008-10-16 23:29:24 +01:00
Tomas Frydrych
1e59d63e31 adjusted panel color and opacity 2008-10-16 23:08:12 +01:00
Tomas Frydrych
7380163eaf Renamed moblin.c to avoid confusion 2008-10-16 23:04:32 +01:00
Tomas Frydrych
dc33ad1adf Merge branch 'moblin-plugin' into clutter
Conflicts:

	src/compositor/clutter/compositor-clutter-plugin-manager.c
	src/compositor/mutter/plugins/Makefile.am
	src/compositor/mutter/plugins/moblin.c
	src/include/compositor-clutter-plugin.h
	src/include/compositor-clutter.h
2008-10-16 23:02:34 +01:00
Tomas Frydrych
b5414c27a3 sliding panel 2008-10-16 15:50:03 +01:00
Robert Bragg
2f790b0165 This changes the meta_compositor_clutter namespacing to simply "mutter" which
helps makes code much more readable.
2008-10-16 12:50:01 +01:00
Tomas Frydrych
d185a84140 Api to set specific input region on stage from plugins. 2008-10-16 12:16:08 +01:00
Tomas Frydrych
749698eb54 connect xevent handler 2008-10-16 10:42:03 +01:00
Tomas Frydrych
6323467879 Fixed input mask on overlay window to get pointer and key events. 2008-10-16 10:41:34 +01:00
Tomas Frydrych
d94a34a2c1 disabled workspace switch effect 2008-10-16 08:27:46 +01:00
Tomas Frydrych
9005e4a68f set panel width to match screen 2008-10-16 08:26:37 +01:00
Tomas Frydrych
9e4f5a26dd hook moblin plugin into stage reactivity API 2008-10-16 08:05:50 +01:00
Tomas Frydrych
ae906b318a API for enabling/disabling input to stage window. 2008-10-16 07:50:49 +01:00
Tomas Frydrych
8d373e009d Process motion events on stage to handle panle closing. 2008-10-16 00:06:20 +01:00
Thomas Thurman
7d67a9aee9 Since Patrick Niklaus's checkin of 2008-08-14 dealt with windows with no
2008-10-15  Thomas Thurman  <tthurman@gnome.org>

        Since Patrick Niklaus's checkin of 2008-08-14 dealt with windows with
        no icons not using fallback icons, we don't need fallback icons.

        * src/ui/theme.h: remove fallback icons from struct.
        * src/core/iconcache.c (meta_read_icons): don't look for fallbacks.
        * src/*/ui.[ch] (meta_ui_get_fallback_icons): removed
        * src/ui/theme-parser.c (typedef, parse_toplevel_element): don't
          parse fallback specifications.


svn path=/trunk/; revision=3958
2008-10-15 21:01:54 +00:00
Tomas Frydrych
f0364b2eed Panel sliding 2008-10-15 18:14:52 +01:00
Tomas Frydrych
5af56eebd1 panel slide timeout 2008-10-15 17:57:41 +01:00
Tomas Frydrych
5f3e27bbd7 Mockup panel, xevent skeleton. 2008-10-15 17:50:06 +01:00
Tomas Frydrych
f6c958ff26 Added moblin plugin to build system. 2008-10-15 17:26:24 +01:00
Robert Bragg
c4fe54d004 Passes through the plugin manager and default plugin trying to rename
terse variable names, simplify the plugin interface or consider tweaks
for maintainability.

* Renames plg -> plugin
* Renames mgr ->plugin_mgr (since in a combined window and composite
manager I think "mgr" will end up being ambiguous in places)
* Renames PluginWorkspaceRectangle -> MetaRectangle (We are no longer
concerned about mbwm2 portability)
* Renames a few one letter variable names e.g. a -> window, r ->rect
* Renames some vars to indicate what they represent not their data type,
e.g. group1, group2 ->workspace0, workspace1
* Renames the variable mcw -> mc_window to make it more immediately
obvious what it represents.
* Removes the verbose META_COMPOSITOR_CLUTTER_PLUGIN_SWITCH_WORKSPACE macro,
and just uses metacity_plugin instead.
* Instead of hanging data of the plugins global descriptor, we just use a
standalone static global variable.
* Make do_init a function pointer inside the plugin descriptors instead of
special casing it and using another g_module_symbol call. This also removes
the need for the META_COMPOSITOR_CLUTTER_PLUGIN_INIT_FUNC macro.
* A bunch of anal 80char fixes
* Removes the screen_width,height variables from the plugin descriptor struct
and add a plugin API instead.
2008-10-13 12:23:47 +01:00
Thomas Thurman
48f1dd5a7e Make the bindings in src/core/*-bindings.h generate GConf schemas too.
2008-10-12  Thomas Thurman  <tthurman@gnome.org>

        Make the bindings in src/core/*-bindings.h generate
        GConf schemas too.  Note that there's an i18n issue
        (documented in schema-bindings.c) which will be fixed
        next checkin.

        * src/core/schema-bindings.c: major fixup to make it
          ready for use as part of the actual build process.
        * src/Makefile.am: added magic to make it call schema-bindings
          after it builds it.
        * src/core/window-bindings.h: added comments;
          also, window menu was listed variously as alt-Space
          and alt-Print; it should have been alt-Space.
        * src/metacity.schemas.in.in: renamed from s/\.in$//,
          sentinel added for the generated bindings,
          warning at the top now untrue, and removed.


svn path=/trunk/; revision=3952
2008-10-12 23:29:09 +00:00
Thomas Thurman
acd81439eb Fix annoying bug where alt-tab and friends would jump backwards a space on
2008-10-12  Thomas Thurman  <tthurman@gnome.org>

        Fix annoying bug where alt-tab and friends would jump
        backwards a space on initial movement.

        * src/core/screen-bindings.h: although reversed bindings
        are necessarily reversible, don't set both bits in the
        constant, or when we test for them we'll get confused.


svn path=/trunk/; revision=3950
2008-10-12 15:09:48 +00:00
Thomas Thurman
b625ed254d An attempt to make life a little easier for our beloved translators; this
2008-10-12  Thomas Thurman  <tthurman@gnome.org>

        An attempt to make life a little easier for our beloved translators;
        this has the same behaviour as before, but removes over thirty
        translation strings.

        * src/core/session.c (start_element_handler): all "attribute not found
          on element" strings are identical
        * src/ui/theme-parser.c (locate_attributes): allow attribute names to
          be preceded with "!" (in the code) to show they're required.
          (parse_aspect_ratio, parse_distance, parse_toplevel_element,
           parse_style_element, parse_gradient_element, static, parse_border,
           parse_style_set_element, parse_draw_op_element): use the new "!"
           prefix for locate_attributes(), or in some cases just the identical
           constant, for generating this error.
        * src/ui/theme.c (check_state, meta_theme_validate): add
          translator comments
        * src/ui/resizepopup.c (update_size_window): add
          translator comments


svn path=/trunk/; revision=3949
2008-10-12 14:34:54 +00:00
Emmanuele Bassi
74b34fe239 [default] Use the slice allocator
The actor's private data created by the compositor is allocated
using g_new(), but since we are allocating a lot of small structures
all the time it's better to use the slice allocator instead.

Also, use a GQuark instead of using a string, so that the quark
lookup is done only once and the rest of the time is just an
integer comparison.
2008-10-10 17:11:13 +01:00
Tomas Frydrych
7124a7acc1 Removed unused compositer-clutter-plugin.c file. 2008-10-10 11:38:58 +01:00
Tomas Frydrych
2fffd6fe9f Removed no longer needed completed() pointer from plugin struct. 2008-10-10 11:38:00 +01:00
Tomas Frydrych
6b1719de1c Added direction parameter to plugin switch_workspace()
To facilitate nicer effects; extended direction defined in workspace.h so we
can represent up-left, etc.
2008-10-09 17:57:12 +01:00
Tomas Frydrych
0225449e12 Fallback to default plugin if no plugins are specified via gconf. 2008-10-09 15:33:06 +01:00
Tomas Frydrych
1a8e5872d1 Accessors for plugins to obtain stage and overlay_group actors. 2008-10-09 13:22:32 +01:00
Tomas Frydrych
0e6fba083f Removed unnecessary ActorPrivate::workspace member. 2008-10-08 16:10:15 +01:00
Tomas Frydrych
1178800abb Added convenience get_plugin () accessor. 2008-10-08 16:05:09 +01:00
Tomas Frydrych
f061a6d793 Added convenience function meta_comp_clutter_plugin_effect_completed() 2008-10-08 16:01:04 +01:00
Tomas Frydrych
976635a22b Merge branch 'clutter' of ssh://gitserver@git.o-hand.com/metacity-clutter into clutter 2008-10-08 14:53:37 +01:00
Robert Bragg
69c0da91e5 Creates a src/compositor/clutter directory to help de-clutter things 2008-10-08 14:17:54 +01:00
Tomas Frydrych
306a7497fc Fixed up for new plugin API; changed private key not to colide with default plugin. 2008-10-08 12:33:24 +01:00
Tomas Frydrych
1addb6ddc1 Added -export-dynamic to metacity LDFLAGS for sake of plugins. 2008-10-08 12:28:20 +01:00
Tomas Frydrych
0a7fc94799 Revert "Build metacity as library so that plugins can link against it."
This reverts commit 57c2e6d716485205a9178afe01dbc43641b5c2aa.
2008-10-08 12:19:08 +01:00
Tomas Frydrych
cca5e69c64 Removed debug printfs. 2008-10-08 10:16:53 +01:00
Tomas Frydrych
bbdd7d9b15 Build metacity as library so that plugins can link against it.
Renamed original main() to meta_main(); added wrapper main() into metacity.c.
2008-10-08 10:11:57 +01:00
Tomas Frydrych
60695fd89a Refactored plugin API to use MetaCompWindow. 2008-10-07 16:29:03 +01:00
Tomas Frydrych
c5d59254af Moved compositor-clutter.h to src/include so it can be used from plugins. 2008-10-07 15:08:36 +01:00
Tomas Frydrych
2bcd7c839b Renamed simple plugin to 'default' 2008-10-07 14:58:34 +01:00
Tomas Frydrych
cc50d99712 Public API around MetaCompWindow actor
Added accessors for xwindow, window type and workspace number.
2008-10-07 14:52:21 +01:00
Tomas Frydrych
93c316f3b8 Fixed warning
Removed static declartion of tidy_texture_frame_new and added appropriate #include.
2008-10-07 09:07:51 +01:00
Tomas Frydrych
7983c29f67 Plugin manager API cleanup
Renamed meta_compositor_clutter_plugin_manager_event_0 to
meta_compositor_clutter_plugin_manager_event_simple and
meta_compositor_clutter_plugin_manager_event_4i to
meta_compositor_clutter_plugin_manager_event_maximize for improved clarity.
2008-10-07 09:01:58 +01:00
Robert Bragg
22f386b35b Removes old static prototype for tidy_texture_frame_new from compositor-clutter.c 2008-10-06 15:52:01 +01:00
Robert Bragg
d6e4fc41c2 Splits tidy-texture-frame out from compositor-clutter.c 2008-10-06 15:07:39 +01:00
Robert Bragg
f65d898f80 Merge branch 'master' into bob/clutter
Conflicts:

	src/core/prefs.c
	src/include/prefs.h
2008-10-06 12:54:34 +01:00
William Lachance
a49f986c67 Pass modified mouse button events down to panel windows instead of dealing
2008-10-06  William Lachance  <wrlach@gmail.com>

        Pass modified mouse button events down to panel windows
        instead of dealing with them ourselves.  Closes #554428.

        * src/core/display.c (prefs_changed_callback): don't grab mouse
          buttons on panels
        * src/core/window.c (meta_window_new_with_attrs): ditto


svn path=/trunk/; revision=3942
2008-10-06 01:34:17 +00:00
Thomas Thurman
b1fb765d8e Second half of the switch to using x-macros for keybindings so that we
2008-10-05  Thomas Thurman  <tthurman@gnome.org>

        Second half of the switch to using x-macros for keybindings so that
        we don't have lots of places with the same information which must
        stay in the same order.  This time it's screen bindings.

        * src/core/screen-bindings.h: New file, containing screen bindings.
        * src/core/schema-bindings.c: added ability to output screen bindings.
        * src/core/window-bindings.h: tiny tweak to comment
        * src/core/keybindings.c: generate function prototypes using s-b.h;
          several handlers modified to use ints rather than ints cast into
          pointers, or renamed.
        * src/include/prefs.h: generate names of bindings using s-b.h;
          generate screen_handlers using s-b.h;
          arguments to bindings are ints and not ints cast to pointers;
          several handler functions renamed to consistent names.
        * src/core/prefs.c (meta_prefs_set_num_workspaces, init_bindings):
          generate screen_handlers using s-b.h;
          generate screen_string_bindings using s-b.h (and add check for
          null bindings in init_bindings to enable this simply).


svn path=/trunk/; revision=3941
2008-10-06 00:24:07 +00:00
Neil Roberts
735877d89a Don't try to use multisampling for textures that are sliced. 2008-09-30 16:54:12 +01:00
Neil Roberts
ee60128334 Support for GL ES in the Clutter compositor.
Check for whether clutter/glx/clutter-glx-texture-pixmap.h is
available in the configure script and if not use
ClutterX11TexturePixmap directly.

glGetTexLevelParameter isn't available on GL ES so instead it checks
whether NPOTs textures are available and assumes the next power of two
size if not.
2008-09-30 15:33:18 +01:00
Matthew Allum
3bbd5e32f2 Fix configure events generating too many updates
Split stage into window and overlay groups
Add an event hook to plugins
2008-10-02 12:16:15 +01:00
Tomas Frydrych
2d4a0c9cbe Added 'simple' plugin as default to metacity schema. 2008-09-25 15:11:12 +01:00
Neil Roberts
43e3fbc518 Set the input mask on the composited windows to include
ShapeNotifyMask. Remove the call to resize_win in process_shape
because it is redundant.
2008-09-25 13:30:34 +01:00
Tomas Frydrych
c58ade6600 When testing for shadow, test for window shape before override redirect. 2008-09-25 09:30:13 +01:00
Tomas Frydrych
33ae559eca Stripped trailing space. 2008-09-25 09:29:57 +01:00
Neil Roberts
4f1fd37231 Handle ShapeNotify events in the clutter compositor and update the
clip rectangles on the MetaShapedTexture.
2008-09-24 22:53:39 +01:00
Neil Roberts
6654cb65d7 Made MetaShapedTexure take XRectangles instead of ClutterGeometries to
represent the rectangles.
2008-09-24 22:52:56 +01:00
Neil Roberts
19d338cb50 Make MetaShapedTexture a subclass of ClutterGLXTexturePixmap and use
it for window actors.
2008-09-24 21:48:02 +01:00
Neil Roberts
0bbe8b8004 Add a cast in shaped-texture.c to prevent warnings about comparing
signed and unsigned integers.
2008-09-24 21:40:10 +01:00
Neil Roberts
99d3cc1b2b Add an actor for drawing textures clipped to a list rectangles 2008-09-24 21:36:38 +01:00
Tomas Frydrych
d6f340eb96 Fixed install-exec-hook for plugins to work correctly when $DESTDIR is set. 2008-09-24 09:46:52 +01:00
Tomas Frydrych
bd3d643f96 Use clutter_get_option_group_without_init() once available. 2008-09-23 08:28:13 +01:00
Tomas Frydrych
7bd5f61db7 Conflicts:
src/core/main.c
2008-09-23 08:26:51 +01:00
Tomas Frydrych
5e76e1b221 Hooked in clutter options. 2008-09-19 16:27:44 +01:00
Tomas Frydrych
9b3a0d1ad8 Basic plugin infastructure and a sample simple plugin. 2008-09-18 16:09:11 +01:00
Tomas Frydrych
d509097967 Sync with upstream r3901
Merge branch 'upstream' into clutter
2008-09-17 17:12:27 +01:00
Tomas Frydrych
b7bdc5ec69 Fall back on XRender if initializing clutter fails. 2008-09-17 16:39:32 +01:00
Vincent Untz
3109a67a71 Install desktop files in both .../share/applications and
2008-09-12  Vincent Untz  <vuntz@gnome.org>

        Install desktop files in both
        .../share/applications and .../share/gnome/wm-properties.
        Copied in from the 2.23.x branch.  Closes #549479.

        * src/metacity-wm.desktop.in: new file
        * src/.cvsignore: include the above
        * src/Makefile.am: install the above


svn path=/trunk/; revision=3886
2008-09-12 04:05:17 +00:00
Thomas Thurman
cf48407972 An attempt to keep all information about window bindings in the same
2008-09-06  Thomas Thurman  <tthurman@gnome.org>

        An attempt to keep all information about window bindings
        in the same place.  Screen bindings to come.

        * src/core/window-bindings.h: new file, list of all window bindings
        * src/include/prefs.h: drop all the existing window-binding macros

        * src/core/schema-bindings.c (): output all the schema blocks that
        would appear in metacity.schema for these window bindings.  This
        ought to become part of the build process, and hopefully will soon.
        When this works it will also close #469361.

        * src/core/keybindings.c: generate handle_* prototypes using
        x-macros;  populate window_handlers using x-macros;  rename several
        functions to have consistent names;  do_handle_move_to_workspace(),
        handle_move_to_workspace_flip(), and handle_move_to_workspace() all
        merged into handle_move_to_workspace.

        * src/core/prefs.c: generate window_bindings and window_string_bindings
        using x-macros;  (meta_prefs_set_compositing_manager) fix unrelated
        problem with use of GConf functions when GConf was disabled.

        * src/core/core.c (meta_core_get_menu_accelerator): binding names
        given as literals since this is the only place in the code they
        now appear



svn path=/trunk/; revision=3860
2008-09-06 22:01:56 +00:00
Tomas Frydrych
438ac55cb1 update to upstream 2.25.1
Merge commit '49cc773eb4801fb0ee3cddeeb1d27042f4a46e2e' into clutter
2008-09-03 19:48:23 +01:00
Thomas Thurman
0fd855f492 removed invalid "Window Manager" group at request of Matthias Clasen.
2008-09-03  Thomas Thurman  <tthurman@gnome.org>

        * src/metacity.desktop.in: removed invalid "Window Manager" group
          at request of Matthias Clasen.


svn path=/trunk/; revision=3851
2008-09-03 16:42:53 +00:00
Thomas Thurman
177202e2d1 Desktop file moved, according to policy change. Closes #549479.
2008-09-02  Thomas Thurman  <tthurman@gnome.org>

        Desktop file moved, according to policy change.  Closes #549479.

        * src/metacity.desktop.in: Don't display the desktop file
        * src/Makefile.am: Desktop file goes in apps directory


svn path=/trunk/; revision=3846
2008-09-02 18:49:11 +00:00
Thomas Thurman
8bd3cdff14 When a workspace's list of struts is freed, free the struts too. Closes
2008-09-01  Thomas Thurman  <tthurman@gnome.org>

        * src/core/workspace.c: When a workspace's list of struts
          is freed, free the struts too.  Closes #549952, and #468075.


svn path=/trunk/; revision=3840
2008-09-01 03:10:31 +00:00
Thomas Thurman
2095cce3ab Add new move_to_center keybinding, requested by Khanh-Dang Nguyen Thu Lam;
2008-09-01  Thomas Thurman  <tthurman@gnome.org>

        Add new move_to_center keybinding, requested by Khanh-Dang Nguyen
        Thu Lam; closes #549979.

        * src/include/prefs.h (void): add name of new binding
        * src/core/prefs.c: added pref for it
        * src/core/keybindings.c (handle_move_to_center): new function
        * src/metacity.schemas.in: included new binding


svn path=/trunk/; revision=3839
2008-09-01 01:32:39 +00:00
Thomas Thurman
5128bd4f28 new function. turn the compositing manager on or off as necessary.
2008-08-31  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.[ch] (meta_prefs_set_compositing_manager): new
          function.
        * src/core/main.c (meta_parse_options): turn the compositing
          manager on or off as necessary.


svn path=/trunk/; revision=3838
2008-08-31 22:55:18 +00:00
Thomas Thurman
9c82331009 moving all messages about properties to the top, as a start at #549886
2008-08-30  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window.c (process_property_notify): moving all
	messages about properties to the top, as a start at #549886


svn path=/trunk/; revision=3837
2008-08-30 21:37:13 +00:00
Tomas Frydrych
6946d6a4a3 Moved shadow source actor form screen to the compositor (only one needed). 2008-08-20 13:18:43 +01:00
Tomas Frydrych
2bcb7d73be Handle resize on root window. 2008-08-20 13:01:40 +01:00
Tomas Frydrych
655bfaec80 GType wrapper for XWindowAttributes, MetaCompWindow::x-window-attributes prop
So we do not have to query window attributes in the MetaCompWindow constructor
but can pass them as a property (so we can gracefully handle the case where no
attributes can be retrieved).
2008-08-20 11:48:00 +01:00
Tomas Frydrych
a3f56bb289 Added --with-clutter option; initialize Clutter from meta_ui_init().
Fixed up the build files so we do not build xrender compositor when building
clutter backend; moved clutter initialization to meta_ui_init() so commandline
arguments can be passed into clutter_init().
2008-08-20 10:31:10 +01:00
Tomas Frydrych
b48f9ca907 Code cleanup and pretification. 2008-08-20 09:33:39 +01:00
Tomas Frydrych
8589eab403 Cleaned up MetaCompWindow disposal. 2008-08-20 08:26:52 +01:00
Tomas Frydrych
1ee1842638 Made MetaCompWindow into ClutterGroup sub-class. 2008-08-19 17:02:00 +01:00
Tomas Frydrych
70afce0325 Cast shadows to SE. 2008-08-19 14:33:20 +01:00
Tomas Frydrych
1f29679c0d Basic CM minimize effect
Added minimize hook to the compositor, hooked up into MetaWindow, implemented
in the clutter compositor.
2008-08-19 11:47:30 +01:00
Tomas Frydrych
99b547bc1d Fixed handling of opacity and argb32 windows.
Parsing of _NET_WM_WINDOW_OPACITY; no shadows for argb32 and translucent
windows.
2008-08-19 10:57:15 +01:00
Tomas Frydrych
030afac8ab Cleaned up repar_win
Uncommented path for TFP; fixed leak of parts regions; removed unnecessary
'damaged' flag.
2008-08-19 10:15:16 +01:00
Tomas Frydrych
121a65e4f4 Fixed destroy effect
Stopped processing of unmap and damage messages when a destroy message is
already in the queue.
2008-08-19 09:20:04 +01:00
Tomas Frydrych
a8bcfb9a0c Removed process_expose
No Expose event processing is necessary, since clutter stage paints
automatically when changes are made to the scenegraph (so we only need to
update our window textures as damaged; everything else just works).
2008-08-18 17:08:01 +01:00
Tomas Frydrych
9f9df52ba6 Reduced MAX_TILE_SIZE to 8px so that shaddows work even with small windows
(e.g., tootips).
2008-08-18 16:23:50 +01:00
Tomas Frydrych
676a516ff2 Add shaddows to override-redirect windows, e.g. Gtk menus (Gtk should really
be fixed not to use override redirect for menus as the maemo fork does).
2008-08-18 16:16:38 +01:00
Tomas Frydrych
4134949d72 get_window_type:
Streamlined to use the MetaWindow type where that is available; for unmanaged
windows, query window props as before.
2008-08-18 15:44:26 +01:00
Tomas Frydrych
e6e6aecb93 Exposed MetaWindowType so it can be used by compositor backends.
meta_window_get_type:
meta_window_get_type_atom:
Accessors for window type/type atom.
2008-08-18 15:42:38 +01:00
Tomas Frydrych
f7f696c310 Moved atomnames.h to includes so can be included from display.h.
meta_display_get_atom: allow common atom retrieval via enum (to avoid interning
identical atoms at different places).
2008-08-18 15:10:13 +01:00
Tomas Frydrych
5ebaa15333 Updated to clutter-0.8. 2008-08-18 12:02:14 +01:00
Thomas Thurman
8736f61579 Adding doxygen headers to some files.
2008-08-18  Thomas Thurman  <tthurman@gnome.org>

        Adding doxygen headers to some files.

        * src/core/metacity-Xatomtype.h
        * src/core/main.c
        * src/core/screen-private.h
        * src/core/window-private.h
        * src/core/keybindings.h
        * src/core/session.h
        * src/core/workspace.h
        * src/core/window-props.h ()


svn path=/trunk/; revision=3818
2008-08-18 10:25:17 +00:00
Tomas Frydrych
e1965914a3 Synced with Metacity 2.23.89 (r3800)
Merge commit '51de9ef8605f7a195ef360afb3a504488125611f' into clutter
2008-08-18 11:11:32 +01:00
Eric Piel
233237f098 add a copy of each strut in a window to the workspace's strut list,
2008-08-18  Eric Piel  <e.a.b.piel@tudelft.nl>

        * src/core/workspace.c (ensure_work_areas_validated): add a copy of
         each strut in a window to the workspace's strut list, instead of
         using the copy in the list (which would mean it was double-freed).
         Believed to fix #468075.


svn path=/trunk/; revision=3817
2008-08-18 02:48:36 +00:00
Ted Percival
4fb40b57a9 Ensure the user_rect is set sanely for windows that start maximized.
2008-08-16  Ted Percival  <ted@midg3t.net>

        Ensure the user_rect is set sanely for windows that start maximized.
        Prevents maximized windows from warping across the screen.
        Fixes bug #504692.

        * src/core/window.c (save_user_placement): renamed version of
        meta_window_save_user_rect().
        * src/core/window.c (force_save_user_placement): similar, but will
        always save user_rect even if the window is maximised or fullscreen.
        * src/core/window.c (meta_window_move_resize_internal): unplaced
        windows have force_save_user_placement() called instead of
        save_user_placement().


svn path=/trunk/; revision=3816
2008-08-16 03:09:40 +00:00
Patrick Niklaus
5631cbe22d Icons for windows are taken from the desktop theme, not from the Metacity
2008-08-14   Patrick Niklaus  <marex@compiz-fusion.org>

          Icons for windows are taken from the desktop theme, not from
          the Metacity theme or from the fallback icon that Metacity
          provided.  Closes #524343.

        * src/ui/ui.c: Use GtkIconTheme to load the default window icon.
          Assumes the existence of an icon called "window", otherwise
          falls back to "gtk-missing-image". Fixes #524343.
        * src/ui/preview-widget: See above.
        * src/include/common.h: Add META_DEFAULT_ICON_NAME.
        * src/Makefile.am: Remove default_icon.png from inlinepixbufs.h.
        * src/default_icon.png: Removed.


svn path=/trunk/; revision=3812
2008-08-14 14:01:51 +00:00
Thomas Thurman
34fe81fabd meta_display_screen_for_root() can return NULL, so check for that. Fixes
2008-07-13  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c (event_callback): meta_display_screen_for_root()
        can return NULL, so check for that.  Fixes #422242.  Also tidying.

svn path=/trunk/; revision=3788
2008-07-14 00:41:25 +00:00
Elijah Newren
dacf784498 Don't attempt to double-free struts, edges and regions if work areas have
2008-07-13  Elijah Newren  <newren gmail com>

        * src/core/workspace.c (meta_workspace_free): Don't attempt to
        double-free struts, edges and regions if work areas have already
        been invalidated at the time of freeing a workspace.
        Possible fix to #361804.

svn path=/trunk/; revision=3787
2008-07-13 22:16:23 +00:00
Thomas Thurman
24e63a0d2d Don't allocate memory for log messages unless we're logging.
2008-07-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/constraints.c (do_screen_and_xinerama_relative_constraints):
        Don't allocate memory for log messages unless we're logging.

svn path=/trunk/; revision=3786
2008-07-13 05:27:13 +00:00
Thomas Thurman
6bf62be4d0 This function can now officially return NULL. Two windows can't belong to
2008-07-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/group.c (meta_window_get_group): This function can now
        officially return NULL.
        * src/core/window.c (meta_window_same_application): Two windows can't
        belong to the same application unless they both belong to some
        application.  (Both belonging to no application is not the same.)
        
        Closes #453022.

svn path=/trunk/; revision=3785
2008-07-13 03:26:39 +00:00
Thomas James Alexander Thurman
0ef47a44c1 2008-06-30 Thomas Thurman <tthurman@gnome.org
* src/core/bell.c (meta_bell_set_audible): Fix typo that
          slipped through.


svn path=/trunk/; revision=3778
2008-06-30 16:42:19 +00:00
Thomas Thurman
91b5f24da8 Move comments for non-statics from the .c to .h. adapt better for C, and
2008-06-30  Thomas Thurman  <tthurman@gnome.org>

        * src/core/bell.[ch]: Move comments for non-statics from the .c to .h.
        * Doxyfile: adapt better for C, and make quiet.


svn path=/trunk/; revision=3777
2008-06-30 13:42:37 +00:00
Thomas Thurman
bd0a531253 display the theme name in the title bar. Closes #430198.
2008-06-30  Thomas Thurman  <tthurman@gnome.org>

        * src/ui/theme-viewer.c (main): display the theme name
          in the title bar.  Closes #430198.


svn path=/trunk/; revision=3776
2008-06-30 00:23:41 +00:00
Thomas Thurman
7988361eab Allow toggling of non-compositor effects (since there's a non-Metacity key
2008-06-29  Thomas Thurman  <tthurman@gnome.org>

        Allow toggling of non-compositor effects (since there's a
        non-Metacity key to do so: /desktop/gnome/interface/enable_animations).
        Closes #92867.

        * src/include/prefs.h: add META_PREFS_GNOME_ANIMATIONS key and
          meta_prefs_get_gnome_animations() function
        * src/include/prefs.c: added meta_prefs_get_gnome_animations()
          function, and made supporting changes to structs.
        * src/core/effects.c (run_handler): checked whether enable_animations
          is set before running an effect.
        * src/core/effects.c (meta_effect_run_minimize): remove debug message.


svn path=/trunk/; revision=3775
2008-06-29 21:57:39 +00:00
Thomas Thurman
a1a030e418 remove meta_ prefix on all static functions.
2008-06-29  Thomas Thurman  <tthurman@gnome.org>

        * src/core/bell.c: remove meta_ prefix on all static functions.


svn path=/trunk/; revision=3774
2008-06-29 18:46:01 +00:00
Thomas Thurman
c05e6d079c lose meta prefix since it's static. replace our own cast with glib macro
2008-06-29  Thomas Thurman  <tthurman@gnome.org>

        * src/core/stack.c (stack_sync_to_server): lose meta prefix
          since it's static. 
        * src/core/stack.c (meta_stack_remove, stack_do_window_deletions):
          replace our own cast with glib macro designed to do the same thing


svn path=/trunk/; revision=3773
2008-06-29 18:44:21 +00:00
Thomas Thurman
b3549979c6 add checks for HAVE_SHAPE where appropriate. fix type error which was
2008-06-28  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c, src/compositor/compositor-xrender.c: add checks
          for HAVE_SHAPE where appropriate.
        * src/core/xprops.c: fix type error which was causing warnings.


svn path=/trunk/; revision=3772
2008-06-29 03:23:08 +00:00
Thomas Thurman
6039694eff Some refactoring, simplifying, and commenting of the non-composited
2008-06-28  Thomas Thurman  <tthurman@gnome.org>

        Some refactoring, simplifying, and commenting of the non-composited
        effects code.  effects.c could still do with some polish, which will
        come along later.

        * src/core/effects.h (meta_push_effect_handler): removed since it's
          never used and does nothing very useful.
        * src/core/effects.h (meta_pop_effect_handler): removed since its
          only effect is to crash the program.
        * src/core/effects.h (META_MINIMIZE_ANIMATION_LENGTH,
          META_SHADE_ANIMATION_LENGTH): move to effects.c because they're used
          nowhere else.
        * src/core/effects.c: there were three versions of the box-zoom effect.
          Remove the one which was never used, and make only the ones which
          are used with certain configure settings be compiled.
        * src/core/effects.h (meta_effect_end): move to effects.c, make static,
          and rename to effect_free.
        * src/core/effects.h (meta_effects_draw_box_animation): move to
          effects.c, make static, and rename to draw_box_animation.
        * src/core/effects.h (MetaEffectType): remove the values which weren't
          used.
        * src/core/window.c (meta_window_shade): remove commented-out code to
          call effect for shading.
        * src/core/effects.h (MetaEffectFinish): remove useless MetaEffect
          parameter.
        * src/core/window.c (finish_minimize): remove MetaEffect parameter.


svn path=/trunk/; revision=3771
2008-06-29 03:20:52 +00:00
Thomas Thurman
12ffd29542 Commented everything.
2008-06-27  Thomas Thurman  <tthurman@gnome.org>

        * src/core/stack.h: Commented everything.


svn path=/trunk/; revision=3770
2008-06-28 02:51:18 +00:00
Thomas Thurman
1aee3eff35 Keep the compiler from giving some warnings.
2008-06-26  Thomas Thurman  <tthurman@gnome.org>

        Keep the compiler from giving some warnings.
        
        * src/compositor/compositor-xrender.c (xrender_begin_move,
          xrender_update_move, xrender_end_move, xrender_free_window): four
          functions which were never called and contain no code #iffed out.
        * src/tools/metacity-mag.c (grab_area_at_mouse): fixed typecast error.


svn path=/trunk/; revision=3769
2008-06-27 03:52:31 +00:00
Thomas Thurman
9d31fa61ed Refactor so the long scary stack functions are less long and scary:
2008-06-26  Thomas Thurman  <tthurman@gnome.org>

        Refactor so the long scary stack functions are less long and scary:

        * stack.c (stack_ensure_sorted): the five parts of this long function
          broken out into the new functions stack_do_window_deletions,
          stack_do_window_additions, stack_do_relayer, stack_do_constrain
          (which was already separate: see next) and stack_do_resort.
        * stack.c (constrain_stacking): renamed to stack_do_constrain.
        * stack.c (stack_ignore_sorted): lose meta prefix since it's static.


svn path=/trunk/; revision=3768
2008-06-27 03:39:15 +00:00
Thomas Thurman
7ab715fa71 Some commenting.
2008-06-13  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window-props.c: Some commenting.

        * src/core/prefs.c: Added unified handling of integer preferences.
          Re-ordered fields in existing preferences so that changing to
          a union-based system will be easier in the future.


svn path=/trunk/; revision=3758
2008-06-13 23:10:32 +00:00
Thomas Thurman
941e4bf967 A preliminary attempt at a test for the theme expression tokeniser.
2008-06-10  Thomas Thurman  <tthurman@gnome.org>

        * test/tokentest:  A preliminary attempt at a test for the
          theme expression tokeniser.


svn path=/trunk/; revision=3753
2008-06-10 13:46:41 +00:00
Matthew Allum
fa2f76d4d4 Now with slightly broken window close animations and lot of debug info. 2008-06-09 17:50:56 +01:00
Matthew Allum
2c6c5a6dd1 Add basic shadow support (stolen from m-w-m-2, thanks to tf) 2008-06-06 14:17:38 +01:00
Thomas Thurman
5dbe941495 defensive programming; check meta_screen_get_compositor_data() throughout
2008-06-05  Thomas Thurman  <tthurman@gnome.org>

        * src/compositor/compositor-xrender.c (paint_root, destroy_win,
        create_root_buffer, paint_windows, repair_screen, window_has_shadow,
        xrender_set_active_window, paint_dock_shadows, unmap_win, restack_win,
        make_shadow, resize_win, process_property_notify, free_win,
        process_configure_notify, process_circulate_notify, add_damage):
        defensive programming; check meta_screen_get_compositor_data()
        throughout in case it returns NULL.  In particular, when this
        happened in a certain situation in xrender_set_active_window
        this caused a segfault; refs #530702 (and LP#178953 has more data)
        but this doesn't close them.


svn path=/trunk/; revision=3751
2008-06-05 01:54:25 +00:00
Matthew Allum
c29232fd0d Misc cleanups, removal of stray printf's etc. Add basic win opacity handling 2008-06-04 20:51:08 +01:00
Matthew Allum
8fd2f1d22a synced up very rough local changes for clutter compositing support 2008-06-04 13:58:36 +01:00
Thomas Thurman
a8c5c002fb make sure compositor things don't get compiled when we're not using the
2008-06-02  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c: make sure compositor things don't get
        compiled when we're not using the compositor.


svn path=/trunk/; revision=3748
2008-06-02 22:27:54 +00:00