Commit Graph

688 Commits

Author SHA1 Message Date
James M. Cape
e64d1bf881 Major changes to look of theme. I'd also recommend
2002-11-10  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Major changes
	to look of theme. I'd also recommend "minimize,maximize:close"
	for the button_layout, it looks really slick :-).
2002-11-10 19:08:14 +00:00
Jonathan Blandford
0163c58ee1 include common.h with the installed files 2002-11-08 00:05:36 +00:00
Mark McLoughlin
bc3b64f922 impl for nice debugging. (meta_workspace_get_neighbor): fix broken logic
2002-11-08  Mark McLoughlin  <mark@skynet.ie>

        * src/workspace.c:
        (meta_motion_direction_to_string),
        (meta_screen_corner_to_string): impl for nice debugging.
        (meta_workspace_get_neighbor): fix broken logic and
        cleanup debugging.
2002-11-07 23:13:12 +00:00
Jonathan Blandford
765cb51df3 add a pc file for libmetacity-private
Thu Nov  7 17:07:21 2002  Jonathan Blandford  <jrb@redhat.com>

	* src/libmetacity-private.pc.in: add a pc file for
	libmetacity-private

	* src/Makefile.am: Install a few files as a shared library so that
	others can draw metacity themes.
2002-11-07 22:09:59 +00:00
Havoc Pennington
c613fed9ef push an error trap around the whole window-key-grab loop
2002-11-06  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (grab_keys): push an error trap around the
	whole window-key-grab loop
	(ungrab_all_keys): avoid requiring return value from the error
	trap, unless in debugging mode
	(regrab_window_bindings, regrab_screen_bindings): push traps
	around the loops, for efficiency

	* src/display.c (event_callback): fix from Padraig O'Briain to
	compress extra MappingNotify events to avoid extra work.
2002-11-06 16:00:56 +00:00
Calum Benson
6c18374142 Crux tweaks: adds a Restore button for maximized windows, and un-hard-codes
titlebar text colors. Fixes #97759.
2002-11-05 19:38:12 +00:00
Havoc Pennington
a64b868dbd apply patch from Nikos Mouat to fix this function
2002-11-05  Havoc Pennington  <hp@redhat.com>

	* src/workspace.c (meta_workspace_get_neighbor): apply patch from
	Nikos Mouat to fix this function
2002-11-05 19:25:06 +00:00
Havoc Pennington
77349f6878 fix bug I introduced in case where scaling was done in both directions.
2002-11-04  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (scale_and_alpha_pixbuf): fix bug I introduced in
	case where scaling was done in both directions.
2002-11-04 20:34:25 +00:00
Havoc Pennington
5efd276a22 Patch from Brian Cameron to implement the vertical/horizontal striped
2002-11-04  Havoc Pennington  <hp@pobox.com>

        Patch from Brian Cameron to implement the vertical/horizontal
	striped image accelerated scaling from the gtk pixbuf engine.

	* src/theme.c (scale_and_alpha_pixbuf): if an image is
	vertical/horizontal stripes, use special extra-fast scaling
	routines.

	* src/theme-parser.c (parse_draw_op_element): when loading an
	image, mark it as vertically/horizontally striped when appropriate
2002-11-04 17:55:56 +00:00
Erwann Chenede -
373f6de13e changed __FUNCTION__ to G_GNUC_FUNCTION as __FUNCTION__ is not portable.
2002-11-04 Erwann Chenede - <erwann.chenede@sun.com>

  * src/xprops.c (meta_prop_get_values): changed __FUNCTION__
  to G_GNUC_FUNCTION as __FUNCTION__ is not portable.
2002-11-04 17:24:47 +00:00
Havoc Pennington
e0a4c2a1df remove XSync calls from here (meta_display_ungrab): remove XSync from
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_grab): remove XSync calls from here
	(meta_display_ungrab): remove XSync from here, but put in
	an XFlush to be sure we get the ungrab sent.

	* src/util.c (meta_topic): track sync count here

	* src/errors.c: move sync count out of here

        Throughout: error spew on all XSync() calls

	* src/run-metacity.sh: don't set METACITY_DEBUG
2002-11-04 00:56:12 +00:00
Havoc Pennington
9feebc05c7 add _NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME support
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	_NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME support

	* src/window.c (meta_window_new): use window-props.h for
	_NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME
2002-11-04 00:19:08 +00:00
Havoc Pennington
d7917c02fe use window-props.h stuff for a couple of properties (implement_showing):
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): use window-props.h stuff for a
	couple of properties
	(implement_showing): fix printf string

	* src/xprops.c (meta_prop_free_values): new function

	* src/window-props.h, src/window-props.c: start moving code that
	handles loading window properties into this file.
2002-11-03 23:42:21 +00:00
Havoc Pennington
1d0b5ef660 split into "see if we should be showing" and "actually show/hide"
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_calc_showing): split into "see if we
	should be showing" and "actually show/hide" functions
	(idle_calc_showing): rework to first unmap all newly-hidden
	windows from bottom to top then map all newly-showing windows from
	top to bottom resulting in fewer exposes, #95220
2002-11-03 20:30:45 +00:00
Havoc Pennington
ee84fbb81f fix from Garrett LeSage for which button backgrounds we draw when
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_frame_layout_calc_geometry): fix from Garrett
	LeSage for which button backgrounds we draw when
2002-11-03 19:55:38 +00:00
Havoc Pennington
6a1abc7482 new function, and remove workspace->name field, instead just get the name
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_name): new function,
	and remove workspace->name field, instead just get the
	name from prefs each time

	* src/screen.c (meta_screen_update_workspace_names): update the
	gconf key to persist workspace names here, instead of changing
	the names we use

	* src/util.c (topic_name): add META_DEBUG_PREFS

	* src/prefs.c: change NUM_COMMANDS to 32 to allow more custom
	commands, implement workspace names

	* src/metacity.schemas.in: add workspace_names/name_NN gconf keys.
2002-11-03 19:06:39 +00:00
Havoc Pennington
b3a1122b2a use meta_prop_get_size_hints
2002-10-28  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_size_hints): use meta_prop_get_size_hints

	* src/xprops.c: add support for getting XSizeHints
2002-10-28 20:22:22 +00:00
Havoc Pennington
effec94613 store the window menu on the display and blow it away when a window
2002-10-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c, src/display.c: store the window menu on the
	display and blow it away when a window closes, so we don't
	get funny stuck menus. Patch from Martin Garton #87514
2002-10-28 05:35:30 +00:00
Havoc Pennington
81089c2d8c move meta_window_shutdown_group() much earlier in the destroy process. May
2002-10-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): move
	meta_window_shutdown_group() much earlier in the destroy process.
	May fix #96928 tracked down by Kjartan Maraas and Martin Garton.

	* src/group.c (meta_window_get_group): never add window to a group
	after we've started unmanaging the window
2002-10-27 14:45:29 +00:00
Havoc Pennington
04c9c3e058 include config.h
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/iconcache.c: include config.h

	* src/group.c: include config.h

	* src/frame.c: include config.h

	* src/core.c: include config.h so it doesn't crash all over the
	place due to #ifdef HAVE_STARTUP_NOTIFICATION

	* src/util.c (meta_print_backtrace): export from this file

	* src/main.c (log_handler): print backtrace here
2002-10-27 03:03:32 +00:00
Havoc Pennington
4d5cc9d0bb make windows randomly transient for each other
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/wm-tester/main.c (evil_timeout): make windows randomly
	transient for each other http://bugzilla.gnome.org/show_bug.cgi?id=96928
2002-10-26 21:56:50 +00:00
Havoc Pennington
0d88e93787 new function (meta_prop_get_wm_hints): new function
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_text_property): new function
	(meta_prop_get_wm_hints): new function
	(meta_prop_get_class_hint): new function
2002-10-26 16:40:50 +00:00
Havoc Pennington
5a8af8c2fb use multi-value-get on a couple of properties for testing
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): use multi-value-get on a couple
	of properties for testing

	* src/xprops.c (meta_prop_get_values): implement multi-value-get

	* src/window.c (update_mwm_hints): XFree motif hints as we changed
	it to use Xmalloc

	* src/xprops.c: massively rework this to set up a
	get-multiple-properties-at-once API.

	* src/async-getprop.c (ag_Xmalloc): new function
2002-10-26 07:37:11 +00:00
Havoc Pennington
e8097a6f8f fix build 2002-10-26 01:49:03 +00:00
Havoc Pennington
cb27f0c4be Add "busy cursor on app startup" support, conditionally - works only if
2002-10-25  Havoc Pennington  <hp@pobox.com>

        Add "busy cursor on app startup" support, conditionally - works
	only if libstartup-notification is found, and in practice requires
	a GTK patch that's not in yet.

	* src/screen.c: monitor startup events and set busy cursor if
	appropriate

	* src/display.c (meta_display_open): create SnDisplay

	* configure.in: check for startup notification,
	and add the cute "configure summary" at the end
2002-10-25 23:35:50 +00:00
Havoc Pennington
c3a5c4c169 if only one right-corner button, use right_right_background not
2002-10-24  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): if only one
	right-corner button, use right_right_background not
	right_left_background
2002-10-24 20:47:19 +00:00
Havoc Pennington
9702903343 make public
2002-10-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_get_icon_geometry): make public

	* src/screen.c (meta_screen_ensure_tab_popup): put the alt+tab
	highlight-window indicator on the icon, not the window itself,
	if the window is minimized.
2002-10-24 05:21:51 +00:00
Havoc Pennington
15a05467bd put minimized windows at the end of Alt+Tab, #89416
2002-10-24  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_get_tab_list): put minimized windows
	at the end of Alt+Tab, #89416
2002-10-24 05:15:28 +00:00
Havoc Pennington
0041f49d3f initialize the left button background rectangles.
2002-10-23  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): initialize the
	left button background rectangles.
2002-10-23 19:46:44 +00:00
Havoc Pennington
c6b475b251 Optimizations for managing new windows (do not all take effect if
2002-10-21  Havoc Pennington  <hp@redhat.com>

	Optimizations for managing new windows (do not all take effect if
	METACITY_DEBUG=1). Bug #96404

	* src/keybindings.c (meta_change_keygrab): use error trap nesting
	and conditionalize on meta_is_verbose() to avoid a ton of XSync

	* src/display.c (meta_change_button_grab): ditto

	Throughout: move to new error trap setup to save on XSync calls,
	new setup is:

	* src/errors.c (meta_error_trap_push_with_return): new function,
	an error trap that needs to care about return value and thus
	sync even if an outer trap still exists
	(meta_error_trap_pop_with_return): new function
	(meta_error_trap_pop): add "last_request_was_roundtrip"
	argument allowing us to avoid XSync() if we just did
	a GetProperty or whatever.

	* src/util.c (meta_warning): flush the warning file descriptor

	* src/Makefile.am (INCLUDES): define G_LOG_DOMAIN
2002-10-21 21:44:35 +00:00
Havoc Pennington
0c5cacf7cc put multihead stuff in HAVE_GTK_MULTIHEAD, reported by John Palmieri
2002-10-20  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_image_window_new): put multihead stuff in
	HAVE_GTK_MULTIHEAD, reported by John Palmieri
2002-10-20 17:17:16 +00:00
Havoc Pennington
95e5a13131 check above->mapped before deciding if it overlaps the window being
2002-10-20  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (handle_raise_or_lower): check above->mapped
	before deciding if it overlaps the window being raiselowered,
	fix from Stephane Chauveau
2002-10-20 15:22:40 +00:00
Havoc Pennington
70b6a57003 call meta_image_window_new in multihead-safe way
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/effects.c (meta_effects_draw_box_animation): call
	meta_image_window_new in multihead-safe way

	* src/ui.c (meta_image_window_new): multihead safety
2002-10-18 22:46:37 +00:00
Havoc Pennington
915c2db3b9 only create the resize popup if width_inc or height_inc are > 1
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_refresh_resize_popup): only create the
	resize popup if width_inc or height_inc are > 1

	* src/resizepopup.c: Clear out all the weird tickmark cruft,
	saves us about 2.5K of binary size, whee
	(meta_ui_resize_popup_new): take display/screen arguments and make
	multihead-safe #94349
2002-10-18 22:37:01 +00:00
Havoc Pennington
eb647577c3 don't start the cycle process if the binding for switching windows has no
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/keybindings.c (do_choose_window): don't start the cycle
	process if the binding for switching windows has no modifier bits,
	just focus the window immediately.

	* src/prefs.c, src/keybindings.c: add a keybinding to move between
	windows that goes in the opposite direction.  This is mostly
	useful if you want to bind unmodified keys to the switch windows
	functions, e.g. if you have "Forward" and "Back" keys on your
	keyboard. Patch from Shilad Sen <shilad sourcelight com>
2002-10-18 22:19:05 +00:00
Havoc Pennington
1094410ff8 add "what happens when you double click the titlebar" setting, patch from
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/prefs.c, src/frames.c: add "what happens when you double
	click the titlebar" setting, patch from Sean Middleditch bug
	#95625.  This is basically an "add Windows emulation mode" patch.
2002-10-18 21:22:27 +00:00
Havoc Pennington
6e90c238e8 move window-click to Super+click not Alt+click by default. Super should be
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: move window-click to Super+click not
	Alt+click by default. Super should be the Windows key on keyboards
	that have one and are so configured.  Prepare for the FAQ on this.
2002-10-18 19:07:42 +00:00
Havoc Pennington
44a63a9911 fix min aspect handling, patch from Martin Garton #94943
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_size): fix min aspect handling,
	patch from Martin Garton #94943
2002-10-18 18:58:05 +00:00
Havoc Pennington
370982b812 replace the old apply_constraints with wacky new approach involving
2002-10-18  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (constrain_stacking): replace the old
	apply_constraints with wacky new approach involving graphing all
	the constraints then walking the graph.  Fixes #94876 and probably
	other stacking bugs as well, thanks to Arvind for tracking down
	the issue.

	(compute_layer): add FIXME and reference to bug #96140
2002-10-18 06:05:09 +00:00
Havoc Pennington
5ba2fa893f don't place transient-for-whole-group windows above _each other_, only
2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (apply_constraints): don't place
	transient-for-whole-group windows above _each other_, only
	above other windows in the group that aren't themselves
	transient-for-whole-group. Should help with part of #94876
2002-10-17 16:36:50 +00:00
Havoc Pennington
4eb8a93c83 debug enhancements 2002-10-17 16:20:50 +00:00
Havoc Pennington
3da0b1c7d9 fix memory leak of group_windows, and don't use the variable name "tmp"
2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (apply_constraints): fix memory leak of
	group_windows, and don't use the variable name "tmp" twice. Shadow
	variables bad.
2002-10-17 16:07:50 +00:00
Havoc Pennington
aa62466091 add code to create big stacks of dialogs transient for each other, for
2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-window-demo.c (dialog_cb): add code to create
	big stacks of dialogs transient for each other, for testing.
2002-10-17 16:04:53 +00:00
Havoc Pennington
337812d51d workspaces are all per-screen now, fix accordingly
2002-10-16  Havoc Pennington  <hp@redhat.com>

	* src/workspace.c: workspaces are all per-screen now, fix
	accordingly

	* src/core.c: fix multihead workspace stuff

	* src/keybindings.c: multihead-rama

	* src/screen.c (meta_screen_show_desktop): new functions to
	replace display equivalents

	* src/display.c (meta_display_get_workspace_by_screen_index): get
	rid of this
	(meta_display_get_workspace_by_index): get rid of this
	(event_callback): handle _NET_SHOWING_DESKTOP message per-screen

	* src/screen.c (meta_screen_get_workspace_by_index): new function

	* src/screen.h (struct _MetaScreen): move workspace list, and
	showing_desktop flag, to be per-screen

	* src/window.c (window_query_root_pointer): return whether pointer
	is on window's screen
	(meta_window_handle_mouse_grab_op_event): don't use coordinates
	from other screens when updating a window operation on the current
	screen. I can't believe no one has reported this...
2002-10-16 20:12:24 +00:00
Havoc Pennington
17ac646f70 update window layer when above/below state is changed. Fixed by Ross
2002-10-16  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_client_message): update window layer
	when above/below state is changed. Fixed by Ross Burton.
2002-10-16 14:53:19 +00:00
Federico Mena Quintero
8c2e8ddf5c Ignore EnterNotify events when the detail field is set to NotifyInferior.
2002-10-14  Federico Mena Quintero  <federico@ximian.com>

	* src/display.c (event_callback): Ignore EnterNotify events when
	the detail field is set to NotifyInferior.  Fixes #95747.
2002-10-15 14:46:12 +00:00
Havoc Pennington
ae577d7724 button layout key
2002-10-12  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: button layout key

	* src/prefs.c: Add button layout gconf key
	(change_notify): use some "else if" instead of "if" where we
	should have been
2002-10-12 17:44:55 +00:00
Havoc Pennington
82e5cb578c don't raise window on button 2 click, only on button 1 and button 3.
2002-10-11  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): don't raise window on button 2
	click, only on button 1 and button 3.

	* src/frames.c (meta_frames_button_press_event): lower on button 2
	press on frame

	* src/core.c (meta_core_user_lower): new function
2002-10-11 18:42:40 +00:00
Havoc Pennington
0df65b9f9f make the checks here allow windows larger than the screen in addition to
2002-10-11  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (window_is_fullscreen_size): make the checks here
	allow windows larger than the screen in addition to
	exactly-screen-size

	* src/window.c (meta_window_configure_request): delete the "try to
	auto-enter-fullscreen-state" hack here, because it was broken, and
	the changes to the stacking code to move screen-size focused
	windows to the fullscreen layer should work better.
	(meta_window_new): remove auto-fullscreen hack from here too
2002-10-11 05:26:07 +00:00
Havoc Pennington
25ca0e21db also keep utility/menu/toolbar windows above their whole group.
2002-10-09  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (apply_constraints): also keep utility/menu/toolbar
	windows above their whole group.

	(get_standalone_layer): don't use META_LAYER_FOCUSED_WINDOW, but
	only use META_LAYER_FULLSCREEN while the fullscreen window has
	focus.  Also, put screen-sized windows in the fullscreen layer,
	even if we didn't dare to actually put them in the fullscreen
	state.
2002-10-09 23:19:14 +00:00
Havoc Pennington
f08337d939 Add a modifier key preference for the Alt+click stuff. Can be set to
2002-10-07  Havoc Pennington  <hp@redhat.com>

        Add a modifier key preference for the Alt+click stuff.
	Can be set to "disabled" as well.

	* src/run-metacity.sh: load .Xmodmap in the Xnest if it exists

	* src/display.c (meta_display_ungrab_window_buttons): ungrab
	AnyModifier in case the modifier changed since we grabbed
	(meta_display_open): rearrange code to use meta_display_close() to
	mop up when we can't find any screens, avoiding the need to
	keep the bail-out code in sync with meta_display_close.

	* src/keybindings.c (devirtualize_modifiers): move this function
	to a public place in display.c

	* src/metacity.schemas.in: add setting for the modifier key
	to use for Alt+left/middle/right click.

	* src/prefs.c (update_binding): add a missing newline to a warning
	(meta_prefs_get_mouse_button_mods): new function

	* src/ui.c (meta_ui_parse_modifier): new function
2002-10-07 23:14:40 +00:00
Havoc Pennington
372dc090fd don't include unportable Xproto.h, fix from Glynn Foster.
2002-10-07  Havoc Pennington  <hp@pobox.com>

	* src/async-getprop.c: don't include unportable Xproto.h, fix from
	Glynn Foster.
2002-10-07 14:30:36 +00:00
Havoc Pennington
81b6316081 rig the benchmark a bit ;-) 2002-10-06 19:50:31 +00:00
Havoc Pennington
fc4a0aef0d change to add only one _XAsyncHandler per display, speeding things up a
2002-10-06  Havoc Pennington  <hp@pobox.com>

	* src/async-getprop.c: change to add only one _XAsyncHandler per
	display, speeding things up a bit.
2002-10-06 17:53:29 +00:00
Havoc Pennington
a1bb0e0015 Add wacky hack suggested by Keith Packard to get X properties
2002-10-06  Havoc Pennington  <hp@pobox.com>

	* src/async-getprop.c: Add wacky hack suggested by Keith Packard
	to get X properties asynchronously. Not actually used by metacity
	yet, but thinking about it.
2002-10-06 09:04:39 +00:00
Havoc Pennington
9de7b59e93 do XRRUpdateConfiguration() if we have RandR extension, else poke in
2002-10-04  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): do XRRUpdateConfiguration()
	if we have RandR extension, else poke in Xlib's screen struct to
	update the screen size.

	* configure.in: fix a bogus overwrite of cppflags,
	add a check for RandR extension
2002-10-04 18:31:54 +00:00
Arvind Samptur
0388149904 call meta_window_unstick before adding window to workspace.
2002-10-04  Arvind Samptur <arvind.samptur@wipro.com>
        * src/window.c (meta_window_change_workspace): call meta_window_unstick
        before adding window to workspace.
        (menu_callback): call meta_workspace_activate before meta_window_change_workspace.
        This would avoid us running an extra loop for determining the window workspace list.

        Patches from Jeyasudha and Arvind. Fixes #92575
2002-10-04 14:49:00 +00:00
Havoc Pennington
7b0cd87838 only specify the middle backgrounds, let left/right fall back to middle
2002-10-03  Havoc Pennington  <hp@pobox.com>

	* src/themes/Esco/metacity-theme-1.xml: only specify the
	middle backgrounds, let left/right fall back to middle

	* src/theme.c (get_button): fall back to middle_background draw
	routines when missing the left/right button backgrounds.
	(button_rect): fix to handle drawing middle button backgrounds
	(meta_frame_style_draw): draw middle background once per middle
	button
2002-10-04 02:59:07 +00:00
Havoc Pennington
7641c6f952 Button-reordering patch. Has all the code except actually installing a
2002-10-03  Havoc Pennington  <hp@pobox.com>

        Button-reordering patch. Has all the code except actually
	installing a gconf schema and reading the gconf key in prefs.c.
	metacity-theme-viewer displays the button layouts for testing
	themes.

	* src/preview-widget.c (meta_preview_size_request): make up a
	width/height if no child widget

	* src/prefs.c (meta_prefs_get_button_layout): new function

	* src/frames.c: get the button layout from prefs and
	use it when drawing

	* src/theme.c (meta_frame_layout_calc_geometry): enhance to be
	able to lay out buttons in different arrangements
	(button_rect): draw the new button background rectangles
	(meta_theme_draw_frame): require a button layout argument
	(meta_theme_calc_geometry): pass in the button layout

	* src/preview-widget.h: mod to handle button layouts

	* src/theme-viewer.c: mod to handle button layouts
2002-10-04 02:28:57 +00:00
Havoc Pennington
a544f68ac9 handle the case where the clock is set backward
2002-10-03  Havoc Pennington  <hp@redhat.com>

	* src/window.c (check_moveresize_frequency): handle the case where
	the clock is set backward
2002-10-03 21:49:13 +00:00
Havoc Pennington
ba9d2d1a71 try extra cascades alongside the first, if the first fails; patch from
2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/place.c (find_next_cascade): try extra cascades alongside
	the first, if the first fails; patch from readams@hmc.edu
2002-10-02 02:42:24 +00:00
Havoc Pennington
f4920a9249 put ABOVE windows in same layer as docks.
2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (get_standalone_layer): put ABOVE windows in same
	layer as docks.
2002-10-02 00:48:45 +00:00
Havoc Pennington
94b6dde6bb make it static
2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_resize_func): make it static

	* src/stack.c (get_standalone_layer): put above/below windows
	in an appropriate layer.

	* src/screen.c (set_supported_hint): say we support above/below

	* src/display.h (struct _MetaDisplay): add _NET_WM_STATE_ABOVE,
	_NET_WM_STATE_BELOW atoms

	* src/window.c (meta_window_client_message): handle above/below
	state messages
	(set_net_wm_state): handler above/below state
	(update_net_wm_state): handle above/below states
2002-10-02 00:47:29 +00:00
Mark McLoughlin
791ab07bd4 default to topleft starting corner. (meta_screen_update_workspace_layout):
2002-10-01  Mark McLoughlin  <mark@skynet.ie>

        * src/screen.c: (meta_screen_new): default to
        topleft starting corner.
        (meta_screen_update_workspace_layout): handle
        new property format : orient,x,y,starting corner.
        Fixes #89373.

        * src/screen.h: add MetaScreenCorner enum.
2002-10-01 19:57:26 +00:00
Havoc Pennington
437093dee0 always align fullscreen windows to top, as we do with maximized windows.
2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): always align fullscreen
	windows to top, as we do with maximized windows.
2002-10-01 13:17:45 +00:00
Havoc Pennington
3407dffed0 fix compilation on Solaris, patch from Satyajit Kanungo
2002-09-30  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (reload_xinerama_infos): fix compilation on
	Solaris, patch from Satyajit Kanungo
2002-09-30 13:58:56 +00:00
Havoc Pennington
e802acf413 update from libegg to get fix from Ralph Loader for <Super> <Hyper> <Meta>
2002-09-29  Havoc Pennington  <hp@pobox.com>

	* src/eggaccelerators.c: update from libegg to get fix from Ralph
	Loader for <Super> <Hyper> <Meta> parsing, #93005
2002-09-30 03:58:41 +00:00
Havoc Pennington
f001625e5b shorten minimize animation a bit
2002-09-29  Havoc Pennington  <hp@pobox.com>

	* src/effects.h (META_MINIMIZE_ANIMATION_LENGTH): shorten minimize
	animation a bit
2002-09-30 03:49:22 +00:00
Havoc Pennington
43a726efe7 Patch from Keith Packard to handle root window resizes.
2002-09-28  Havoc Pennington  <hp@pobox.com>

        Patch from Keith Packard to handle root window resizes.

	* src/screen.c (reload_xinerama_infos): factor out Xinerama code
	(meta_screen_resize): implement this, to be called from display.c
	on screen resize

	* src/display.c (event_callback): handle ConfigureNotify on root
	windows
2002-09-29 02:50:24 +00:00
Havoc Pennington
f37245ace2 re-enable the FOCUSED_WINDOW layer, should now work correctly.
2002-09-28  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (get_standalone_layer): re-enable the FOCUSED_WINDOW
	layer, should now work correctly.
2002-09-28 16:54:33 +00:00
Havoc Pennington
e96e7ffc89 Rewrite stack code to work a lot differently. Should be better now, and
2002-09-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c, src/stack.c: Rewrite stack code to work a lot
	differently. Should be better now, and not lose relative positions
	of windows when moving among layers. Also should now be possible
	to get session management to restore the stacking order.  Probably
	breaks some stuff, and makes all the stack.c changes I made
	yesterday sort of irrelevant.
2002-09-28 16:33:39 +00:00
Havoc Pennington
2926f0a501 Temporarily disable use of the FOCUSED_WINDOW layer, because given the
2002-09-27  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (get_standalone_layer): Temporarily disable use of
	the FOCUSED_WINDOW layer, because given the fact that moving
	multiple windows into the same layer changes the Z-order of those
	windows, it was breaking click-to-focus.
2002-09-28 04:00:24 +00:00
Havoc Pennington
6c325e9070 raise the focused window, since it may not be the window on top, given the
2002-09-27  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_focus_top_window): raise the focused
	window, since it may not be the window on top, given the below
	change.

	* src/stack.c (meta_stack_get_default_focus_window): make this
	more complex to prefer to focus the transient parent, followed by
	other windows in group, followed by topmost non-dock, followed by
	dock. Previously was just topmost non-dock followed by dock
	ignoring groups and transiency.
2002-09-28 03:50:49 +00:00
Havoc Pennington
efc82ee1b9 constrain placement to try to keep windows from going offscreen to the
2002-09-27  Havoc Pennington  <hp@pobox.com>

	* src/place.c (constrain_placement): constrain placement to try to
	keep windows from going offscreen to the right/bottom

	* src/stack.c (compute_layer): rearrange the logic here to say
	that a window must always be in at least as high a layer as any of
	its transient parents or group members, rather than special-casing
	fullscreen. Also, group_member_is_fullscreen was leaking the list
	of group members every time, a fairly major memory leak.
2002-09-28 03:11:04 +00:00
Havoc Pennington
5ae85e9c07 use AgingGorilla not Gorilla (renamed on the CVS server)
2002-09-27  Havoc Pennington  <hp@redhat.com>

	* src/themes/Makefile.am (THEMES): use AgingGorilla not Gorilla
	(renamed on the CVS server)
2002-09-27 20:35:16 +00:00
Havoc Pennington
74b3bca93d Try to handle Solaris Xinerama, all coded blind, someone on Solaris will
2002-09-27  Havoc Pennington  <hp@redhat.com>

        Try to handle Solaris Xinerama, all coded blind, someone
	on Solaris will need to debug the typos.

	* src/display.c: updates for Solaris Xinerama

	* src/screen.c: updates for Solaris Xinerama

	* configure.in: make Xinerama check more complicated to catch
	Solaris Xinerama
2002-09-27 20:28:34 +00:00
Havoc Pennington
e7e41b045d keep a flag transient_parent_is_root_window for whether the
2002-09-27  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_transient_for): keep a flag
	transient_parent_is_root_window for whether the
	root-window-as-parent convention was used.

2002-09-25  Arvind Samptur <arvind.samptur@wipro.com>

 	* src/stack.c (sort_window_list): Keep dialogs without
 	transient parent above entire app. Fixes #88926
2002-09-27 19:42:59 +00:00
Havoc Pennington
47f67eb270 use MetaAccelLabel to display accelerators for the menu items
2002-09-26  Havoc Pennington  <hp@pobox.com>

	* src/menu.c (meta_window_menu_new): use MetaAccelLabel to display
	accelerators for the menu items

	* src/metaaccellabel.c: cut-and-paste GtkAccelLabel and port to
	use virtual modifiers

	* src/Makefile.am (metacity_SOURCES): add metaaccellabel.[hc]

	* src/prefs.c (meta_prefs_get_window_binding): new function

	* src/core.c (meta_core_get_menu_accelerator): new function
2002-09-27 01:40:17 +00:00
Havoc Pennington
e64a42732f Change short desc of switch_windows and cycle_windows to be different
2002-09-25  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: Change short desc of switch_windows and
	cycle_windows to be different
2002-09-25 18:56:25 +00:00
Havoc Pennington
f5f20efe0d update best_overlap as we go through the loop - doh. Fix from
2002-09-24  Havoc Pennington  <hp@pobox.com>

	* src/place.c (fit_rect_in_xinerama): update best_overlap as we go
	through the loop - doh. Fix from readams@hmc.edu for #90799.
	(find_first_fit): try the origin of each xinerama screen
	after the first. Also from readams@hmc.edu
2002-09-25 01:20:44 +00:00
Havoc Pennington
49a9e74900 new function, only saves rect after checking current state, #93795
2002-09-24  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_save_rect): new function,
	only saves rect after checking current state, #93795
	(meta_window_make_fullscreen): use new function
	(meta_window_maximize): use new function
2002-09-24 21:33:34 +00:00
Havoc Pennington
4694ded7cd new function
2002-09-24  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_update_layer): new function

	* src/stack.c (compute_layer): put focused window in a layer above
	all other windows, in click-to-focus mode. #93022

	* src/window.c (meta_window_notify_focus): update window layer on
	focus change.
2002-09-24 21:22:06 +00:00
Havoc Pennington
d027c27ca1 support --version, #92796 patch from Christian Neumair
2002-09-24  Havoc Pennington  <hp@redhat.com>

	* src/main.c (main): support --version, #92796 patch from
	Christian Neumair

	* autogen.sh: change gettext test to be happy with
	glib-gettextize, #81425

	* src/menu.c: change mnemonics to match bug #78999

	* src/theme.c (meta_theme_validate): consolidate some
	nearly-identical themes for ease of translation, #70962
2002-09-24 20:43:45 +00:00
Arvind Samptur
ee26de98de Replace strings Shade with Roll Up and Unshade with Unroll.
2002-09-24  Arvind Samptur  <arvind.samptur@wipro.com>
        * src/menu.c: Replace strings Shade with Roll Up and
        Unshade with Unroll.
2002-09-24 04:34:14 +00:00
Havoc Pennington
94e75ba53c re-enable the log handler, maybe it will break something, I don't remember
2002-09-23  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): re-enable the log handler, maybe it will
	break something, I don't remember why I turned it off.

	* src/display.c: s/_NET_SHOW_DESKTOP/_NET_SHOWING_DESKTOP/ which
	is what's in the spec
2002-09-24 02:04:32 +00:00
Havoc Pennington
6ab198ac22 small reordering of code
2002-09-22  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): small reordering of
	code

	* src/display.c (meta_spew_event): more spew for MapNotify,
	UnmapNotify

	* src/window.c (recalc_window_features): spew more stuff

	* src/display.c (meta_spew_event): spew override_redirect field of
	ConfigureNotify
2002-09-23 01:43:20 +00:00
Arvind Samptur
09cc9e5d93 Added keybindings for moving windows between workspaces. Fixes #91944 2002-09-20 04:19:59 +00:00
Arvind Samptur
195d136faa The suggested change in the tooltip as per ui-review. Not sure how long this dialog will be here. Anyway... 2002-09-19 09:25:55 +00:00
Havoc Pennington
d2cd398594 handle fullscreen state here.
2002-09-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_net_wm_state): handle fullscreen state
	here.
2002-09-18 20:19:45 +00:00
Havoc Pennington
8232b8ba6d escape the window title before saving in the session file, reported by Jos
2002-09-15  Havoc Pennington  <hp@pobox.com>

	* src/session.c (save_state): escape the window title before
	saving in the session file, reported by Jos Vos
2002-09-15 16:39:28 +00:00
Havoc Pennington
cfa98e02fc fix compiler warnings
2002-09-12  Havoc Pennington  <hp@redhat.com>

	* src/workspace.c (meta_workspace_screen_index)
	(meta_workspace_index): fix compiler warnings

	* src/tools/metacity-window-demo.c (menu_items): add a test for
	dialogs with no transient parent

	* src/place.c (find_first_fit): Try placing window at origin of
	first Xinerama, even if there are no windows to place next to;
	makes placement work when no other windows are open on the screen.
2002-09-12 20:46:03 +00:00
Christian Neumair
0134973907 src/keybindings.c: Make virtual desktops apply instantly and still show the pager popup 2002-09-09 18:16:25 +00:00
Frédéric Crozat
fcb791d5a0 Fix titlebar glitch on small dialogs.
* src/themes/Crux/metacity-theme-1.xml: Fix titlebar
glitch on small dialogs.
2002-09-06 19:34:57 +00:00
Havoc Pennington
cbb0b8e66c new function
2002-09-03  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_get_tab_current): new function

	* src/keybindings.c (do_choose_window): apply modified patch from
	JeyaSudha to still display tab popup if only one window is on the
	desktop.
2002-09-04 04:15:46 +00:00
JeyaSudha
a6a7407faa Session saves the unmaximized postion, size of a maximized window. #86059
2002-06-25 JeyaSudha <jeyasudha.duraipandy@wipro.com>

 	* src/session.c, src/window.c: Session saves the unmaximized
	postion, size of a maximized window. #86059
2002-09-04 02:44:52 +00:00
Havoc Pennington
a5c4eaa55c don't filter out prelight for unmaximize button. #83860
2002-09-03  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_update_prelit_control): don't filter
	out prelight for unmaximize button. #83860
	(meta_frames_paint_to_drawable): handle unmaximize here as well
2002-09-04 02:21:26 +00:00
Havoc Pennington
9e062cd7a8 always apply rounding for shaded windows, fixes Bluecurve theme when
2002-08-27  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_frame_layout_calc_geometry): always apply
	rounding for shaded windows, fixes Bluecurve theme when shaded
2002-08-28 02:48:59 +00:00
Havoc Pennington
900de3c304 when freeing a fullscreen window, update layers of the window's group.
2002-08-25  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): when freeing a fullscreen
	window, update layers of the window's group.
2002-08-25 20:59:09 +00:00
Havoc Pennington
8b7447b282 _NET_SUPPORTING_WM_CHECK is supposed to have type WINDOW not CARDINAL.
2002-08-25  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): _NET_SUPPORTING_WM_CHECK is
	supposed to have type WINDOW not CARDINAL. reported by
	Ben Jansens
2002-08-25 17:53:27 +00:00
Havoc Pennington
f1b58398b0 recalculate mapped-ness of frame after toggling decorations on/off, so
2002-08-24  Havoc Pennington  <hp@redhat.com>

	* src/window.c (process_property_notify): recalculate mapped-ness
	of frame after toggling decorations on/off, so that windows don't
	disappear when decorations are toggled on.

	* src/tools/metacity-window-demo.c (toggle_decorated_cb): add a
	test for toggling decoration state on the fly
2002-08-24 21:49:32 +00:00
Havoc Pennington
cbb4a91113 hack around bug in kmail etc. where SM_CLIENT_ID was set on the window,
2002-08-24  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_sm_hints): hack around bug in kmail etc.
	where SM_CLIENT_ID was set on the window, not the client leader.

	* src/theme.c (meta_frame_layout_calc_geometry): don't round
	corners unless we have enough frame to chop off.
2002-08-24 21:28:02 +00:00
Havoc Pennington
b9002db37f translate some strings that should have been, and convert to locale
2002-08-24  Havoc Pennington  <hp@redhat.com>

	* src/util.c: translate some strings that should have been, and
	convert to locale encoding before printing stuff.

	* src/stack.c (group_member_is_fullscreen): if window itself is
	fullscreen, return TRUE immediately.

	* src/window.c (meta_window_configure_request): add hack to
	fullscreenize large undecorated windows.
2002-08-24 20:54:23 +00:00
Keith Packard
0f9bdb18f5 Place cursors on frames, not root 2002-08-23 18:00:40 +00:00
Deepa Natarajan
c39a03ad59 add maximize and unmaximize keybinding setting. Partly fixes bug# 78999.
2002-08-21  Deepa Natarajan  <deepa.natarajan@wipro.com>

	* src/keybindings.c, src/metacity.schemas.in, src/prefs.[ch]:
	add  maximize and unmaximize keybinding setting. Partly fixes
	bug# 78999.
2002-08-21 06:47:16 +00:00
Havoc Pennington
e74969bd17 if in the title rect check for y <= TOP_RESIZE_HEIGHT
2002-08-20  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (get_control): if in the title rect check for y
	<= TOP_RESIZE_HEIGHT

	* src/display.c (meta_spew_event): put x/y coordinates in spew for
	enter/leave notify

	* src/frames.c (meta_frames_motion_notify_event): move cursor
	changing from here to update_prelit_control so it happens on enter
	notify as well
	(get_control): change test "y < TOP_RESIZE_HEIGHT" to
	"y <= TOP_RESIZE_HEIGHT"

	* src/Makefile.am (EXTRA_DIST): include .in files in EXTRA_DIST
2002-08-20 20:18:18 +00:00
Havoc Pennington
d86c90a162 default to "Sans Bold 10" for the titlebar font.
2002-08-15  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: default to "Sans Bold 10" for the
	titlebar font.
2002-08-15 22:09:27 +00:00
Havoc Pennington
9ed1636ffe leave has_fullscreen_func set to TRUE if the window is screen sized and
2002-08-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): leave has_fullscreen_func
	set to TRUE if the window is screen sized and undecorated, even if
	the window isn't resizable. idea from Christian - Manny Calavera -
	Neumair

	* src/keybindings.c (handle_toggle_fullscreen)
	(handle_toggle_maximize): these disabled fullscreen/maximize if
	the window wasn't resizable, should have used has_fullscreen_func
	has_maximize_func instead.

2002-08-15  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: implement raise/lower

	* src/metacity.schemas.in: add raise/lower

	* src/prefs.c: add "raise" and "lower" prefs to keybindings

	* src/display.c (meta_display_set_grab_op_cursor): assert that
	the screen arg is non-NULL in appropriate cases
2002-08-15 05:14:49 +00:00
Jayaraj Rajappan
bb9cc21d8e In XGrabPointer, set the confine_to argument to the root window of the
2002-08-14  Jayaraj Rajappan <jayaraj.rajappan@wipro.com>

        * src/display.c (meta_display_set_grab_op_cursor):
        In XGrabPointer, set the confine_to argument to the root window
        of the screen the window is on.

        * src/display.h: add screen argument.

        * src/window.c (meta_window_update_resize_grab_op):
        pass screen argument as NULL.
2002-08-14 16:51:13 +00:00
James M. Cape
b9529231b4 use button positioning theme stuff.
2002-08-14  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: use button positioning
	theme stuff.
2002-08-14 13:42:03 +00:00
Mark McLoughlin
689bcd14aa move from workspace.c. (update_num_workspaces): set the hint here. Fixes
2002-08-14  Mark McLoughlin  <mark@skynet.ie>

        * src/screen.c: (set_number_of_spaces_hint), move from
        workspace.c.
        (update_num_workspaces): set the hint here. Fixes #90123.

        * src/workspace.c:
        (meta_workspace_new), (meta_workspace_free): don't set
        the hint here.
        (update_num_workspaces): move to screen.c
2002-08-14 00:08:30 +00:00
Havoc Pennington
27e35b8bcd window is in fullscreen layer if any member of its group is fullscreen
2002-08-12  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (compute_layer): window is in fullscreen layer if
	any member of its group is fullscreen

	* src/window.c (meta_window_unmake_fullscreen): update layer for
	whole window group
	(meta_window_make_fullscreen): ditto

	* src/util.c (meta_unsigned_long_hash): move hash/equal funcs for
	Window in here.

	* src/group.c: track window groups so we can do stuff with them.
2002-08-12 21:32:13 +00:00
Havoc Pennington
8a847ee7dc don't include nonexistent stock-icons.h file
2002-08-11  Havoc Pennington  <hp@pobox.com>

	* src/menu.c: don't include nonexistent stock-icons.h file
2002-08-12 03:03:57 +00:00
Havoc Pennington
2fb121b1c9 default keybindings for move, resize, maximize, etc. from Deepa #78999
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: default keybindings for move, resize,
	maximize, etc. from Deepa #78999
2002-08-10 19:14:28 +00:00
Havoc Pennington
c17e916978 unshade window if shaded, from JeyaSudha (meta_window_make_fullscreen):
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_maximize): unshade window if shaded,
	from JeyaSudha
	(meta_window_make_fullscreen): ditto
2002-08-10 19:04:55 +00:00
Havoc Pennington
75109ac211 reorder the menu items so that Close is at the bottom
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/menu.c: reorder the menu items so that Close is at the
	bottom

	* src/theme-viewer.c (main): set debugging mode if METACITY_DEBUG
	enabled
2002-08-10 18:47:36 +00:00
Havoc Pennington
02bcf06809 allow Motif hints to be smaller than expected; GLUT for example seems to
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_motif_hints): allow Motif hints to
	be smaller than expected; GLUT for example seems to set a smaller
	struct. #89841

	* src/window.c (update_mwm_hints): use g_free on motif hints as we
	don't use the XGetWindowProperty return directly anymore
2002-08-10 18:12:36 +00:00
Havoc Pennington
c540438b91 be sure window is mapped if we unmanage it and it's not withdrawn; bug
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): be sure window is
	mapped if we unmanage it and it's not withdrawn;
	bug #90369

	* src/screen.c (meta_screen_new): change string
	s/override/replace/ bug #89077

	* src/theme.c (scale_and_alpha_pixbuf): dump the
	sometimes-use-NEAREST-instead-of-BILINEAR optimization,
	bug #87489
2002-08-10 17:32:29 +00:00
Havoc Pennington
154e38e71e raise window when moving to another workspace bug #88896
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (menu_callback): raise window when moving to
	another workspace bug #88896

	* src/keybindings.c (switch_to_workspace): raise window when
	moving between spaces
2002-08-10 17:17:58 +00:00
Jorn Baayen
7179d77d0c Register window menu icons with the Gtk stock system, instead of using the
2002-08-10  Jorn Baayen  <jorn@nl.linux.org>

	Register window menu icons with the Gtk stock system, instead
	of using the ones from the Metacity theme (which looked very bad with
	some themes).

	* src/Makefile.am:
	* src/main.c:
	* src/menu.c:
	* src/stock_delete.png: added these files
	* src/stock_minimize.png:
	* src/stock_maximize.png:
	* src/ui.c
2002-08-10 16:47:43 +00:00
Havoc Pennington
4c3a20c3f2 filter out key events that happen on popup menus etc.
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (meta_display_process_key_event): filter out
	key events that happen on popup menus etc.

	* src/ui.c (meta_ui_window_is_widget): new function to check
	whether a window belongs to a GtkWidget such as the popup menu

	* src/prefs.c (change_notify): put in a no-op line for AIX
	compiler, #84252
2002-08-10 15:55:18 +00:00
Havoc Pennington
f36d236a55 track time to avoid sending a deluge of move/resize requests, suggestion
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_resize): track time to avoid sending a
	deluge of move/resize requests, suggestion from
	xavier.bestel@free.fr bug #86830. Not really sure if this will
	make a difference or not. We'll see I guess.
	(update_move): do same on move though it seems less important
	here.

	* src/display.h (struct _MetaDisplay): store the
	last time we sent a move/resize event.
2002-08-10 05:27:17 +00:00
Havoc Pennington
9a72bf1858 add a FIXME comment with a link to bug #90382
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_notify_focus): add a FIXME comment
	with a link to bug #90382
2002-08-10 04:29:57 +00:00
Havoc Pennington
79857803de disable maximize, fullscreen, shade via keybindings on windows that don't
2002-08-09  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (handle_toggle_maximize): disable maximize,
	fullscreen, shade via keybindings on windows that don't support
	it.
2002-08-09 14:22:00 +00:00
Craig Black
4fcc9f052e Patch to provide extra cues to the user when using window menu move and
2002-08-08  Craig Black  <blackc@speakeasy.net>

  Patch to provide extra cues to the user when using
  window menu move and resize, #85724.

  * src/common.h: add new cursors

  * src/display.c: (grab_op_is_mouse)
  (meta_display_create_x_cursor), (xcursor_for_op),
  (meta_display_set_grab_op_cursor),
  (meta_display_begin_grab_op):
  The keyboard move and resize grab ops now also use the mouse.
  Allow the grab cursor to be changed during the grab op.
  Hold onto the initial grab position in case of reset.

  * src/display.h: save the initial grab position

  * src/keybindings.c: (process_keyboard_move_grab),
  (process_keyboard_resize_grab), (handle_begin_move),
  (handle_begin_resize):
  The keyboard move and resize grab ops now also use the mouse.

  * src/window.c: (meta_window_client_message), (menu_callback),
  (update_move), (update_resize),
  (meta_window_handle_mouse_grab_op_event), (warp_pointer),
  (meta_window_warp_pointer), (meta_window_begin_grab_op),
  (meta_window_update_resize_grab_op):
  When moving or resizing a window use the last grab position
  in computing change increment.
  Provide support for warping the mouse pointer.

  * src/window.h: new warp pointer and grab op helper functions
2002-08-09 04:27:23 +00:00
Craig Black
8c5369d522 update comment also set expected focus window when setting input focus.
2002-08-08  Craig Black  <blackc@speakeasy.net>

  * src/display.h: update comment
  * src/window.c: (meta_window_focus): also set expected
  focus window when setting input focus.
2002-08-09 03:32:09 +00:00
Craig Black
d299fbd8da focus top window after showing desktop, fixes #88080.
2002-08-07  Craig Black  <blackc@speakeasy.net>

  * src/display.c: (meta_display_unshow_desktop): focus
  top window after showing desktop, fixes #88080.
2002-08-08 05:28:51 +00:00
Craig Black
8a5cce91bf focus window on right click for menu, #87299.
2002-08-07  Craig Black  <blackc@speakeasy.net>

  * src/core.c: (meta_core_show_window_menu): focus window
  on right click for menu, #87299.
2002-08-08 05:08:59 +00:00
Craig Black
7a598e5567 clear expected focus window on open
2002-08-07  Craig Black  <blackc@speakeasy.net>

  * src/display.c: (meta_display_open): clear expected focus window
  on open

  * src/display.h: add expected_focus_window field

  * src/window.c: (meta_window_make_fullscreen),
  (meta_window_unmake_fullscreen): change meta_window_update_layer()
  to meta_stack_update_layer() so build works again.
  (meta_window_free), (meta_window_make_fullscreen),
  (meta_window_focus), (meta_window_notify_focus): keep track of
  expected focus window after sending WM_TAKE_FOCUS event,
  previously if a UnmapNotify event arrived before the FocusIn event
  we would lose focus, fixes #84564.
2002-08-08 04:45:13 +00:00
Havoc Pennington
ebae7a654e update layer (meta_window_make_fullscreen): update layer
2002-08-07  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_unmake_fullscreen): update layer
	(meta_window_make_fullscreen): update layer

	* src/stack.c (compute_layer): put window on fullscreen layer if
	fullscreen
2002-08-07 23:12:08 +00:00
Craig Black
1e0d6c3346 implement _NET_WM_MOVERESIZE enhancements, see #90077.
2002-08-06  Craig Black  <blackc@speakeasy.net>

  * src/window.c: (meta_window_client_message): implement
  _NET_WM_MOVERESIZE enhancements, see #90077.
2002-08-07 05:26:20 +00:00
Havoc Pennington
00dcef82e3 disable animation when shading windows, just doesn't really convey the
2002-07-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_shade): disable animation when shading
	windows, just doesn't really convey the idea anyway.

	* src/effects.c: Move to using a shaped window instead of
	IncludeInferiors to do the animations, looks a lot better
	because we don't have to grab the server.

	* src/window.c (meta_window_change_workspace): remove bogus
	assertion that was causing a crash
	(meta_window_new): auto-fullscreen huge undecorated windows.

	* src/keybindings.c (switch_to_workspace): use
	meta_window_change_workspace() to avoid same bug in cut-and-paste
	code from there
2002-08-06 04:11:23 +00:00
Ross Burton
43c7a44e1d Set wm_state_skip_pager instead of skip_pager (ditto for _tasklist) so that the skip pager/tasklist hints work correctly 2002-08-05 15:32:08 +00:00
Havoc Pennington
f3446fad9a init button states for the button backgrounds
2002-08-04  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_paint_to_drawable): init button
	states for the button backgrounds

	* src/themes/Atlanta/metacity-theme-1.xml: adapt to work correctly
	with button repositioning
2002-08-04 20:45:05 +00:00
Havoc Pennington
585e362526 raise/focus on click, even if the click was on the client area (this makes
2002-08-04  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_button_press_event): raise/focus
	on click, even if the click was on the client area
	(this makes Alt+button1 raise windows again, yay)

	* src/stack.c (compute_layer): put panels in the DOCK layer always
	(keep them on top of other windows). Still sloppy-focus raised
	with respect to other docks.

	* configure.in: remove -Wshadow for now as GTK headers make all
	kinds of noise with it.
2002-08-04 20:20:53 +00:00
Mark McLoughlin
8984fd358b set active_workspace to NULL. Also actually activate the first workspace
2002-08-02  Mark McLoughlin  <mark@skynet.ie>

        * src/screen.c: (meta_screen_new): set active_workspace
        to NULL. Also actually activate the first workspace instead
        of just setting active_workspace. Fixes #87367.
        (meta_screen_ensure_workspace_popup): don't re-use our
        iterator for setting the entries list, stop iterating
        when we've gone beyond the last workspace (there may
        be empty spaces in the last row).

        * src/workspace.c: (meta_workspace_activate): if no workspace
        was previously activated, return.
2002-08-04 20:17:37 +00:00
Havoc Pennington
583596178f use MetaMenuIconType not button type for the size of the menu ops array
2002-08-04  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (free_menu_ops): use MetaMenuIconType not button
	type for the size of the menu ops array
	(meta_theme_define_int_constant): return TRUE on success (how the
	heck did this ever work?)
	(meta_theme_define_float_constant): return TRUE on success
	(meta_frame_style_validate): allow the "positional" buttons to
	be omitted for now.

	* src/testgradient.c (render_multi): don't define N_COLORS twice

	* src/theme-viewer.c (run_theme_benchmark): don't define
	ITERATIONS twice

	* src/theme.c (button_rect): handle new button types
	(meta_button_type_to_string): update
	(meta_button_type_from_string): update

	* src/theme.h (enum): add button types for the 6 possible button
	positions. No way to reposition buttons still but this will allow
	themes to go ahead and support doing so.
2002-08-04 20:02:45 +00:00
Craig Black
ae148bc89f change alt+tab to a windowless grab, fixes #83499
2002-08-03  Craig Black  <blackc@speakeasy.net>

  * src/keybindings.c: (meta_display_process_key_event),
  (process_tab_grab), (do_choose_window): change alt+tab
  to a windowless grab, fixes #83499
2002-08-03 23:30:48 +00:00
Craig Black
dc5a81ac77 Have ButtonPress and UnmapNotify events account for a null grab window,
2002-08-03  Craig Black  <blackc@speakeasy.net>

  * src/display.c: (event_callback): Have ButtonPress and UnmapNotify
  events account for a null grab window, fixes #87896
2002-08-03 23:07:04 +00:00
Gaute Lindkvist
b51e6bdaa4 Fixed some clipping issues with the Bright theme. 2002-08-03 17:02:23 +00:00
Mark McLoughlin
95e4c6ac2a Implements support for _NET_WM_ALLOWED_ACTIONS. Fixes #84282.
2002-08-01  Mark McLoughlin  <mark@skynet.ie>

        Implements support for _NET_WM_ALLOWED_ACTIONS.
        Fixes #84282.

        * src/display.[ch]: (meta_display_open): add
        _NET_WM_ALLOWED_ACTIONS atoms.

        * src/screen.c: (set_supported_hint): set them
        as being supported.

        * src/window.c:
        (set_allowed_actions_hint): impl setting
        _NET_WM_ALLOWED_ACTIONS.
        (recalc_window_features): use it here, but only
        if things have changed.
2002-08-01 23:52:47 +00:00
Christophe Fergeau
9e86812928 if a window isn't resizeable, turn off maximize function. If min size is
* src/window.c (recalc_window_features): if a window isn't
	resizeable, turn off maximize function. If min size is equal to
	max size, turn off resize function.
2002-08-01 15:14:14 +00:00
Mark McLoughlin
43dd208874 send a SaveYourselfDone if we're skipping this global save.
2002-08-01  Mark McLoughlin  <mark@skynet.ie>

        * src/session.c:
        (save_yourself_possibly_done): send a SaveYourselfDone
        if we're skipping this global save.
        (save_yourself_callback): don't not save session state
        if the save style is Global. Fixes #89390.

        * theme-format.txt: update.
2002-08-01 01:49:08 +00:00
Havoc Pennington
9abae5b0a2 add Metabox theme from Garrett
2002-07-24  Havoc Pennington  <hp@pobox.com>

	* src/themes/Makefile.am (THEMES): add Metabox theme from Garrett

	* README: updates

2002-07-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): don't automaximize fullscreen
	windows.

2002-07-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): don't allow shading of
	border-only windows.
2002-07-25 02:45:38 +00:00
Havoc Pennington
98c3b06ffd sync 2002-07-24 23:23:51 +00:00
Havoc Pennington
1af2020151 fixes to the comments 2002-07-24 19:52:21 +00:00
Havoc Pennington
88a0d1ff03 look for themes in ~/.themes/NAME/metacity-1/ and
2002-07-24  Havoc Pennington  <hp@redhat.com>

	* src/theme-parser.c (meta_theme_load): look for themes in
	~/.themes/NAME/metacity-1/ and datadir/themes/NAME/metacity-1
	instead of the old locations.

	* src/themes/Makefile.am: install themes to
	datadir/themes/NAME/metacity-1/ to match how GTK works, breaking
	third-party themes yet again! woot!
2002-07-24 18:28:56 +00:00
Havoc Pennington
78a2866980 grab display across managing each screen; XGetInputFocus() on startup.
2002-07-20  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): grab display across managing
	each screen; XGetInputFocus() on startup.

2002-07-19  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): disable configure
	requests during a user move/resize operation, mostly a workaround
	for stoopid apps.
2002-07-24 15:41:44 +00:00
Havoc Pennington
f7b55bfdcc put Gorilla back in the build
2002-07-23  Havoc Pennington  <hp@redhat.com>

	* src/themes/Makefile.am (THEMES): put Gorilla back in the build

	* src/themes/Gorilla/metacity-theme-1.xml,
	src/themes/Crux/metacity-theme-1.xml: fixes from
	Sebastien Delestaing so that these themes work properly with
	different font sizes.

	* src/frames.c (get_control): patch from Balamurali Viswanathan
	for #81984 (resize titlebar from the top not the bottom)
2002-07-24 02:21:24 +00:00
Ross Burton
f51eed31d8 Show the real workspace names in the window menu 2002-07-23 20:52:22 +00:00
Havoc Pennington
197c81178c handle NULL screen from screen_for_xwindow
2002-07-23  Havoc Pennington  <hp@redhat.com>

	* src/keybindings.c (meta_display_process_key_event): handle
	NULL screen from screen_for_xwindow

	* src/display.c (meta_display_screen_for_xwindow): put an error
	trap around the XGetWindowAttributes(), should fix the popular
	"closing a window results in a crash" bug.

	* src/util.c (print_backtrace): support optional backtrace
	feature using gnu libc backtrace() call
2002-07-23 19:12:02 +00:00