Commit Graph

147 Commits

Author SHA1 Message Date
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
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
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
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 James Alexander Thurman
922b490499 2.25.2 release.
svn path=/trunk/; revision=3977
2008-10-22 03:50:25 +00: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
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
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
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
ae906b318a API for enabling/disabling input to stage window. 2008-10-16 07:50:49 +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
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
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
1a8e5872d1 Accessors for plugins to obtain stage and overlay_group actors. 2008-10-09 13:22:32 +01:00
Tomas Frydrych
f061a6d793 Added convenience function meta_comp_clutter_plugin_effect_completed() 2008-10-08 16:01:04 +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
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
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
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
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
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
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
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
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
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
e1965914a3 Synced with Metacity 2.23.89 (r3800)
Merge commit '51de9ef8605f7a195ef360afb3a504488125611f' into clutter
2008-08-18 11:11:32 +01: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
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
Matthew Allum
fa2f76d4d4 Now with slightly broken window close animations and lot of debug info. 2008-06-09 17:50:56 +01:00
Iain Holmes
f141692ca2 src/include/frame.h src/include/display.h src/include/xprops.h
2008-05-19  Iain Holmes  <iain@gnome.org>

        * src/include/frame.h
        * src/include/display.h
        * src/include/xprops.h
        * src/include/compositor.h
        * src/include/types.h
        * src/include/window.h
        * src/include/errors.h
        * src/include/screen.h: New basic public API for compositor.

        * src/compositor/*: Separate the compositor out into its own 
separate
        directory and set it up for backends. Initial XRender backend.

        * src/core/compositor.[ch]: Remove

        * src/core/frame.h
        * src/core/screen.h
        * src/core/display.h
        * src/core/window.h: Rename to -private.h so as not to clash 
with the
        new files in include

        * src/core/delete.c
        * src/core/workspace.h
        * src/core/stack.[ch]
        * src/core/keybindings.[ch]
        * src/core/errors.c
        * src/core/effects.[ch]
        * src/core/core.c
        * src/core/group.h
        * src/core/edge-resistance.[ch]
        * src/core/window-props.[ch]
        * src/core/constraints.h
        * src/core/bell.[ch]
        * src/core/iconcache.h
        * src/core/session.[ch]
        * src/core/main.c
        * src/core/place.h
        * src/core/xprops.c
        * src/ui/tabpopup.c: Use the new -private headers

        * src/core/display.c
        * src/core/frame.c
        * src/core/window.c
        * src/core/screen.c: Add the API functions required by the 
compositor

        * src/Makefile.am: Relocate the new files



svn path=/trunk/; revision=3715
2008-05-19 00:00:09 +00:00
Cosimo Cecchi
a8c3d1614f Add ability to vertically and horizontally maximise using the mouse, by
2008-03-03  Cosimo Cecchi  <anarki@lilik.it>

	Add ability to vertically and horizontally maximise
	using the mouse, by clicking the titlebar in various
	ways.  A very similar patch was received from Jason Ribero.
	Thanks also go to Tony Houghton and Carlo Wood, who
	both submitted patches which solved this differently.
	Closes #358674.

        * src/include/common.h (MetaActionTitlebar): new values
	for the new actions
        * src/core/core.c (meta_core_maximize_{vertic|horizont}ally):
	new functions.
        * src/ui/frames.c (meta_frame_titlebar_event): handle the
	new action values
        * src/core/window.h: new macros (for regularity, not really
	necessary)
        * src/core/prefs.c (symtab_titlebar_action): new string
	representations of the action values
        * src/metacity.schemas.in: documentation


svn path=/trunk/; revision=3619
2008-03-03 01:58:54 +00:00
Andrea Del Signore
e021e06178 Add support for "spacer" as a button type which adds some empty space.
2008-02-29  Andrea Del Signore  <sejerpz@tin.it>

	Add support for "spacer" as a button type which adds some
	empty space. Closes #509165.

        * src/ui/theme.c (meta_frame_layout_calc_geometry),
          src/include/common.h (MetaButtonLayout),
          src/core/prefs.c (update_button_layout, button_layout_equal),
          src/metacity.schemas.in: add spacer support


svn path=/trunk/; revision=3615
2008-02-29 20:41:07 +00:00
Thomas Thurman
146ad60c7f removed as it was never used. lots of comments. copyright year is 2008.
2008-01-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/main.[ch] (meta_get_main_loop): removed as it
        was never used.
        * src/core/main.c: lots of comments.
        * src/core/main.c (version): copyright year is 2008.
        * src/core/c-screen.[ch], src/core/c-window.[ch]: removed
        files from Søren's compositor which were removed by the
        merge with Iain's compositor but reintroduced by the split
        to separate subdirectories.
        * src/core/display.c: fix comments.


svn path=/trunk/; revision=3515
2008-01-13 02:42:47 +00:00
Havoc Pennington
b718f79c47 fix a third warning about %d and long int
2007-12-19  Havoc Pennington  <hp@redhat.com>

	* src/core/display.c (meta_display_open): fix a third warning
	about %d and long int

	* src/core/delete.c (io_from_ping_dialog): fix another warning
	about long int to %d

	* src/core/compositor.c (meta_compositor_new): fix a warning about
	long int to %d

	* src/core/iconcache.c (meta_read_icons): use
	meta_ui_get_fallback_icons() instead of incorrectly including theme.h

	* src/ui/ui.c (meta_ui_get_fallback_icons): new function


svn path=/trunk/; revision=3492
2007-12-19 21:38:15 +00:00
Havoc Pennington
72b08c82b1 sort source files into these directories according to which part of the WM
2007-12-19  Havoc Pennington  <hp@redhat.com>

	* src/ui, src/core, src/include: sort source files into these
	directories according to which part of the WM they are supposed to
	be in. In an eventual plan, we should also create
	src/compositor/render, src/compositor/fallback and move some of
	the compositor stuff into that.
	
	* autogen.sh: require a newer automake, so we don't have to use
	a recursive build

	* src/ui/tabpopup.c: put in a hack to make the build temporarily
	work, want to commit the large rearrangement before fixing this
	not to include workspace.h or frame.h

	* src/core/iconcache.c (meta_read_icons): temporarily break this
	to get the build to work, want to commit the large rearrangement
	before fixing this file not to include theme.h


svn path=/trunk/; revision=3491
2007-12-19 21:17:50 +00:00