Commit Graph

30 Commits

Author SHA1 Message Date
Thomas James Alexander Thurman
90359a5346 Added "above" to the list of flags a frame can have, so that we know when
* 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)
2006-10-07 16:56:47 +00:00
Elijah Newren
0201fcfc6c Stick an emacs comment directive at the beginning of all the code files so
2006-10-01  Elijah Newren  <newren gmail com>

	* src/*.[ch]: Stick an emacs comment directive at the beginning of
	all the code files so that people using emacs will be more likely
	to get coding style correct in their patches.  We still need a
	similar vi directive.  #358866
2006-10-01 22:30:10 +00:00
Soeren Sandmann
947e45d27d Add a cache of pixmaps for recently exposed frame areas. Makes metacity a
Sun Jun 26 11:19:18 2005  Soeren Sandmann  <sandmann@redhat.com>

	* src/frames.c: Add a cache of pixmaps for recently exposed frame
	areas. Makes metacity a bit faster when dragging windows around.
	See bug 141813.
2005-06-26 21:58:37 +00:00
Havoc Pennington
71cd8948d2 Patch from Soeren Sandmann #108926 to improve opaque resize
2003-08-16  Havoc Pennington  <hp@pobox.com>

	Patch from Soeren Sandmann #108926 to improve opaque resize

	* src/frame.c (meta_window_ensure_frame): new function

	* src/ui.c (meta_ui_create_frame_window): new function to create
	a frame with GDK, so that GDK's invalidation etc. work properly
2003-08-16 16:32:10 +00:00
Havoc Pennington
6cfcc01334 handle the client having a shape mask, fixes #101806
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_apply_shapes): handle
	the client having a shape mask, fixes #101806

	* src/core.c (meta_core_get_client_xwindow): new function

	* src/frame.c, src/frame.h: keep a flag for whether we need to
	update the frame shape

	* src/window.c (meta_window_new): select for ShapeNotify

	* src/display.h, src/display.c: actually query the shape
	extension, instead of just using it all over the place.

	* src/prefs.c (update_application_based): don't let people turn on
	application_based, as it just causes funky bugs. We can reenable
	the pref when/if it ever does something useful.
2003-01-05 07:51:02 +00:00
Havoc Pennington
3a745537f0 verbose-log on startup whether we were compiled with various extensions
2002-05-30  Havoc Pennington  <hp@redhat.com>

	* src/main.c (main): verbose-log on startup whether we were
	compiled with various extensions

	* src/display.c (meta_display_queue_retheme_all_windows): reapply
	shape mask when changing themes, sucks to do it here though, makes
	theme changing slower. Needs fixing.

	* src/theme-parser.c (parse_toplevel_element): parse rounded
	corner options to frame_geometry

	* src/frames.c (meta_frames_apply_shapes): apply rounded corners
	if requested by the theme

	* configure.in (HAVE_SHAPE): check for shape extension
2002-05-31 00:02:54 +00:00
Havoc Pennington
912afb6e6b DefaultScreen() returns the screen number not Screen*
2002-05-09  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (show_tip_now): DefaultScreen() returns the screen
	number not Screen*

	* src/frame.c (meta_frame_sync_to_window): immediately repaint
	frame whenever we resize it, if we're inside a grab operation.

	* src/frames.c (meta_frames_repaint_frame): new function

	* src/window.c (meta_window_new): initialize window's colormap
	(meta_window_notify_focus): install the colormap for a window when
	it gets focus, uninstall on unfocus.

	* src/window.h (struct _MetaWindow): store window's colormap

	* src/display.c (event_callback): note changes to window colormap

	* src/frame.c (EVENT_MASK): add ColormapChangeMask
2002-05-09 22:34:00 +00:00
Anders Carlsson
0494b044d5 Add multi-screen support. Also add patch by Erwann Chenede to make
2002-05-08  Anders Carlsson  <andersca@gnu.org>

	* configure.in:
	* src/display.c: (meta_display_open):
	* src/fixedtip.c: (meta_fixed_tip_show):
	* src/fixedtip.h:
	* src/frames.c: (meta_frames_new), (show_tip_now):
	* src/frames.h:
	* src/menu.c: (meta_window_menu_new):
	* src/ui.c: (meta_ui_new):
	Add multi-screen support. Also add patch by Erwann Chenede
	to make tooltips appear on the correct screen.
2002-05-08 16:24:28 +00:00
Havoc Pennington
a7378b709b use the preview widget here
2002-02-14  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c: use the preview widget here

	* src/preview-widget.h, src/preview-widget.c: make the theme
	preview into a nice widget

	* src/frames.c (meta_frames_ensure_layout): replace frame layout
	if the frame style changes, this only ends up mattering if you
	e.g. changed the font size for windows in a different state such
	as maximized, which is crack, but the code may as well be correct

	* src/theme.c (meta_theme_get_frame_style): new function so we can
	detect an invalid cache of the PangoLayout in a frame
2002-02-15 02:32:48 +00:00
Anders Carlsson
0ca04ed7aa Set prelit_control to META_FRAME_CONTROL_NONE.
2002-02-12  Anders Carlsson  <andersca@gnu.org>

	* src/frames.c (meta_frames_manage_window): Set prelit_control
	to META_FRAME_CONTROL_NONE.
	(meta_frames_update_prelit_control): New function for setting
	the prelit control.
	(meta_frames_paint_to_drawable): Set prelight state.
	(meta_frames_enter_notify_event): Update prelit control.
	(meta_frames_leave_notify_event): Likewise.
	(meta_frames_motion_notify_event): Likewise.

	* src/frames.h (struct _MetaUIFrame): add prelit_control.
2002-02-12 05:01:22 +00:00
Havoc Pennington
339bdf8dd2 try to make more error message strings the same, easier for translators
2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/theme-parser.c: try to make more error message strings the
	same, easier for translators

	* src/theme.c (meta_draw_op_free): free color spec for line op
	(meta_theme_free): free the integer_constants hash

	* src/theme-parser.c (parse_boolean): move above first use

	* src/theme-viewer.c: fixes for theme.h changes

	* src/frames.c (queue_recalc_func): don't recreate layout
	immediately, just save title text. should speed things up.
	(meta_frames_set_title): just remove the layout here also,
	and save title text.

	* src/theme-parser.c (parse_toplevel_element): parse title_scale
	attribute on frame_geometry

	* src/theme.c: support setting the text size

	* src/frames.c: support setting the text size

	* theme-format.txt: updates
2002-02-09 17:02:38 +00:00
Havoc Pennington
8ae714eeae disable custom log handler and fatal mask for now
2002-02-06  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): disable custom log handler and fatal mask for
	now

	* src/theme.c (meta_draw_op_list_draw):
	Add META_DRAW_CLIP

	* src/main.c: load theme, monitor current theme setting

	* src/prefs.c: add "current theme" setting

	* src/stack.c (meta_stack_free): don't try to free
	last_root_children_stacked if it doesn't exist

	* src/themewidget.c: pluggable GtkMisc subclass to use
	for menu icons

	* src/screen.c (meta_screen_manage_all_windows): fix
	signed/unsigned warning

	* src/frames.c: port to theme system
	(meta_frames_style_set): chain up

	* theme-format.txt: new file

	* configure.in: add more compiler warnings

	* src/theme.c: add various stuff needed to get theme parser
	working. Remove the "spacer" concept from FrameLayout object.
	Add draw op that references a draw op list.

	* configure.in: require GTK 1.3.13

	* src/Makefile.am: add theme-parser.[hc], implement loading a
	theme

	* src/theme.c: add "draw title" and "draw window icon" operations
	(meta_draw_op_draw): put object_width/object_height in expression
	environment before computing x/y. Handle out-of-memory when
	creating pixbufs. Assorted other cleanups.
2002-02-07 03:07:56 +00:00
Havoc Pennington
855d19cc0a separate code to draw frame from the expose_event handler, so in principle
2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/frames.c: separate code to draw frame from the
	expose_event handler, so in principle we can draw the
	frame to a pixmap, but this isn't used yet.
2002-01-27 05:27:11 +00:00
Havoc Pennington
19d2e8c7e1 give priority to keeping NW corner onscreen rather than SE, if we need to
2002-01-18  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): give priority to keeping NW
	corner onscreen rather than SE, if we need to shift the window
	to fit inside constraints

	* src/frames.c (meta_frames_get_geometry): don't depend on the
	current window size

	* src/theme.c: move geometry stuff in here, to be calculated as
	part of the theme

	* src/core.c (meta_core_get_client_size): new function to replace
	meta_core_get_frame_size() so we don't have weird cycles
	in the geometry calculation
2002-01-19 03:50:03 +00:00
Havoc Pennington
282b52d6b7 only handle events here if the modmask from our button grab is active.
2001-10-14  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): only handle events here if
	the modmask from our button grab is active. i.e. only the
	Alt-click is handled here.

	* src/frames.c: add check for whether button presses are in the
	frame client area before handling them, so we don't weirdly let
	you move a frame by clicking in its client area if the client
	hasn't selected button press events.
2001-10-14 04:11:42 +00:00
Havoc Pennington
3645fef5e0 icon for unmaximize
2001-09-10  Havoc Pennington  <hp@pobox.com>

	* src/menu.c (meta_window_menu_new): icon for unmaximize

	* src/ui.c (meta_ui_init): fix call to XDisplayName

	* src/util.c: add missing header

	* src/frames.c: draw an unmaximize control if already maximized
2001-09-11 03:54:54 +00:00
Havoc Pennington
246ac5e578 use the delay exposes feature to avoid the scren dirt
2001-08-18  Havoc Pennington  <hp@pobox.com>

	* src/effects.c (effects_draw_box_animation_timeout): use the
	delay exposes feature to avoid the scren dirt

	* src/ui.c (meta_image_window_set_position): use gtk_window_move()
	to set the position
	(meta_ui_push_delay_exposes):
	(meta_ui_pop_delay_exposes): feature to let us delay redraws until
	after we do server-grabbed draw-on-inferiors effects
2001-08-19 01:19:54 +00:00
rhp
b6e4c8bc41 ... 2001-07-26 03:14:45 +00:00
rhp
ec00c9852d ... 2001-07-04 02:10:54 +00:00
rhp
7d79a37c9d ... 2001-07-03 01:45:43 +00:00
rhp
43f807c5e1 ... 2001-06-30 23:17:52 +00:00
rhp
bf64e719a1 ... 2001-06-23 05:49:35 +00:00
rhp
9e9ffdca42 ... 2001-06-21 06:08:35 +00:00
rhp
f845819c1d ... 2001-06-21 03:40:14 +00:00
rhp
5fee634121 ... 2001-06-20 04:29:28 +00:00
rhp
5fd26a273d ... 2001-06-18 06:11:53 +00:00
rhp
d090d9f284 ... 2001-06-18 03:24:25 +00:00
rhp
59513231a5 ... 2001-06-17 19:53:45 +00:00
rhp
e84267ed3c ... 2001-06-15 04:33:21 +00:00
rhp
29c0947f3c ... 2001-06-12 04:38:24 +00:00