1. 13 Jan, 2014 1 commit
  2. 09 Dec, 2013 1 commit
  3. 19 Nov, 2013 1 commit
    • Owen W. Taylor's avatar
      MetaFrame: Cache borders · a4a8f1f8
      Owen W. Taylor authored
      Cache the computed border size so we can fetch the border size at
      any time without worrying that we'll be spending too much time in
      the theme code (in some cases we might allocate a PangoFontDescription
      or do other significant work.)
      
      The main effort here is clearing the cache when various bits of window
      state change that could potentially affect the computed borders.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=707194
      a4a8f1f8
  4. 16 Oct, 2013 1 commit
  5. 11 Sep, 2013 2 commits
  6. 03 Sep, 2013 1 commit
  7. 10 Aug, 2013 1 commit
    • Robert Bragg's avatar
      Add support for stacking X and Wayland windows together · 40e820f5
      Robert Bragg authored
      This breaks down the assumptions in stack-tracker.c and stack.c that
      Mutter is only stacking X windows.
      
      The stack tracker now tracks windows using a MetaStackWindow structure
      which is a union with a type member so that X windows can be
      distinguished from Wayland windows.
      
      Some notable changes are:
      
      Queued stack tracker operations that affect Wayland windows will not be
      associated with an X serial number.
      
      If an operation only affects a Wayland window and there are no queued
      stack tracker operations ("unvalidated predictions") then the operation
      is applied immediately since there is no server involved with changing
      the stacking for Wayland windows.
      
      The stack tracker can no longer respond to X events by turning them into
      stack operations and discarding the predicted operations made prior to
      that event because operations based on X events don't know anything
      about the stacking of Wayland windows.
      
      Instead of discarding old predictions the new approach is to trust the
      predictions but whenever we receive an event from the server that
      affects stacking we cross-reference with the predicted stack and check
      for consistency. So e.g. if we have an event that says ADD window A then
      we apply the predictions (up to the serial for that event) and verify
      the predicted state includes a window A. Similarly if an event says
      RAISE_ABOVE(B, C) we can apply the predictions (up to the serial for
      that event) and verify that window B is above C.
      
      If we ever receive spurious stacking events (with a serial older than we
      would expect) or find an inconsistency (some things aren't possible to
      predict from the compositor) then we hit a re-synchronization code-path
      that will query the X server for the full stacking order and then use
      that stack to walk through our combined stack and force the X windows to
      match the just queried stack but avoiding disrupting the relative
      stacking of Wayland windows. This will be relatively expensive but
      shouldn't be hit for compositor initiated restacking operations where
      our predictions should be accurate.
      
      The code in core/stack.c that deals with synchronizing the window stack
      with the X server had to be updated quite heavily. In general the patch
      avoids changing the fundamental approach being used but most of the code
      did need some amount of re-factoring to consider what re-stacking
      operations actually involve X or not and when we need to restack X
      windows we sometimes need to search for a suitable X sibling to restack
      relative too since the closest siblings may be Wayland windows.
      40e820f5
  8. 07 Feb, 2013 1 commit
  9. 11 Nov, 2011 1 commit
  10. 08 Jul, 2011 1 commit
    • Florian Müllner's avatar
      core: Replace lower_beneath_focus_window() · 4a10c95e
      Florian Müllner authored
      The code assumed that the focus window was always the one at the
      top of the window stack, which is not true if an unfocused window
      has the above hint set.
      
      Rather than fixing this assumption, rename the function to
      lower_beneath_grab_window() and use the display's grab window - the
      function is only used for displaying the tile previews, which means
      that we want the grab window anyway.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=650661
      4a10c95e
  11. 15 Jun, 2011 1 commit
  12. 18 May, 2011 1 commit
  13. 07 Mar, 2011 1 commit
    • Dan Winship's avatar
      Move the installed includes to a subdir · c84da3ce
      Dan Winship authored
      If mutter is going to be a "real" library, then it should install its
      includes so that users can do
      
          #include <meta/display.h>
      
      rather than
      
          #include <display.h>
      
      So rename the includedir accordingly, move src/include to src/meta,
      and fix up all internal references.
      
      There were a handful of header files in src/include that were not
      installed; this appears to have been part of a plan to keep core/,
      ui/, and compositor/ from looking at each others' private includes,
      but that wasn't really working anyway. So move all non-installed
      headers back into core/ or ui/.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=643959
      c84da3ce
  14. 18 Nov, 2010 2 commits
  15. 28 Oct, 2010 1 commit
  16. 17 Sep, 2010 1 commit
    • Florian Müllner's avatar
      Implement side-by-side tiling · 97e2b466
      Florian Müllner authored
      When dragging a window over a screen edge and dropping it there,
      maximize it vertically and scale it horizontally to cover the
      corresponding half of the current monitor.
      
      Whenever a "hot area" which triggers this behavior is entered, an
      indication of window's target size is displayed after a short delay
      to avoid distraction when moving a window between monitors.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=606260
      97e2b466
  17. 11 Sep, 2010 1 commit
  18. 26 Apr, 2010 2 commits
  19. 30 Jun, 2009 1 commit
  20. 16 Jun, 2009 1 commit
    • Jon Nettleton's avatar
      Comprehensively rename to Mutter · 51a64679
      Jon Nettleton authored
      Code:
      All references in the code not related to themes, keybindings, or
      GConf were changed from 'metacity' to 'mutter'. This includes, among other
      things, strings, comments, the atoms used in the message protocol, and
      the envvars used for debugging. The GConf schema file was reduced to
      the 3 settings new to mutter.
      
      The overall version was brought up to 2.27 to match current gnome.
      
      Structure:
      All files named '*metacity*' were renamed '*mutter*' with appropriate
      changes in the automake system.  Files removed are
      doc/creating_themes, src/themes, doc/metacity-theme.dtd,
      metacity.doap.  These files will eventually end up in an external
      gnome-wm-data module.
      
      Installation location:
      On the filesystem the mutter-plugindir was change from
      $(libdir)/metacity/plugins/clutter to just $(libdir)/mutter/plugins.
      The mutter-plugins.pc.in reflects these changes.
      
      Note:
      mutter.desktop.in and mutter-wm.desktop both continue to have
      X-GNOME-WMSettingsModule=metacity set.  This allows
      gnome-control-center to continue using libmetacity.so for
      configuration.  This is fine since most the general keybindings and wm
      settings are being read from /apps/metacity/* in gconf.
      51a64679
  21. 23 Nov, 2008 1 commit
    • Robert Bragg's avatar
      Adds support in src/core for tracking override redirect windows. · 6849735e
      Robert Bragg authored
      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.
      6849735e
  22. 18 Sep, 2008 1 commit
  23. 06 Sep, 2008 1 commit
    • Thomas Thurman's avatar
      An attempt to keep all information about window bindings in the same · cf484079
      Thomas Thurman authored
      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
      cf484079
  24. 19 May, 2008 1 commit
    • Iain Holmes's avatar
      src/include/frame.h src/include/display.h src/include/xprops.h · f141692c
      Iain Holmes authored
      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
      f141692c
  25. 25 Mar, 2008 1 commit
    • Thomas Thurman's avatar
      MetaDisplay becomes a singleton. The static variable which holds this · 1e325bcb
      Thomas Thurman authored
      2008-03-25  Thomas Thurman  <tthurman@gnome.org>
      
              * src/core/display.c (meta_display_queue_retheme_all_windows,
              meta_set_syncing, meta_display_set_cursor_theme, disable_compositor,
              meta_display_for_x_display, meta_display_open, meta_display_close,
              meta_display_ungrab): MetaDisplay becomes a singleton.  The static
              variable which holds this singleton is renamed "the_display" so as
              not to mask the this parameter in the methods.
      
              * src/core/main.c (main):
              * src/core/session.c (warn_about_lame_clients_and_finish_inte,
              save_state, io_from_warning_dialog):
              * src/core/core.c (meta_core_increment_event_serial):
              * src/core/delete.c (release_window_with_fd, search_and_destroy_window):
              sympathy changes for this, and consequent simplification.
              Closes #499301.
      
      
      svn path=/trunk/; revision=3663
      1e325bcb
  26. 03 Mar, 2008 1 commit
    • Cosimo Cecchi's avatar
      Add ability to vertically and horizontally maximise using the mouse, by · a8c3d161
      Cosimo Cecchi authored
      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
      a8c3d161
  27. 21 Dec, 2007 1 commit
    • Paolo Borelli's avatar
      do not leak list. · b9e1a915
      Paolo Borelli authored
      2007-12-21  Paolo Borelli  <pborelli@katamail.com>
      
      	* src/core/core.c (meta_invalidate_default_icons): do not leak list.
      
      	* src/core/edge-resistance.c 
      	(meta_display_compute_resistance_and_snapping_edges): ditto.
      
      	* src/core/workspace.c (meta_workspace_index): small cleanup in list
      	handling.
      
      
      svn path=/trunk/; revision=3495
      b9e1a915
  28. 19 Dec, 2007 1 commit
    • Havoc Pennington's avatar
      sort source files into these directories according to which part of the WM · 72b08c82
      Havoc Pennington authored
      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
      72b08c82
  29. 11 Jun, 2007 1 commit
    • Thomas Thurman's avatar
      Refactor thrice-duplicated queue code in window.c. Closes #376760. · 8f2b9cb4
      Thomas Thurman authored
      2007-06-10  Thomas Thurman  <thomas@thurman.org.uk>
      
              Refactor thrice-duplicated queue code in window.c. Closes #376760.
      
              * src/window.c (meta_window_queue, meta_window_unqueue):
              New functions.
              * src/window.[ch] (meta_window_unqueue_*, meta_window_queue_*):
              Removed functions.
              * src/window.c (meta_window_new_with_attrs, meta_window_free,
              meta_window_flush_calc_showing, queue_calc_showing_func,
              meta_window_minimize, meta_window_unminimize, meta_window_maximize,
              meta_window_make_fullscreen, meta_window_shade,
              meta_window_unshade, meta_window_move_resize_internal,
              window_stick_impl, window_unstick_impl,
              meta_window_client_message, process_property_notify): Modified to
              use new queueing functions.
              * src/window.c (idle_move_resize, idle_update_icon,
              idle_calc_showing): update to receive queue number from pointer.
              * src/window.h (MetaQueueType): new enum.
              * src/window.h (MetaWindow): *_queued replaced with is_in_queue
              bitfield.
              * src/core.c (meta_core_queue_frame_resize):
              * src/display.c (event_callback,
              meta_display_queue_retheme_all_windows): Using new queueing functions.
              * src/frame.c (meta_window_destroy_frame): Using new queueing functions.
              * src/screen.c (queue_resize, meta_screen_resize_func,
              queue_windows_showing): Using new queueing functions.
              * src/window-props.c (reload_mwm_hints, reload_wm_hints,
              reload_transient_for): Using new queueing functions.
              * src/workspace.c (meta_workspace_add_window,
              meta_workspace_remove_window, meta_workspace_queue_calc_showing,
              meta_workspace_invalidate_work_area): Using new queueing functions.
      
      
      svn path=/trunk/; revision=3236
      8f2b9cb4
  30. 07 Jun, 2007 1 commit
    • Thomas Thurman's avatar
      changed all tabs to spaces. Removed and replaced with meta_core_get(). New · ff33209e
      Thomas Thurman authored
      2007-06-06  Thomas Thurman  <thomas@thurman.org.uk>
      
              * frames.c, core.[ch]: changed all tabs to spaces.
              * core.[ch] (meta_core_get_client_size, meta_core_window_has_frame,
              meta_core_titlebar_is_onscreen, meta_core_get_client_xwindow,
              meta_core_get_frame_flags, meta_core_get_frame_type,
              meta_core_get_mini_icon, meta_core_get_icon, meta_core_get_position,
              meta_core_get_size, meta_core_get_frame_workspace,
              meta_core_get_frame_extents, meta_core_get_screen_size): Removed
              and replaced with meta_core_get().
              * core.[ch] (meta_core_get): New function.
              * core.h (MetaCoreGetType): New enum.
              * frames.c (meta_frames_ensure_layout, meta_frames_calc_geometry,
              meta_frames_get_geometry, meta_frames_apply_shapes,
              meta_frame_titlebar_event, meta_frames_button_press_event,
              populate_cache, clip_to_screen, meta_frames_paint_to_drawable,
              meta_frames_set_window_background, get_control): Replace use of
              removed functions in ui.c with meta_core_get().
      
              All this should make things a little faster. Closes #377495.
      
      
      svn path=/trunk/; revision=3233
      ff33209e
  31. 16 Apr, 2007 1 commit
    • Elijah Newren's avatar
      Remove incorrect usage of window.h from menu.c. See #426791 & #382962. · 6de7271a
      Elijah Newren authored
      2007-04-15  Elijah Newren  <newren gmail com>
      
      	Remove incorrect usage of window.h from menu.c.  See #426791 &
      	#382962.
      
      	* src/menu.c (enum MetaMenuItemType, variable menuitems,
      	  meta_menu_item_new):
      	cleanup: add a MENU_ITEM_RADIOBUTTON for the sticky stuff
      
      	* src/menu.c (variable menuitems):
      	* src/core.c (meta_core_get_menu_accelerator):
      	* src/window.c (menu_callback, meta_window_show_menu):
      	* src/common.h (enum MetaMenuOp):
      	reinstate META_MENU_OP_UNABOVE
      
      	* src/menu.c (meta_window_menu_new):
      	remove hacks (using inappropriate data) for STICK/UNSTICK/ABOVE
      	and clean it up while just setting STICK/UNSTICK activeness as
      	necessary
      
      	* src/menu.[ch] (meta_window_menu_new):
      	* src/ui.[ch] (meta_ui_window_menu_new):
      	make the active_workspace parameter an unsigned long
      
      2007-04-15  Bruno Boaventura <brunobol@gnome.org>
      
      	* src/menu.c (meta_window_menu_new): don't show the current
      	workspace as a possible workspace to switch to.  Fixes #426791.
      
      svn path=/trunk/; revision=3196
      6de7271a
  32. 09 Apr, 2007 1 commit
    • Elijah Newren's avatar
      Remove grab_start_serial, which we expect to be an ancient attempt to · ebfbef86
      Elijah Newren authored
      2007-04-08  Elijah Newren  <newren gmail com>
      
      	Remove grab_start_serial, which we expect to be an ancient attempt
      	to workaround sloppy/mouse focus bugs that have since been
      	correctly fixed.  May fix some race conditions.  May cause nasty
      	bugs in sloppy/mouse focus modes.  We'll find out soon enough...
      	See #304430.
      
      	* src/display.c (event_callback):
      	remove event->xany.serial >= display->grab_start_serial in several
      	event callback handlers
      
      	* src/display.[ch] (struct _MetaDisplay, meta_display_begin_grab_op):
      	* src/keybindings.c (do_choose_window, handle_workspace_switch):
      	* src/frames.c (meta_frames_button_press_event):
      	* src/core.[ch] (meta_core_begin_grab_op):
      	* src/window.c (meta_window_client_message, meta_window_begin_grab_op):
      	don't require an event_serial to be passed to
      	meta_display_begin_grab_op () and don't record it anymore.
      
      	* src/ui.c (struct _EventFunc, filter_func,
      	  meta_ui_get_last_event_serial)
      	* src/core.h (meta_ui_get_last_event_serial):
      	remove meta_ui_get_last_event_serial() function (don't ask me why
      	it was declared in core.h) and the last_even_serial field of
      	_EventFunc
      
      svn path=/trunk/; revision=3182
      ebfbef86
  33. 27 Dec, 2006 1 commit
    • Bruno Boaventura's avatar
      Move "On Top" option in menu. Fix #382962. · 5ca9f437
      Bruno Boaventura authored
      2006-12-27  Bruno Boaventura  <brunoboaventura@gmail.com>
      
              Move "On Top" option in menu. Fix #382962.
      
              * src/common.h, src/core.c: Remove META_MENU_OP_UNABOVE.
              * src/menu.c: remove unabove menu item and put above item
              next "Always on Visible Viewport".
              * src/window.c: remove handles of META_MENU_OP_UNABOVE.
      5ca9f437
  34. 13 Oct, 2006 1 commit
    • Carlo Wood's avatar
      Fix cases when titlebar is allowed offscreen and shouldn't be (and · d79a571d
      Carlo Wood authored
      2006-10-13  Carlo Wood <carlo@alinoe.com>
      
      	Fix cases when titlebar is allowed offscreen and shouldn't be (and
      	vice-versa).  #333995.
      
      	* src/display.[ch] (struct _MetaDisplay): add grab_frame_action
      	member
      
      	* src/display.[ch] (meta_display_begin_grab_op):
      	* src/window.[ch] (meta_window_begin_grab_op):
      	* src/core.[ch] (meta_core_begin_grab_op):
      	Add frame_action parameter (core & window versions pass it on to
      	display)
      
      	* src/display.c (event_callback):
      	* src/window.c (meta_window_begin_grab_op,
      	  meta_window_client_message, menu_callback):
      	* frames.c (meta_frames_button_press_event):
      	* keybindings.c (do_choose_window, handle_begin_move,
      	  handle_begin_resize, handle_workspace_switch):
      	Pass whether the action should be considered a 'frame_action',
      	which will be used to determine whether to force the titlebar to
      	remain onscreen, to meta_*_begin_grab_op
      
      	* constraints.c (constrain_titlebar_visible):
      	Replace previous ugly hack by using grab_frame_action (and whether
      	the action is a user action) to determine whether to enforce the
      	titlebar_visible constraint.
      d79a571d
  35. 07 Oct, 2006 1 commit
    • Thomas James Alexander Thurman's avatar
      Added "above" to the list of flags a frame can have, so that we know when · 90359a53
      Thomas James Alexander Thurman authored
      
              * common.h: Added "above" to the list of flags a frame can have, so
      	that we know when to mark it as always on top.  Added six grab ops,
      	one to do and one to undo each of the three new titlebar buttons
      	(shade, above, stick).  Added six new button functions, similarly.
      	(#96229)
      
              * frame.c (meta_frame_get_flags): If a frame has the WM_STATE_ABOVE X
               attribute, set META_FRAME_ABOVE in its flags.
      
              * frames.c (meta_frames_apply_shapes): Allow variable amounts of
               rounding. (#113162)
      
              * frames.c (show_tip_now, meta_frames_paint_to_drawable, control_rect,
      	 get_control): extend handling of existing buttons to the
               3*2 new kinds of button. (#96229)
      
              * frames.c (meta_frames_button_press_event): translate clicks on the 3*2
               new kinds of button to the new grab ops. (#96229)
      
              * frames.c (meta_frames_button_release_event): implement the various
              actions for the 3*2 new kinds of button. (#96229)
      
              * frames.c (meta_frames_update_prelit_control,
               meta_frames_motion_notify_event): extend existing motion
               notifications for buttons to the 3*2 new kinds of button. (#96229)
      
              * frames.c (meta_frames_set_window_background): handle specified
               background colours and alpha transparency. (#151261)
      
              * frames.h (MetaFrameControl): New control types for the 3*2 new kinds
      	 of button.  (#96229)
      
              * iconcache.[ch] (meta_read_icons): use theme's fallback icons if a
      	 window has no icon; use metacity's fallback icons only if the theme
               does not provide any. (#11363)
      
              * iconcache.[ch] (meta_invalidate_default_icons (new function)): clear
               icon cache on windows using default icons, and update them. (#11363)
      
              * main.c (main): added \n to error message.
      
              * prefs.c (button_function_from_string): extend for 3 new button
      	 types. (#96229)
      
              * prefs.c (button_opposite_function (new function)): return a button
               function's inverse (shade -> unshade, etc) (#96229)
      
              * prefs.c (update_button_layout): allocate space for a button's
      	 inverse, if it has one. (#96229)
      
              * theme-parser.c (ParseState): add state for fallback icons (#11363)
      
              * theme-parser.c (ParseInfo): add format_version; remove
               menu_icon_* (#114305)
      
              * theme-parser.c (parse_positive_integer): add lookup for integer
      	 constants (#331356)
      
              * theme-parser.c (parse_rounding (new function)): parse window
      	 rounding amount (#113162)
      
              * theme-parser.c (parse_alpha): don't set error if the number can't
      	 be parsed since it'll already be set; change tolerance in comparison
      	 from 1e6 to 1e-6
      
              * theme-parser.c (parse_color (new function)): parse colour, including
      	 possible constant lookup.
      
              * theme-parser.c (parse_toplevel_element): allow defining of various
      	new kinds of constant; allow
      	hide_buttons (#121639) and more detailed rounding attributes on
      	<frame_geometry> (#113162); allow background and alpha attributes on
      	<frame_style>; (#151261) remove support for <menu_icon> except as
      	stub; (#114305) add support for loading stock images (#113465); add
              support for <fallback>. (#11363))
      
              * theme-parser.c (parse_draw_op_element): add from and to attribute
               for arcs. (#121603)
      
              * theme-parser.c (parse_style_element): add check for theme version
               supporting a button function. (#96229)
      
              * theme-parser.c (parse_style_set_element): add ability for shaded
      	 windows to be resizable (#114304)
      
              * theme-parser.c (meta_theme_load): add theme versioning routine.
      
              * theme.c ( meta_frame_layout_get_borders): return rectangles for
      	 the new 3*2 kinds of button, except where they're
               inapplicable. (#96229)
      
              * theme.c (meta_frame_layout_calc_geometry): don't format buttons on
      	windows with no buttons (#121639); strip the 3*2 new kinds of button
      	correctly (#96229); allow variable amounts of rounding (#113162).
      
              * theme.c (meta_frame_style_new): set alpha to 255 by
              default. (#151261)
      
              * theme.c (meta_frame_style_unref): free colour spec if
              allocated. (#151261)
      
              * theme.c (meta_frame_style_validate): it's only an error not to
              include a button if that button is valid in the current
              theme. (#96229)
      
              * theme.c (button_rect): return rectangles for the new 3*2 kinds
      	of button. (#96229)
      
              * theme.c (meta_frame_style_set_unref): free differently resizable
      	shaded styles. (#114304)
      
              * theme.c (get_style): look up differently resizable styles
              for shaded windows. (#114304)
      
              * theme.c (free_menu_ops (removed function), get_menu_icon
      	 (removed function), meta_theme_draw_menu_icon (removed function),
               meta_menu_icon_type_from_string (removed function),
               meta_menu_icon_type_to_string (removed function),
               meta_theme_free, meta_theme_validate): removed menu icon code. (#114305)
      
              * theme.c (meta_theme_load_image): add size_of_theme_icons
      	parameter. (#113465)
      
              * theme.c (meta_theme_define_color_constant (new function),
              meta_theme_lookup_color_constant (new function)): allow
              definition of colour constants. (#129747)
      
              * theme.c (meta_button_type_from_string, meta_button_type_to_string):
              add the 3*2 new kinds of button. (#96229)
      
              * theme.c (meta_theme_earliest_version_with_button (new function)):
              return the theme version each button was introduced in. (#96229)
      
              * theme.h ( MetaFrameLayout): add "hide_buttons" flag (#121639) and
      	corner radiuses. (#113162)
      
              * theme.h (MetaFrameGeometry): add rectangles for the 3*2 new
      	buttons. (#96229)
      
              * theme.h (MetaButtonType): the 3*2 new buttons. (#96229)
      
              * theme.h (MetaFrameStyle): add window_background_color and
              window_background_alpha so that we can specify background on a
              <frame_style>. (#151261)
      
              * theme.h (MetaFrameStyleSet): shaded_styles gets resize
      	dimension. (#114304)
      
              * theme.h (MetaTheme): added format_version, color_constants
              hash, (#129747) fallback_icon and fallback_mini_icon, (#11363)
              and removed menu_icons. (#114305)
      
              * theme.h (META_THEME_ALLOWS (new macro)): return whether a theme
              supports a given feature. Also, several macros representing
              new features in v2.
      
              * ui.c (meta_ui_set_current_theme)): also invalidate default
              icons. (#11363)
      
              * window.[ch] (meta_window_update_icon_now)): became
      	non-static. (#11363)
      90359a53
  36. 01 Oct, 2006 1 commit
  37. 18 Sep, 2006 1 commit
    • Elijah Newren's avatar
      Partial audit to fix timestamp usage. One step towards fixing #355180; see · 5c587726
      Elijah Newren authored
      2006-09-18  Elijah Newren  <newren gmail com>
      
      	Partial audit to fix timestamp usage.  One step towards fixing
      	#355180; see important comments in that bug.
      
      	* src/core.[ch] (meta_core_unshade, meta_core_shade):
      	* src/delete.c (meta_window_present_delete_dialog,
      	  delete_ping_timeout_func):
      	* src/display.[ch] (meta_display_open, meta_display_close,
      	  event_callback, meta_display_begin_grab_op,
      	  process_selection_clear, meta_display_unmanage_screen,
      	  meta_display_unmanage_windows_for_screen):
      	* src/frames.c (meta_frames_button_press_event):
      	* src/keybindings.c (handle_toggle_shade):
      	* src/main.c (main):
      	* src/screen.[ch] (update_num_workspaces, meta_screen_new,
      	  meta_screen_free, prefs_changed_callback):
      	* src/window.[ch] (meta_window_free, finish_minimize,
      	  implement_showing, meta_window_show, meta_window_maximize,
      	  meta_window_make_fullscreen_internal,
      	  meta_window_unmake_fullscreen, meta_window_shade,
      	  meta_window_unshade, window_activate, send_sync_request,
      	  meta_window_client_message, menu_callback,
      	  meta_window_update_keyboard_resize):
      	Remove usage of CurrentTime, meta_display_get_current_time() and
      	meta_display_get_current_time_roundtrip() where possible, or
      	document why it isn't possible, or at very least add a FIXME with
      	some explanation of my laziness and what needs to be done.
      5c587726