Commit Graph

688 Commits

Author SHA1 Message Date
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
Havoc Pennington
8e2d576805 update libegg stuff 2002-07-17 02:21:15 +00:00
jacob berkman
dccd7a9b99 steal from profterm to fix build
2002-07-15  jacob berkman  <jacob@ximian.com>

	* src/update-from-egg.sh: steal from profterm to fix build
2002-07-15 14:18:51 +00:00
Havoc Pennington
badb397bce don't put a newline after the default workspace name
2002-07-13  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_new): don't put a newline after
	the default workspace name
2002-07-14 03:59:18 +00:00
Havoc Pennington
812f783084 adapt to virtual modifiers (meta_display_process_mapping_event): we need
2002-07-13  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: adapt to virtual modifiers
	(meta_display_process_mapping_event): we need to reload the
	binding tables now when the modmap changes.

	* src/prefs.c (update_binding): parse virtual modifiers, not
	plain modmask

	* src/common.h (MetaVirtualModifer): new enum

	* src/ui.c (meta_ui_parse_accelerator): use
	egg_accelerator_parse_virtual()

	* src/Makefile.am: add eggaccelerators.[hc] for the virtual
	accelerator parsing function
2002-07-14 03:16:41 +00:00
Havoc Pennington
f0a74e2e95 don't display the dialog if all the apps were session managed.
2002-07-12  Havoc Pennington  <hp@pobox.com>

	* src/session.c (warn_about_lame_clients_and_finish_interact):
	don't display the dialog if all the apps were session managed.
2002-07-13 03:47:06 +00:00
Havoc Pennington
b30802e35f don't send SmInteractDone until the warning dialog about crappy clients
2002-07-12  Havoc Pennington  <hp@pobox.com>

	* src/session.c: don't send SmInteractDone until the warning
	dialog about crappy clients has been closed.
2002-07-13 03:40:05 +00:00
Havoc Pennington
b908e45208 try to maximize windows that are too big for the work area
2002-07-12  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): try to maximize windows that
	are too big for the work area

	* src/place.c (find_next_cascade): don't let the cascade algorithm
	place windows off the screen, and fix it to always exhaustively
	search the window list for cascade parents.
2002-07-12 23:03:40 +00:00
Havoc Pennington
42639fc9fb option to display error when a command fails to run.
2002-07-11  Havoc Pennington  <hp@pobox.com>

	* src/metacity-dialog.c (main): option to display error when a
	command fails to run.

	* src/keybindings.c (handle_run_command): run commands
	in response to keybindings.

	* src/prefs.c: add command keybinding stuff

	* src/metacity.schemas.in: add keybindings for running commands,
	and keys to store the commands themselves.
2002-07-11 04:10:44 +00:00
Havoc Pennington
a535ef6117 properly attribute selection code to Matthias Clasen
2002-07-10  Havoc Pennington  <hp@redhat.com>

	* src/display.c: properly attribute selection code to Matthias
	Clasen
2002-07-10 14:41:19 +00:00
Havoc Pennington
eb42281fd4 couple of updates
2002-07-10  Havoc Pennington  <hp@pobox.com>

	* README: couple of updates

	* src/main.c (usage): add --replace to usage, reported by Matthias
	Clasen
2002-07-10 12:26:00 +00:00
Havoc Pennington
93902aabfd fix short description for begin_resize, patch from Jayaraj, #87654
2002-07-09  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: fix short description for
	begin_resize, patch from Jayaraj, #87654

	* src/keybindings.c (handle_begin_resize): apply patch from
	Jayaraj to actually handle the begin resize keybinding.
2002-07-10 03:51:01 +00:00
Havoc Pennington
7d068e6909 don't center vertically for maximized windows that don't fill the screen,
2002-07-09  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): don't center vertically for
	maximized windows that don't fill the screen, just leave them at
	the top.
2002-07-10 03:23:12 +00:00
Havoc Pennington
4e66c5dc6c increase the size of the mini workspaces
2002-07-06  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c (selectable_workspace_new): increase the size of
	the mini workspaces
2002-07-06 19:11:57 +00:00
Havoc Pennington
a62b3c8b29 Apply blackc@speakeasy.net patch, bug #83940, to do mini-workspaces
2002-07-06  Havoc Pennington  <hp@pobox.com>

        Apply blackc@speakeasy.net patch, bug #83940, to do
	mini-workspaces similar to the pager, when switching
	spaces.

	* src/window.c (update_net_wm_state): actually fill in
	wm_state_skip_taskbar, wm_state_skip_pager flags

	* src/tabpopup.c: support drawing a mini-workspace similar to the
	one the pager draws.

	* src/stack.c (meta_stack_list_windows): new function to list
	the windows in stacking order

	* src/screen.c (meta_screen_ensure_workspace_popup): don't pass in
	the ugly default app icon for workspaces

	* src/display.c (event_callback): fix from blackc@speakeasy.net
	to avoid dereferencing a NULL grab window.
2002-07-06 19:05:37 +00:00
Havoc Pennington
8c3437fd27 put _NET_DESKTOP_NAMES in the array of atom names, so desktop names might
2002-07-06  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): put _NET_DESKTOP_NAMES in the
	array of atom names, so desktop names might work and we don't read
	uninitialized memory.

	* src/main.c (main): add VERSION/timestamp verbose message.

	* src/keybindings.c: implement cycle_windows cycle_panels

	* src/metacity.schemas.in: add the cycle_windows cycle_panels
	keybindings

	* src/prefs.h (META_KEYBINDING_FOCUS_PREVIOUS): replace
	FOCUS_PREVIOUS key binding with CYCLE_WINDOWS and CYCLE_PANELS
	(not good names really, but I don't have ideas).

	* src/common.h: add a grab op for alt+esc window cycling
2002-07-06 16:50:48 +00:00
Havoc Pennington
efeedae712 Take Gorilla out until it gets repaired.
2002-07-05  Havoc Pennington  <hp@pobox.com>

	* src/themes/Makefile.am (THEMES): Take Gorilla out until it gets
	repaired.
2002-07-05 15:00:24 +00:00
Havoc Pennington
b392d206d7 Change default value of input hint (if not specified) to true instead of
2002-07-05  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_wm_hints): Change default value of input
	hint (if not specified) to true instead of false. This is what
	some clients assume, such as Visual SlickEdit.
2002-07-05 04:31:49 +00:00
Havoc Pennington
d826e620a9 use new macros to get whether we allow move/resize correct
2002-07-02  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show_menu): use new macros to get
	whether we allow move/resize correct

	* src/frame.c (meta_frame_get_flags): use new macros to get
	whether we can move/resize correct, considering
	maximized/fullscreen for the move case.

	* src/window.h (META_WINDOW_ALLOWS_RESIZE,
	META_WINDOW_ALLOWS_MOVE): new macros

	* src/keybindings.c (process_keyboard_resize_grab): finish the
	right/left resize, patch from Jayaraj #78179.

	Has the same old move/resize bug, if it hits a constraint it
	starts to break because we move without resizing.
2002-07-03 02:32:40 +00:00
Mark McLoughlin
b6177f74a7 rename from {un}grab_all_keys_and_keyboard and only do an XKeyboardGrab,
2002-07-02  Mark McLoughlin  <mark@skynet.ie>

        * src/keybindings.c:
        (grab_keyboard), (ungrab_keyboard): rename from
        {un}grab_all_keys_and_keyboard and only do an XKeyboardGrab,
        the XKeyGrab isn't neccessary.
        (meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys),
        (meta_window_grab_all_keys), (meta_window_ungrab_all_keys):
        update for above change.
        (handle_workspace_switch): don't use a MetaWindow when
        workspace switching, use the root window instead.
2002-07-02 05:03:28 +00:00
Mark McLoughlin
086f3d807e Fix broken workspace switching from my previous commit.
2002-07-01  Mark McLoughlin  <mark@skynet.ie>

        Fix broken workspace switching from my previous commit.

        * src/display.c: (meta_display_begin_grab_op): don't
        leak a pointer grab if we fail to grab the keyboard.

        * src/keybindings.c: (meta_screen_grab_keys): check
        screen->all_keys_grabbed.
        (meta_screen_grab_all_keys): regrab our standard
        bindings if we fail.
        (handle_workspace_switch): revert to our previous
        behaviour of using the last focused window to do
        the grab upon. Only use the RootWindow if there
        isn't anything else to use.

        * src/screen.c: (meta_screen_new): initialise
        all_keys_grabbed.
2002-07-01 03:20:29 +00:00
Mark McLoughlin
6b72d622a5 Fixes not being able to tab out of a workspace which contains no windows.
2002-06-26  Mark McLoughlin  <mark@skynet.ie>

        Fixes not being able to tab out of a
        workspace which contains no windows.

        * src/core.c: (meta_core_begin_grab_op): upd
        for meta_display_begin_grab_op change.
        (meta_core_get_grab_frame): allow for
        grab_window == NULL.

        * src/display.[ch]:
        (meta_display_screen_for_xwindow): implement.
        (meta_display_begin_grab_op): grab on the root window
        if window == NULL.
        (meta_display_end_grab_op): use grab_screen instead of
        grab_window.

        * src/keybindings.c:
        (grab_all_keys_and_keyboard): split out from
        meta_window_grab_all_keys.
        (ungrab_all_keys_and_keyboard): split out from
        meta_window_ungrab_all_keys.
        (meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys):
        implement grabbing and ungrabbing on the root window.
        (meta_display_process_key_event): if window == NULL,
        check the event is from the same screen and process. Only
        happens with workspace switching.
        (process_workspace_switch_grab): kill window param and
        don't use grab_window.
        (handle_tab_forward), (handle_begin_move): upd for
        meta_display_begin_grab_op change.
        (handle_workspace_switch): remove brokeness. Always do
        the grab op on the root window.

        * src/keybindings.h: add meta_screen_{un}grab_all_keys.

        * src/window.c: (meta_window_client_message), (menu_callback):
        update for meta_display_begin_grab_op change.
2002-06-27 05:08:32 +00:00
Mark McLoughlin
f0a811421f s/gdk_get_default_display/gdk_display_get_default/
2002-06-25  Mark McLoughlin  <mark@skynet.ie>

        * src/fixedtip.c: (meta_fixed_tip_show):
        * src/frames.c: (meta_frames_new):
        * src/tabpopup.c: (meta_ui_tab_popup_new):
        s/gdk_get_default_display/gdk_display_get_default/
        s/gdk_get_default_screen/gdk_screen_get_default/
2002-06-25 07:08:18 +00:00
Mark McLoughlin
b3a72a61fd added support for border only windows.
2002-06-25  Mark McLoughlin  <mark@skynet.ie>

        * src/themes/Crux/active-border-top-left-border.png:
        * src/themes/Crux/active-border-top-right-border.png:
        * src/themes/Crux/active-top-left-corner.png:
        * src/themes/Crux/active-top-mid-left-border.png:
        * src/themes/Crux/active-top-mid-right-border.png:
        * src/themes/Crux/active-top-right-corner.png:
        * src/themes/Crux/inactive-border-top-left-border.png:
        * src/themes/Crux/inactive-border-top-right-border.png:
        * src/themes/Crux/inactive-top-left-corner.png:
        * src/themes/Crux/inactive-top-mid-border.png:
        * src/themes/Crux/inactive-top-right-corner.png:
        * src/themes/Crux/metacity-theme-1.xml: added support
        for border only windows.
2002-06-25 04:11:20 +00:00
James M. Cape
f94a3d08e0 Added some stuff to the window buttons, so they use the ACTIVE bg/fg.
2002-06-24  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Added some stuff to
	the window buttons, so they use the ACTIVE bg/fg.
2002-06-25 02:37:07 +00:00
Mark McLoughlin
d7b4eec74a src/screen.c: (set_supported_hint), (set_work_area_hint): Its
2002-06-25  Mark McLoughlin  <mark@skynet.ie>

        * src/display.[ch]: (meta_display_open):
          src/screen.c: (set_supported_hint), (set_work_area_hint):
        Its _NET_WORKAREA, not _NET_WM_WORKAREA silly :-)

2002-06-25  Mark McLoughlin  <mark@skynet.ie>

        * src/screen.[ch]:
        (update_num_workspaces), recalc workarea hint when
        new workspaces created. Fixes bug that workarea
        not calculated until first non-dock window is
        mapped.
        (set_work_area_hint), (set_work_area_idle_func),
        (meta_screen_queue_workarea_recalc): move all this
        stuff from workspace.c.

        * src/workspace.c: (meta_workspace_invalidate_work_area):
        use meta_screen_queue_workarea_recalc.
2002-06-25 01:12:37 +00:00
Gediminas Paulauskas
e5dc1b01ac Update with border-only window stuff from Atlanta.
2002-06-23  Gediminas Paulauskas <menesis@delfi.lt>

	* src/themes/Bright/metacity-theme-1.xml: Update with border-only
	window stuff from Atlanta.
2002-06-23 09:29:17 +00:00
James M. Cape
6e577c12c1 Update for "border" frame stuff, minor button/spacing improvements.
2002-06-22  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Update for "border"
	frame stuff, minor button/spacing improvements.
2002-06-23 00:39:52 +00:00
Havoc Pennington
97b629ad5b Partially fix Jacob's SM bugs.
2002-06-22  Havoc Pennington  <hp@pobox.com>

	Partially fix Jacob's SM bugs.

	* src/window.c (meta_window_apply_session_info): restore the extra
	stuff we're saving, except stack position I didn't figure out yet.

	* src/session.c: save stack position, minimized, maximized,
	in the session file.
2002-06-23 00:21:20 +00:00
Havoc Pennington
8a8171ebc7 do nothing if screen is being unmanaged, we don't want to blow away state,
2002-06-22  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (set_number_of_spaces_hint): do nothing if
	screen is being unmanaged, we don't want to blow away state,
	we want to remember it for the next window manager.

2002-06-22  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_screen_ensure_workspace_popup): rename
	from meta_workspace_ensure_tab_popup, and use workspace->name
	instead of a hardcoded name
2002-06-22 05:11:04 +00:00
Havoc Pennington
0243071f15 new utility function
2002-06-22  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_utf8_list): new utility function

	* src/display.c (meta_display_open): _NET_DESKTOP_NAMES atom
	(event_callback): update workspace names when the property changes

	* src/screen.c (set_supported_hint): "support" _NET_DESKTOP_NAMES
	(nothing to do really)
2002-06-22 04:52:35 +00:00
Havoc Pennington
de42a62f4e Theme breakage! Themes have to implement "border" frames now, see Atlanta
2002-06-21  Havoc Pennington  <hp@pobox.com>

        Theme breakage! Themes have to implement "border" frames
	now, see Atlanta for an example. Fixes #84285

	* src/tools/metacity-window-demo.c (do_appwindow): add a
	border-only window

	* src/window.c (update_mwm_hints): read border only from the MWM
	hints

	* src/window.h (struct _MetaWindow): add border_only flag

	* src/core.c (meta_core_get_frame_type): report border type if
	required

	* src/common.h (enum): add META_FRAME_TYPE_BORDER
2002-06-22 03:23:02 +00:00
Mark McLoughlin
854e58fd82 sticky windows aren't visibile on all screens. Check the workspace is on
2002-06-20  Mark McLoughlin  <mark@skynet.ie>

        * src/window.c: (meta_window_visible_on_workspace): sticky
        windows aren't visibile on all screens. Check the workspace
        is on the same screen as the window.

        * src/workspace.c: (meta_workspace_list_windows): use
        meta_window_visible_on_workspace here.
2002-06-20 02:29:19 +00:00
Havoc Pennington
b0d3660c91 handle UNKNOWN keyboard resizing state
2002-06-19  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_resize_gravity_from_grab_op): handle UNKNOWN
	keyboard resizing state

	* src/keybindings.c (process_keyboard_resize_grab): implement
	keyboard resize key handling somewhat (only vertical resize works,
	left/right arrow not implemented, and visual feedback of the
	edge we're resizing isn't implemented)

	* src/window.c (menu_callback): start keyboard resize grab when
	it's chosen from the menu
2002-06-19 04:12:49 +00:00
Havoc Pennington
dbcacfa5ba don't use a minimized window as the next focus window, patch from
2002-06-17  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_get_default_focus_window): don't use a
	minimized window as the next focus window, patch from
	blackc@speakeasy.net
2002-06-18 03:32:27 +00:00
Havoc Pennington
e51e7ab77a increase the cascade threshold a bit. (find_first_fit): implement a
2002-06-17  Havoc Pennington  <hp@pobox.com>

	* src/place.c (find_next_cascade): increase the cascade threshold
	a bit.
	(find_first_fit): implement a somewhat lame first fit algorithm
2002-06-18 03:06:07 +00:00
Havoc Pennington
6cda7d0b11 fix from Gaute Lindkvist #82977 for unsticking windows
2002-06-17  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_change_workspace): fix from Gaute
	Lindkvist #82977 for unsticking windows
2002-06-18 01:41:08 +00:00
Frédéric Crozat
c7a72aeed3 associate close_window keybinding to Alt-F4
* src/metacity.schemas.in: associate close_window keybinding to
Alt-F4
2002-06-17 16:01:21 +00:00
Havoc Pennington
82a6ba0238 fix spelling error, #85452
2002-06-16  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): fix spelling error, #85452
2002-06-16 13:49:37 +00:00
Havoc Pennington
82a43d88f5 don't pass a null string to printf
2002-06-15  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (meta_display_process_key_event): don't pass a
	null string to printf

	* src/display.c (key_event_description): don't pass a null string
	to printf

	* src/keybindings.c (meta_set_keybindings_disabled): allow
	enable/disable keybindings regardless of debug mode.
2002-06-16 03:03:08 +00:00
Havoc Pennington
c3b63c96d7 workspace-drawing code factored out of libwnck, needs wiring up to
2002-06-15  Havoc Pennington  <hp@pobox.com>

	* src/draw-workspace.h, src/draw-workspace.c: workspace-drawing
	code factored out of libwnck, needs wiring up to tabpopup.c
	(which is kind of annoying since you have to get the list of
	workspaces and MetaWindow across the barrier between the GDK-aware
	and non-GDK-aware sides of metacity)
2002-06-15 22:18:12 +00:00
Havoc Pennington
346a8b5aaf always focus new windows, trying to be smart about it was a flop.
2002-06-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): always focus new windows,
	trying to be smart about it was a flop.
2002-06-15 01:46:13 +00:00
Jayaraj Rajappan
b44845ad66 Check for NULL string before calling strlen(). Fixes the core dump
reported in #84873.
2002-06-14 07:20:06 +00:00
Anders Carlsson
47353f88c7 Set client height as 0 when the window actually is shaded, not the other
2002-06-13  Anders Carlsson  <andersca@gnu.org>

	* src/theme.c (meta_frame_layout_calc_geometry): Set client height
	as 0 when the window actually is shaded, not the other way around.
2002-06-13 17:26:39 +00:00
Havoc Pennington
7ff56e67e9 when a window is shaded, don't include client height in the height
2002-06-12  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): when a window is
	shaded, don't include client height in the height calculation.

	* src/workspace.c (meta_workspace_get_neighbor): apply fix from
	Mads Villadsen for the Up arrow key, #84582
2002-06-12 22:44:25 +00:00
Havoc Pennington
d7cac40332 Draw the buttons right before the "overlay" piece.
2002-06-12  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_style_draw): Draw the buttons right
	before the "overlay" piece.
2002-06-12 21:12:53 +00:00
Jayaraj Rajappan
e0e6dab50f accessibility stuff for metacity-properties capplet. bug #84749. 2002-06-12 05:54:53 +00:00
Havoc Pennington
00e572800c allow dialogs to steal focus from panels/desktop
2002-06-11  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_show): allow dialogs to steal focus
	from panels/desktop
2002-06-11 22:30:30 +00:00
Jayaraj Rajappan
39f2c804a3 #include <config.h>. Fixes #83960. 2002-06-10 10:47:56 +00:00
Erwann Chenede -
4dfc8d16be verify the active window has the appropriate close/minimize function
2002-06-10 Erwann Chenede - <erwann.chenede@sun.com>

        * src/keybindings.c : (handle_close_window, handle_minimize_window)
	verify the active window has the appropriate close/minimize function
	before closing or minimizing the window.
2002-06-10 10:17:54 +00:00
Havoc Pennington
dc9d951255 add G_IO_NVAL to watch condition, patch from Gustavo Giraldez, avoids
2002-06-09  Havoc Pennington  <hp@pobox.com>

	* src/delete.c (delete_ping_timeout_func): add G_IO_NVAL to watch
	condition, patch from Gustavo Giraldez, avoids another 100% CPU
	thingy
2002-06-10 03:00:21 +00:00
Havoc Pennington
8057a2f68a don't run constrain_placement on windows we allow to go anywhere (docks,
2002-06-09  Havoc Pennington  <hp@pobox.com>

	* src/place.c (meta_window_place): don't run constrain_placement
	on windows we allow to go anywhere (docks, etc.). Fixes
	positioning of panel windows in certain cases.
2002-06-09 18:17:02 +00:00
Havoc Pennington
deed8016ed don't raise/focus the window if minimize/close are clicked, patch from
2002-06-09  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_button_press_event): don't raise/focus
	the window if minimize/close are clicked, patch from Gaute
	Lindkvist #75460
2002-06-09 04:14:40 +00:00
Havoc Pennington
b168954ed3 Cleanups to workspace popup patch. Space before all parens in a couple
2002-06-08  Havoc Pennington  <hp@pobox.com>

        Cleanups to workspace popup patch. Space before all parens
	in a couple places.

	* src/prefs.c (meta_prefs_get_keybinding_action): fix brace
	indentation, and use while instead of for loop. Take a "mask"
	argument to avoid ambiguity issues.

	* src/keybindings.c (handle_workspace_switch): rename from
	handle_workspace_forward since there's no directionality here
	(handle_workspace_switch): add a FIXME about how screwed it is
	that we need a window in order to do our grab. Should be able to
	grab on a dummy window like no_focus_window or the root window.
	(process_workspace_switch_grab): rename from tab_grab for clarity,
	no tab involved here.

	* src/common.h (enum): have only one grab op for all workspace
	switching directions, instead of one for each.
2002-06-09 04:04:19 +00:00
Havoc Pennington
fb5a3a8998 Apply big patch from blackc@speakeasy.net adding a popup window to the
2002-06-08  Havoc Pennington  <hp@pobox.com>

	Apply big patch from blackc@speakeasy.net adding a popup window
	to the Ctrl+Alt+arrows shortcuts. #83940

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

	* src/screen.c (meta_screen_new): select key press/release on the
	display->no_focus_window, another attempted fix for not getting
	keybindings when no window is focused. Still doesn't seem to work
	though. I don't get what's going wrong.
	(meta_create_offscreen_window): new function, used instead of
	XCreateSimpleWindow so we get override redirect offscreen windows.
2002-06-09 03:44:16 +00:00
Havoc Pennington
459d8f9c9d set net_supporting_wm_check in addition to win_supporting_wm_check, patch
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): set net_supporting_wm_check
	in addition to win_supporting_wm_check, patch from
	JeyaSudha for #83365

	* src/screen.c (set_wm_check_hint): remove setting
	win_supporting_wm_check on leader window here, done already in
	display.c
2002-06-09 00:09:01 +00:00
Havoc Pennington
31b211550f don't die on bad atom name
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_utf8_string): don't die on bad atom
	name

	* src/display.c (meta_display_close): don't unmanage windows here,
	do it in screen_free and then closing the display unmanages
	windows as a side effect of unmanaging the screen
	(meta_display_unmanage_screen): new function
	(process_selection_clear, process_selection_request): handle
	selection stuff
	(meta_spew_event): don't crash on client message containing
	invalid atom
	(meta_spew_event): don't crash on property notify with invalid
	atom

	* src/main.c (main): add --replace option to replace existing
	window manager.

	* src/screen.c: implement holding manager selection.

	* src/display.c (meta_display_open): add new selection-related
	atoms.
2002-06-08 23:55:27 +00:00
Havoc Pennington
538a06fd55 select keypress/keyrelease events on root window, this may fix the bug
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): select keypress/keyrelease
	events on root window, this may fix the bug where keybindings
	didn't work if you didn't have a focused window.
2002-06-08 22:06:55 +00:00
Havoc Pennington
be44a1d9a5 call meta_session_shutdown when exiting cleanly
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): call meta_session_shutdown when exiting
	cleanly

	* src/session.c (meta_session_shutdown): function to change use to
	RestartIfRunning
	(meta_session_init): change normal restart hint to
	RestartImmediately
2002-06-08 22:04:59 +00:00
Havoc Pennington
e694f07144 Yeah I know maximization is broken, I'm too tired to fix it. Probably
2002-06-08  Havoc Pennington  <hp@pobox.com>

        Yeah I know maximization is broken, I'm too tired to fix it.
	Probably because of the change to update_struts() that was
	supposed to fix the 100% CPU bug.

	* src/place.c (meta_window_place): don't run docks and things
	through the placement algorithm. Thought it might fix
	metacity-window-demo but it didn't.

	* src/window.c (constrain_size): only get work area when needed
	(meta_window_new): init the do_not_cover field
2002-06-08 06:29:19 +00:00
Havoc Pennington
2b780e5486 short-circuit the "only one xinerama" case, and use outer rect of window
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_get_xinerama_for_window):
	short-circuit the "only one xinerama" case, and use outer rect of
	window instead of window->rect, so we get root window coords.

	* src/theme.c (meta_frame_layout_get_borders): if fullscreen all
	frame edges are zero-width.

	* src/frame.c (meta_frame_get_flags): init fullscreen flag.

	* src/common.h (enum): add META_FRAME_FULLSCREEN frame flag

	* src/place.c: fix up calls to meta_window_get_work_area

	* src/window.c (meta_window_get_work_area): add an arg for whether
	the work area is for the screen or the xinerama subscreen.
	(constrain_position): fix up calls to meta_window_get_work_area
	(constrain_size): ditto

	* src/screen.c (meta_screen_new): add METACITY_DEBUG_XINERAMA
	environment variable which simulates xinerama on a single head.
2002-06-08 06:07:21 +00:00
Havoc Pennington
9e8800561e only invalidate things if the struts actually change, since the panel
2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_struts): only invalidate things if the
	struts actually change, since the panel likes to set them over and
	over. May fix the infinite loop that caused 100% CPU usage.
2002-06-08 05:13:55 +00:00
Havoc Pennington
019b5cacc3 use XineramaIsActive() not XineramaQueryExtension()
2002-06-07  Havoc Pennington  <hp@redhat.com>

	* src/screen.c (meta_screen_new): use XineramaIsActive() not
	XineramaQueryExtension()
2002-06-07 16:18:51 +00:00
Havoc Pennington
9bcdc8be00 don't return null on non-multihead
2002-06-07  Havoc Pennington  <hp@redhat.com>

	* src/place.c (meta_window_place): don't return null on non-multihead
2002-06-07 15:16:36 +00:00
Havoc Pennington
a7c8cea1b5 implement
2002-06-06  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_get_current_xinerama): implement

	* src/place.c (meta_window_place): cascade windows on the active
	Xinerama screen

	* src/window.c (meta_window_move_resize_internal): strip out the
	#if 0 cruft about guessing fullscreen mode
	(constrain_position, constrain_size): fullscreen/maximize to the
	Xinerama head, not the whole screen
	(meta_window_get_work_area): autocreate struts at the Xinerama
	physical screen edges for the screen the window is on.

	* src/screen.c (meta_screen_get_xinerama_for_window): someone
	snuck in a for loop, fix it. ;-)
2002-06-07 03:18:46 +00:00
James M. Cape
24c91c3a37 Increase the border size of the buttons so they aren't quite so huge on my
2002-06-06  James M. Cape <jcape@ignore-your.tv>

    * src/themes/Esco/metacity-theme-1.xml: Increase the border size
	of the buttons so they aren't quite so huge on my box. Also get
	a *little* closer to finally fixing the horizontal line behind
	the icon. It now works decently with common font sizes (in pixels).
2002-06-06 13:56:16 +00:00
Havoc Pennington
8ebadbce28 oops, didn't mean to commit that 2002-06-06 04:04:49 +00:00
Havoc Pennington
875e6dc0f9 parse "shade/foo/factor" as a color (colorize_pixbuf): remove the unused
2002-06-05  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_color_spec_new_from_string): parse
	"shade/foo/factor" as a color
	(colorize_pixbuf): remove the unused hsv_to_rgb and vice-versa
	stuff, add the gtk_style_shade stuff.
	(meta_color_spec_render): render the shaded color spec

	* src/theme.h (struct _MetaColorSpec): add "shade" mode to
	MetaColorSpec.
2002-06-06 04:00:22 +00:00
Seth Nickell
c776871d52 Add X-GnomeWMSettingsLibrary to desktop file to support new Window
2002-06-04  Seth Nickell  <snickell@stanford.edu>

	* src/metacity.desktop.in:

	Add X-GnomeWMSettingsLibrary to desktop file to support new
	Window capplet.
2002-06-05 03:13:20 +00:00
Havoc Pennington
7fea250304 fix for how we read the input hint, from Hidetoshi Tajima
2002-06-04  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_wm_hints): fix for how we read the input
	hint, from Hidetoshi Tajima

	(meta_window_show): from Hidetoshi, don't autofocus windows with
	input = FALSE wm_take_focus = FALSE when they first appear. We do
	allow these windows to be focused (so keynav works), but they
	don't get focused automatically. Now how do we keep them out of
	the task list?
2002-06-04 22:26:52 +00:00
Gustavo Girldez
6617781f4f Use icon's instead of image's fill_type when type is META_DRAW_ICON.
2002-06-04  Gustavo Girldez  <gustavo.giraldez@gmx.net>

	* src/theme.c (draw_op_as_pixbuf): Use icon's instead of image's
	fill_type when type is META_DRAW_ICON.
2002-06-04 12:35:34 +00:00
Havoc Pennington
966c399154 don't automatically fullscreen things opened fullscreen, because there's
2002-06-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): don't automatically fullscreen
	things opened fullscreen, because there's no GUI to un-fullscreen
	them.
2002-06-04 03:56:16 +00:00
Havoc Pennington
fb448b2f31 fix error message about bad aspect ratio name.
2002-06-03  Havoc Pennington  <hp@pobox.com>

	* src/theme-parser.c (parse_aspect_ratio): fix error message about
	bad aspect ratio name.
2002-06-04 02:15:38 +00:00
Havoc Pennington
85815f8188 test button aspect ratio instead of hardcoded button size, James feel free
2002-06-03  Havoc Pennington  <hp@pobox.com>

	* src/themes/Esco/metacity-theme-1.xml: test button aspect ratio
	instead of hardcoded button size, James feel free to revert if you
	don't like it this way.

	* src/theme-parser.c: parse the aspect_ratio element for button
	aspect ratios.

	* src/theme.h (struct _MetaFrameLayout): allow button sizes to be
	given as an aspect ratio derived from the titlebar height,
	instead of as a fixed size.

	* src/theme.c (meta_frame_layout_validate): validate new button
	sizing parameters

	* src/theme.c (meta_frame_layout_calc_geometry): use new button
	layout params
2002-06-04 02:13:00 +00:00
Kjartan Maraas
400e82daa3 Someone forgot to mark the two strings in here for translation :)
2002-06-03  Kjartan Maraas  <kmaraas@gnome.org>

	* src/tools/metacity-properties.desktop.in: Someone forgot to mark
	the two strings in here for translation :)
2002-06-03 20:13:08 +00:00
Havoc Pennington
d5bcea27e3 move the remove_listener to finalize instead of destroy, thanks to Jayaraj
2002-06-01  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_finalize): move the remove_listener
	to finalize instead of destroy, thanks to Jayaraj for tracking
	down the bug.
2002-06-02 00:24:31 +00:00
Havoc Pennington
d0e109f96c add some missing \n (meta_session_init): remove the #if 0 interact
2002-06-01  Havoc Pennington  <hp@pobox.com>

	* src/session.c: add some missing \n
	(meta_session_init): remove the #if 0 interact callback from our
	initial SmcOpenConnection call, this arg to SmcOpenConnection
	doesn't exist.
2002-06-01 17:03:25 +00:00
Havoc Pennington
9d68b98bc9 put in more debug spew about the session
2002-06-01  Havoc Pennington  <hp@pobox.com>

	* src/session.c: put in more debug spew about the session
2002-06-01 15:46:04 +00:00
Havoc Pennington
a242f622ea use $(prefix)/@DATADIRNAME@/locale for localedir to work with Solaris
2002-05-30  Havoc Pennington  <hp@pobox.com>

	* src/Makefile.am (INCLUDES): use $(prefix)/@DATADIRNAME@/locale
	for localedir to work with Solaris native gettext, patch from
	Hidetoshi Tajima

	* src/tools/Makefile.am: ditto
2002-06-01 15:00:25 +00:00
Anders Carlsson
d5e31129d5 Shush 2002-06-01 12:11:42 +00:00
Anders Carlsson
b7f1a5fae7 Shush 2002-06-01 12:10:28 +00:00
Havoc Pennington
c6b3408398 add MetaImageFillType and implement TILE in addition to the existing SCALE
2002-05-31  Havoc Pennington  <hp@redhat.com>

	* src/theme.c: add MetaImageFillType and implement TILE in
	addition to the existing SCALE

	* src/theme.h (struct _MetaDrawOp): remove no-longer-used "alpha"
	field
2002-05-31 22:03:34 +00:00
Havoc Pennington
d4b91dc654 now just uses meta_gradient_add_alpha (draw_op_as_pixbuf): implement alpha
2002-05-31  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (multiply_alpha): now just uses
	meta_gradient_add_alpha
	(draw_op_as_pixbuf): implement alpha gradients for tint, gradient,
	and image draw ops, so I can implement garrett's stuff.

	* src/gradient.c (meta_gradient_add_alpha): new function to
	multiply the alpha channel of a pixbuf by an alpha gradient
2002-05-31 21:18:11 +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
Stephen Browne
bfd67fadef Rip out code for adding image to the dialog 2002-05-30 10:53:32 +00:00
Stephen Browne
2f74af1c04 UI changes as per HCI instructions 2002-05-30 10:49:19 +00:00
Stephen Browne
49f9ba96cc Changed metacity-properties window title to match its menu entry and be more consistent with other capplets 2002-05-30 09:49:15 +00:00
Havoc Pennington
90ff51acdb improve error about failing to open session manager.
2002-05-29  Havoc Pennington  <hp@pobox.com>

	* src/session.c (meta_session_init): improve error about failing
	to open session manager.
	(shutdown_cancelled_callback): send SmcSaveYourselfDone when we
	get cancelled
	(interact_callback): implement an interact callback that complains
	about lame clients that can't be saved. Still somewhat buggy
	in that it sends InteractDone before the user has closed the
	dialog.
2002-05-30 03:54:10 +00:00
Havoc Pennington
f7c2b446f2 the miracle of cvs add 2002-05-30 02:26:58 +00:00
Havoc Pennington
737d3cbbf5 add a magnifier I'm using when making themes. Not installed.
2002-05-29  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-mag.c: add a magnifier I'm using when making
	themes. Not installed.

	* src/tools/metacity-properties.c: reindentation, show window, add
	copyright info.

	* src/tools/metacity-properties.glade: make main window !visible
	on startup, to avoid funkiness.
2002-05-29 16:16:53 +00:00
Jacob Berkman
6aaf2738c9 dist .desktop.in files
2002-05-29  Jacob Berkman  <jacob@ximian.com>

	* src/tools/Makefile.am (EXTRA_DIST): dist .desktop.in files
2002-05-29 15:06:08 +00:00
Stephen Browne
31ba0b1f95 New config dialog for focus mode and autoraise 2002-05-29 11:54:12 +00:00
Havoc Pennington
68eb780c75 add code to also guess that client wants to come out of fullscreen, then
2002-05-29  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_move_resize_internal): add code to
	also guess that client wants to come out of fullscreen, then
	#if 0 the whole deal, I'm not sure it's such a good idea.
2002-05-29 04:17:40 +00:00
Havoc Pennington
03498549b2 guess if a window meant to be fullscreen, and if so put it in that state.
2002-05-29  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_move_resize_internal): guess if a
	window meant to be fullscreen, and if so put it in that state.
2002-05-29 04:14:15 +00:00
Havoc Pennington
6077c26cdf handle missing frame, prevents segv with undecorated windows. #83298
2002-05-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c (redraw_icon): handle missing frame, prevents segv
	with undecorated windows. #83298
2002-05-29 03:54:00 +00:00
Havoc Pennington
0498d55314 Patch from Erwann Chenede for raise_or_lower keybinding
2002-05-28  Havoc Pennington  <hp@pobox.com>

        Patch from Erwann Chenede for raise_or_lower keybinding

	* src/display.c, src/common.h: POINT_IN_RECT moved to a common
	location, removed from here
	(meta_rectangle_intersect): move here and make it public

	* src/prefs.c: add raise_or_lower keybinding

	* src/stack.c (meta_stack_get_below, meta_stack_get_above): add an
	arg to only get windows within the same layer

	* src/keybindings.c (handle_raise_or_lower): add handling for a
	"raise window if obscured, else lower" keybinding
2002-05-29 03:11:24 +00:00
Havoc Pennington
4b5eda0b0a handle CWStackMode in configure requests (meta_window_new): if a window is
2002-05-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): handle CWStackMode
	in configure requests
	(meta_window_new): if a window is opened at 0,0 and screen size,
	put it in the fullscreen state.
	(meta_window_new): remove old code that set the window position to
	0,0 if PPosition/USPosition unset, that will be handled by whether
	we place the window or not.
2002-05-29 02:22:04 +00:00
Havoc Pennington
2e19e3c9f7 remove metacity.desktop, now a generated file 2002-05-27 19:27:15 +00:00
Havoc Pennington
aad6035c57 search for the window's screen by root window instead of Screen*, maybe it
2002-05-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): search for the window's screen
	by root window instead of Screen*, maybe it will help with
	bug #82664
2002-05-27 19:26:56 +00:00
Kjartan Maraas
2eeb984e4e Ignore the generated .schemas file 2002-05-27 16:29:15 +00:00
Kjartan Maraas
a1c5f93ef0 Final touches 2002-05-27 15:51:41 +00:00
Anders Carlsson
068c16b162 Apparently someone thinks my name is Anders Carlsom. Well, it's not.
2002-05-27  Anders Carlsson  <andersca@gnu.org>

	* src/themes/Gorilla/metacity-theme-1.xml: Apparently someone
	thinks my name is Anders Carlsom. Well, it's not.
	(Thanks to Carl-Johan Kjellander for noticing.)
2002-05-27 14:04:19 +00:00
James M. Cape
91bf299f16 Remove borders from Esco theme as well (didn't know you could), apparently
2002-05-26  James M. Cape  <jcape@ignore-your.tv>

    * src/themes/Esco/metacity-theme-1.xml: Remove borders from
    Esco theme as well (didn't know you could), apparently fixed
    the problem where the spacing between the icon & the title
    got larger as the fontsize went up.
2002-05-27 11:08:22 +00:00
Havoc Pennington
0cbf47ca30 totally drop the borders off of maximized windows.
2002-05-26  Havoc Pennington  <hp@pobox.com>

	* src/themes/Atlanta/metacity-theme-1.xml: totally drop the
	borders off of maximized windows.
2002-05-26 16:16:06 +00:00
Havoc Pennington
a40a9eccf4 Patch from Gaute Lindkvist so you can't move the panel or desktop to only
2002-05-26  Havoc Pennington  <hp@pobox.com>

        Patch from Gaute Lindkvist so you can't move the panel or desktop
	to only one workspace.

	* src/keybindings.c (handle_move_to_workspace): don't allow moving
	window to another space if the window is always_sticky

	* src/window.c (recalc_window_features): set the always_sticky
	field for desktop/dock windows.
	(meta_window_show_menu): disable unsticking always sticky windows
	via the menus

	* src/menu.c (meta_window_menu_new): disable workspace items
	if requested
2002-05-26 15:54:38 +00:00
Erwann Chenede -
af845f4de7 allow key grabbing for unmodified keys (e.g F1, etc) fix #82630
2002-05-25 Erwann Chenede - <erwann.chenede@sun.com>

  * src/keybindings.c (rebuild_screen_binding_table,
 		       rebuild_window_binding_table,
		       meta_change_keygrab): allow key grabbing for
    unmodified keys (e.g F1, etc) fix #82630
2002-05-25 16:41:41 +00:00
Anders Carlsson
d466c615ed Take Xinerama screen edges into consideration.
2002-05-25  Anders Carlsson  <andersca@gnu.org>

	* src/place.c: (get_vertical_edges), (get_horizontal_edges):
	Take Xinerama screen edges into consideration.

	* src/screen.c: (meta_rectangle_intersect),
	(meta_screen_get_xinerama_for_window):
	* src/screen.h:
	Add a new function that returns the xinerama monitor that
	a window is on.
2002-05-25 16:30:14 +00:00
Havoc Pennington
cc3c995d80 follow windows to their new workspace
2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (menu_callback): follow windows to their new
	workspace

	* src/keybindings.c (handle_move_to_workspace): follow windows to
	their new workspace
2002-05-25 02:33:55 +00:00
Havoc Pennington
a4fe1ad960 add minimize window binding
2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas: add minimize window binding

	* src/keybindings.c (handle_minimize_window): add minimize keybinding
2002-05-25 02:30:00 +00:00
Havoc Pennington
750cb70f69 make that compile 2002-05-25 02:12:24 +00:00
Havoc Pennington
4f70698493 change how focusing windows on initial map works, so that we only steal
2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): change how focusing windows
	on initial map works, so that we only steal focus from our
	transient parent or from a panel/desktop, never from other
	normal windows.
2002-05-25 02:11:33 +00:00
Havoc Pennington
30ff4540d0 modify to ignore PPosition and USPosition once the window has been placed
2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): modify to ignore
	PPosition and USPosition once the window has been placed
2002-05-25 02:03:09 +00:00
Anders Carlsson
2536b82084 Redraw the window frame when the icon changes. Fixes #78543, reported by
2002-05-24  Anders Carlsson  <andersca@gnu.org>

	* src/window.c: Redraw the window frame when the icon changes.
	Fixes #78543, reported by Kang Jeong-Hee.
2002-05-24 08:16:59 +00:00
Havoc Pennington
d70e08039c also filter out LeaveNotify with NotifyInferior
2002-05-23  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): also filter out LeaveNotify
	with NotifyInferior
2002-05-24 03:09:21 +00:00
Jayaraj Rajappan
49fe8f0399 fix for bugzilla bug #72314, filter out LeaveNotify caused by grabs when
2002-05-23  Jayaraj Rajappan <jayaraj.rajappan@wipro.com>

	* src/display.c (event_callback): fix for bugzilla bug #72314,
	filter out LeaveNotify caused by grabs when in mouse focus mode.
2002-05-24 02:55:54 +00:00
Havoc Pennington
0f1f2283e7 Crack from Erwann
2002-05-23  Havoc Pennington  <hp@pobox.com>

        Crack from Erwann

	* src/metacity.schemas: add autoraise crackrock

	* src/display.c (event_callback): autoraise window if autoraise is
	enabled

	* src/prefs.c: autoraise crack
2002-05-24 02:23:46 +00:00
Havoc Pennington
2567ee81b8 fix positioning in fullscreen mode, patch from Gustavo Girldez
2002-05-21  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_position): fix positioning in fullscreen
	mode, patch from Gustavo Girldez
2002-05-21 21:02:33 +00:00
Havoc Pennington
82b064ed7d fix it, maybe
2002-05-16  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_neighbor): fix it, maybe
2002-05-17 01:48:57 +00:00
Havoc Pennington
bb35f88925 lock desktop to position 0,0
2002-05-16  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_position): lock desktop to position 0,0
2002-05-16 20:47:29 +00:00
Havoc Pennington
9b39feab95 add FIXME 2002-05-16 19:08:38 +00:00
Havoc Pennington
74cf783be3 don't focus dock, desktop, etc. windows on initial map, only windows that
2002-05-16  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_show): don't focus dock, desktop,
	etc. windows on initial map, only windows that should have focus.
2002-05-16 19:08:20 +00:00
Havoc Pennington
5f65ca07d7 use the layout information to figure out up/down neighbors
2002-05-15  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_neighbor): use the layout
	information to figure out up/down neighbors

	* src/display.c (event_callback): catch propertynotify on
	_NET_DESKTOP_LAYOUT

	* src/screen.c (meta_screen_update_workspace_layout): keep track
	of the layout of workspaces as set by the pager
2002-05-16 04:03:36 +00:00
James M. Cape
2c73ab41ed Minor tweak to minimize button.
2002-05-15  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Minor tweak to minimize
	button.
2002-05-15 07:35:47 +00:00
Havoc Pennington
53bddf9ceb add Esco theme from James Cape
2002-05-14  Havoc Pennington  <hp@pobox.com>

	* src/themes/Makefile.am (THEMES): add Esco theme from James Cape
2002-05-14 05:25:04 +00:00
Havoc Pennington
5151c5102d move pposition/usposition honoring code into here, instead of putting it
2002-05-12  Havoc Pennington  <hp@pobox.com>

	* src/place.c (meta_window_place): move pposition/usposition
	honoring code into here, instead of putting it in window.c.
	Makes focusing new windows work, and cleans things up a bit.
	#81585
2002-05-13 00:03:17 +00:00
Havoc Pennington
b94beb3289 turn on --g-fatal-warnings if METACITY_G_FATAL_WARNINGS env variable is
2002-05-12  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): turn on --g-fatal-warnings if
	METACITY_G_FATAL_WARNINGS env variable is set.
2002-05-12 14:50:05 +00:00
Anders Carlsson
af83598ad3 Add screen argument to meta_display_get_tab_next, since we only want
2002-05-11  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (find_tab_forward), (find_tab_backward),
	(meta_display_get_tab_next):
	* src/display.h:
	* src/keybindings.c: (handle_tab_forward), (handle_focus_previous):
	Add screen argument to meta_display_get_tab_next, since we only
	want windows on the same screen to appear in the tab chain.

	* src/screen.c: (meta_screen_new):
	Or the event mask with existing events since gtk+ may listen to
	certain events and we don't want to disable those events.

	(meta_screen_ensure_tab_popup):
	* src/tabpopup.c: (meta_ui_tab_popup_new):
	* src/tabpopup.h:
	Add a screen number argument to meta_ui_tab_popup_new so we
	can position the popup on the correct screen.
2002-05-11 06:59:54 +00:00
Havoc Pennington
41e99288b5 include locale.h, fix from Hidetoshi Tajima
2002-05-11  Havoc Pennington  <hp@pobox.com>

	* src/main.c: include locale.h, fix from Hidetoshi Tajima

	* src/window.c (meta_window_new): disable show desktop mode when a
	new window is managed.
2002-05-11 05:47:04 +00:00
Havoc Pennington
a3460b8ac8 keep the tooltip on the screen horizontally, #76825
2002-05-11  Havoc Pennington  <hp@pobox.com>

	* src/fixedtip.c (meta_fixed_tip_show): keep the tooltip
	on the screen horizontally, #76825

	* src/window.c (meta_window_handle_mouse_grab_op_event): end grab
	op _after_ doing the final update of the move or resize.
	Hopefully I didn't have a reason for the order I was using before.
2002-05-11 05:09:54 +00:00
Havoc Pennington
9598affa03 add override redirect test window
2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/tools/metacity-window-demo.c: add override redirect test
	window

	* src/stack.c (raise_window_relative_to_managed_windows): new
	function, used to avoid moving windows above override redirect
	popup windows.

	* src/display.c (event_callback): don't lower panels on
	LeaveNotify if they have focus, #70895
2002-05-11 04:44:34 +00:00
Havoc Pennington
2679d3cf00 when maximizing/fullscreening something with a grid, like a terminal,
2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): when maximizing/fullscreening
	something with a grid, like a terminal, center it in the
	maximization area in case it can't fill the whole area.
	#70554

	* src/main.c (main): use g_strerror() to get proper UTF-8.
2002-05-11 03:37:51 +00:00
Havoc Pennington
487c6cfaaa put LockMask into the ignored_modifier_mask so that caps lock doesn't mess
2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (reload_modmap): put LockMask into the
	ignored_modifier_mask so that caps lock doesn't mess up
	keybindings.
2002-05-11 02:38:58 +00:00
Havoc Pennington
052a794427 if window is not mapped after the calc_showing, don't focus it, it's
2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_focus): if window is not mapped after
	the calc_showing, don't focus it, it's probably on another
	workspace or something.
2002-05-11 02:25:11 +00:00
Anders Carlsson
6fe940afc7 Silent CVS 2002-05-10 10:53:05 +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
Havoc Pennington
6d2c558bd8 make Alt+button2 do a resize
2002-05-09  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): make Alt+button2 do a resize
2002-05-09 21:22:01 +00:00
Anders Carlsson
8f5c12d76d #ifdef out call to gtk_window_set_screen, reported by Erwann Chenede.
2002-05-08  Anders Carlsson  <andersca@gnu.org>

	* src/fixedtip.c (meta_fixed_tip_show):
	#ifdef out call to gtk_window_set_screen, reported by
	Erwann Chenede.
2002-05-08 17:20:38 +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
Anders Carlsson
3f7203a3a4 Doh, only update the tmp pointer when the screen matches. Fixes a segfault
2002-05-07  Anders Carlsson  <andersca@gnu.org>

	* src/workspace.c (set_work_area_hint): Doh, only update
	the tmp pointer when the screen matches. Fixes a segfault
	when running with multiple screens.
2002-05-07 17:23:31 +00:00
Anders Carlsson
9138b9aa3c Fix atom name; it's _NET_SHOW_DESKTOP, not _NET_WM_SHOW_DESKTOP.
2002-05-07  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (meta_display_open), (event_callback),
	(meta_display_update_show_desktop_hint):
	* src/display.h:
	* src/screen.c: (set_supported_hint):
	Fix atom name; it's _NET_SHOW_DESKTOP, not
	_NET_WM_SHOW_DESKTOP.

	* src/frames.c: (meta_frames_unmanage_window):
	Restore the mouse cursor to default when unmanaging a window.
2002-05-07 14:42:47 +00:00
Anders Carlsson
7b9877258f Fix an off-by-one error.
2002-05-06  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (set_utf8_string_hint):
	Fix an off-by-one error.

	(meta_display_open),
	(event_callback), (meta_display_update_show_desktop_hint),
	(meta_display_show_desktop), (meta_display_unshow_desktop):
	* src/display.h:
	* src/screen.c: (set_supported_hint):
	Add support for _NET_WM_SHOW desktop, both as a message and
	as a root window property.
2002-05-06 06:11:46 +00:00
Havoc Pennington
41120f2a79 on unminimize, queue calc_showing on all transients
2002-05-05  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_unminimize): on unminimize, queue
	calc_showing on all transients
	(meta_window_activate): on activate, unminimize all a window's
	ancestors, not just the window itself.

	* src/workspace.c (set_work_area_hint): don't increment "tmp" by
	16 unsigned long, increment by 4

	* src/window.c (meta_window_free): if a window isn't minimized,
	restore its WM_STATE to NormalState instead of IconicState,
	since IconicState on initial window map means that the window
	should be minimized.

	* src/workspace.c (meta_workspace_invalidate_work_area): queue an
	idle to recompute the work area hint.
	(set_work_area_hint): we need 4*num_workspaces ints, not just
	num_workspaces.

	* src/screen.c (meta_screen_new): add work_area_idle field,
	handle it on screen shutdown

	* src/common.h (META_PRIORITY_PREFS_NOTIFY,
	META_PRIORITY_WORK_AREA_HINT): define some idle priorities

	* src/window.c (meta_window_calc_showing): hide windows if
	their parent window is minimized
	(meta_window_minimize): also queue_calc_showing on all
	transients of the window being minimized

	* src/place.c (constrain_placement): function to apply
	placement-time-only constraints, such as "not off the left of the
	screen"
	(meta_window_place): put dialogs down a bit over their parent,
	not right at the top.
	(meta_window_place): when centering a dialog, center it
	on the current xinerama screen, rather than the entire
	screen.

	* src/screen.c (meta_screen_get_current_xinerama): new function,
	but not implemented
2002-05-05 05:41:13 +00:00
Havoc Pennington
6f8a7f1870 chop out the portion of the region that's outside the screen.
2002-05-04  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_paint_to_drawable): chop out the
	portion of the region that's outside the screen.

	* src/core.c (meta_core_get_screen_size): new function
	(meta_core_get_frame_extents): new function
2002-05-05 00:45:01 +00:00
Havoc Pennington
7fbbd0200f disable automatic GTK double buffering, since it resulted in gigantic
2002-05-04  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_init): disable automatic GTK double
	buffering, since it resulted in gigantic backing pixmaps the size
	of the whole screen.
	(meta_frames_paint_to_drawable): change to take a region argument;
	punch the client area out of the expose region, then iterate over
	rectangles in the region and draw each, manually doing
	begin_paint_rect. Results in 4 long thin backing pixmaps
	per frame repaint, instead of one large backing pixmap.
	Suggested by Owen.
2002-05-05 00:21:17 +00:00
Bastien Nocera
cf4ef8cab2 - Wrap-around workspaces (ie. when on the last workspace, "switch_to_workspace_right" goes back to the first one) 2002-05-05 00:11:29 +00:00
Anders Carlsson
011a7f77a6 Fix a spelling error and change switch_to_workspace_up and
2002-05-05  Anders Carlsson  <andersca@gnu.org>

	* src/metacity.schemas: Fix a spelling error and change
	switch_to_workspace_up and switch_to_workspace_down to use
	Ctrl+Alt since Nautilus uses Alt now.
2002-05-04 23:40:12 +00:00
Havoc Pennington
80fb12a0b9 correctly print things if the type_atom is unset (meta_window_new): with
2002-05-04  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_net_wm_type): correctly print things if the
	type_atom is unset
	(meta_window_new): with workarounds disabled, always allow
	self-placement for windows with PPosition or USPosition set.
2002-05-04 22:53:13 +00:00
Havoc Pennington
80c4897ced fix for automake 1.5, patch from Tomasz Kloczko
2002-05-03  Havoc Pennington  <hp@redhat.com>

	* src/Makefile.am: fix for automake 1.5, patch from Tomasz Kloczko
2002-05-03 18:40:16 +00:00
Bastien Nocera
718b077b82 - change the default for switch_to_workspace_* to be <Control><Alt>arrow as just <Alt>arrow collides with some apps (especially web browsers) 2002-05-02 16:59:52 +00:00
Havoc Pennington
14dccacfde Xlib doesn't like NULL for out arguments; fix for #80472 from lbedford
2002-05-01  Havoc Pennington  <hp@redhat.com>

	* src/screen.c (meta_screen_new): Xlib doesn't like NULL for out
	arguments; fix for #80472 from lbedford
2002-05-01 16:31:58 +00:00
Havoc Pennington
82ceb7c837 finish mopping up mode_switch_mask field
2002-04-30  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: finish mopping up mode_switch_mask field

	* src/display.h (struct _MetaDisplay): remove mode_switch_mask
	field
2002-05-01 03:33:06 +00:00
Havoc Pennington
03481ae2d0 don't try to decorate toolbars.
2002-04-30  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): don't try to decorate
	toolbars.

	* src/tools/metacity-window-demo.c: add menu and toolbar tests

	* src/place.c (meta_window_place): only dialogs should be centered
	over parent, not anything with transient for set.

	* src/window.c (meta_window_configure_request): become more
	fascist about window positioning if workarounds are disabled, and
	less fascist if they are enabled.

	* src/metacity.schemas: add a "disable_workarounds" option.  Kind
	of crack-smoking. But we just can't get all applications
	fixed. And I need no-workarounds mode to monitor which apps are
	broken and what needs fixing in specs.

	* src/window.c (meta_window_configure_request): always allow
	windows to resize themselves

	* src/keybindings.c (reload_modmap): don't filter out Mode_switch,
	apparently some people bind window manager shortcuts to that.
2002-05-01 03:23:46 +00:00
Havoc Pennington
17b4eab4d4 oops, fix maximization. Pointed out by Gustavo Girldez
2002-04-30  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_position): oops, fix
	maximization. Pointed out by Gustavo Girldez
2002-04-30 19:52:30 +00:00
Jonathan Blandford
cb1b7deefa give Maximize/Unmaximize and Shade/Unshade the same mnemonic for
Tue Apr 30 06:24:09 2002  Jonathan Blandford  <jrb@gnome.org>

	* src/menu.c: give Maximize/Unmaximize and Shade/Unshade the same
	mnemonic for consistency's sake.
2002-04-30 11:00:53 +00:00
Havoc Pennington
cd40cc9edb require 36 pixels onscreen so you typically get a sliver of titlebar,
2002-04-29  Havoc Pennington  <hp@redhat.com>

	* src/window.c (TITLEBAR_LENGTH_ONSCREEN): require 36 pixels
	onscreen so you typically get a sliver of titlebar, suggested by
	tigert.  Should still fix this to consider actual theme geometry.
	(constrain_position): change to allow movement off the left
2002-04-29 21:29:51 +00:00
Havoc Pennington
e8267b20fe always raise windows on focus click, regardless of focus mode.
2002-04-29  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): always raise windows on focus
	click, regardless of focus mode.
2002-04-29 20:20:38 +00:00
Havoc Pennington
a32503a75a don't leak the PangoContext
2002-04-29  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): don't leak the PangoContext
2002-04-29 06:08:59 +00:00
Anders Carlsson
53268f985f Add support for setting the _NET_WM_WORKAREA hint. No code does it yet
2002-04-28  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (meta_display_open):
	* src/display.h:
	* src/screen.c: (set_supported_hint):
	* src/workspace.c: (set_number_of_spaces_hint),
	(set_workarea_hint):
	Add support for setting the _NET_WM_WORKAREA hint. No code
	does it yet though.
2002-04-28 15:47:21 +00:00
Havoc Pennington
e4e200a1dc remove caveats about keybindings
2002-04-28  Havoc Pennington  <hp@pobox.com>

	* README: remove caveats about keybindings

	* src/metacity.schemas: add schemas for all the keybindings.

	* src/window.c (meta_window_activate): if in "show desktop" mode
	when a window is activated, leave show desktop mode. So e.g.
	when you click on a task in the task list, show desktop mode
	will be turned off.

	* src/workspace.c (meta_workspace_get_neighbor): new function
	that doesn't quite work yet (needs support for getting
	workspace layout from the pager)

	* src/prefs.c: keybindings stuff

	* src/keybindings.c: make keybindings configurable

	* src/ui.c (meta_ui_parse_accelerator): new function
2002-04-28 04:52:26 +00:00
jacob berkman
e691b664e3 g_file_get_contents() takes a gsize not int (fixes bus error on 64-bit
2002-04-25  jacob berkman  <jacob@ximian.com>

	* src/session.c (load_state): g_file_get_contents() takes a gsize
	not int (fixes bus error on 64-bit platforms)
2002-04-25 16:25:07 +00:00
Havoc Pennington
5fd4fb96f7 call setlocale ourselves because due to a GLib bug that sticks us in ASCII
2002-04-22  Havoc Pennington  <hp@redhat.com>

	* src/main.c (main): call setlocale ourselves because due to a
	GLib bug that sticks us in ASCII if you call g_print or anything
	prior to setlocale, and print a warning if we don't set the locale
	successfully. #79280

	* src/workspace.c (meta_workspace_get_work_area): be more verbose
	about how the work area was computed, to help find bugs here.

	* src/main.c (main): put locale and codeset in the log file
2002-04-22 18:18:38 +00:00
Havoc Pennington
8183c509d9 add error trap, fixes a possible BadWindow if a window closed itself in
2002-04-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_send_icccm_message): add error trap,
	fixes a possible BadWindow if a window closed itself in response
	to the delete window message prior to us sending the ping message.
2002-04-22 03:23:29 +00:00
Havoc Pennington
115c086eb9 never revert to user_rect.width, user_rect.height. Maybe fixes assorted
2002-04-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_move_resize_now): never revert to
	user_rect.width, user_rect.height. Maybe fixes assorted resize
	screwups e.g. with gnome-terminal.
2002-04-22 03:10:53 +00:00
Anders Carlsson
6603ee6084 Add padding if icon width and height differ.
2002-04-21  Anders Carlsson  <andersca@gnu.org>

	* src/iconcache.c (scaled_from_pixdata): Add padding if
	icon width and height differ.
2002-04-21 20:17:44 +00:00
Havoc Pennington
f5c10f387b query Xinerama screen information if HAVE_XINERAMA
2002-04-17  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): query Xinerama screen
	information if HAVE_XINERAMA

	* configure.in (found_xinerama): check for Xinerama
2002-04-21 19:35:02 +00:00
Havoc Pennington
afcd24b603 fix issue with GNU libc mangling %.10s format
2002-04-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_title): fix issue with GNU libc
	mangling %.10s format

	* metacity.spec: Fix up spec file

	* README: update README

	* configure.in (ALL_LINGUAS): require GTK 2.0.0
2002-04-16 03:23:21 +00:00
Havoc Pennington
2a71cab8c4 reply immediately for windows that don't support _NET_WM_PING
2002-04-15  Havoc Pennington  <hp@redhat.com>

	* src/display.c (meta_display_ping_window): reply immediately for
	windows that don't support _NET_WM_PING

	* src/window.c (update_protocols): check whether windows
	support _NET_WM_PING
2002-04-15 22:14:06 +00:00
Havoc Pennington
206cff1547 same fix as libwnck, avoid using cmap with the wrong depth
2002-04-13  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (get_cmap): same fix as libwnck, avoid using cmap
	with the wrong depth
2002-04-13 20:26:45 +00:00
Havoc Pennington
d02060e201 new file containing all the wacky mess I just added to a simple "click the
2002-04-13  Havoc Pennington  <hp@pobox.com>

	* src/delete.c: new file containing all the
	wacky mess I just added to a simple "click the close button",
	contains all the dealing-with-dead-application cruft.
	Use metacity-window-demo to test by clicking the
	toolbar button that locks it up.
2002-04-13 04:58:45 +00:00
Havoc Pennington
f965726d15 make one of the toolbar buttons lock up the demo
2002-04-12  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-window-demo.c (do_appwindow): make one of the
	toolbar buttons lock up the demo

	* src/window.c (meta_window_delete): move error trap to be around
	a narrower part of the function, and add part of the ping stuff,
	nothing user-visible yet

	* src/metacity-dialog.c (main): metacity-dialog executable to
	live in libexecdir and pop up dialogs for us.
2002-04-12 23:00:46 +00:00
Havoc Pennington
38ff6a49c4 fix alpha multiplication routine to perhaps work correctly, reported by
2002-04-09  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (multiply_alpha): fix alpha multiplication routine
	to perhaps work correctly, reported by tigert. Also, be sure
	we always copy the image if necessary before modifying the
	alpha channel.
2002-04-10 04:00:32 +00:00
Havoc Pennington
fa0592ebc7 remove the unused tab stuff
2002-04-05  Havoc Pennington  <hp@pobox.com>

	* src/stack.c: remove the unused tab stuff

	* src/display.c: implement tab list among panels

	* src/keybindings.c: fill in move-between-panels keybindings
2002-04-05 15:52:49 +00:00
Johan Dahlin
a500a7e668 Make sure all menu items are translated.
2002-03-31  Johan Dahlin  <jdahlin@telia.com>

        * src/menu.c (meta_window_menu_new): Make sure all menu items are
	        translated.
2002-03-31 21:19:58 +00:00
Havoc Pennington
4aea4e7dc6 remove unmanaged windows from save set, and unselect input so we don't get
2002-03-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): remove
	unmanaged windows from save set, and unselect
	input so we don't get events from them. Fixes annoying
	bug where withdrawn windows would decide to map themselves
	due to save set stuff.
2002-03-28 03:49:18 +00:00
Havoc Pennington
faf818940d Added "Bright" theme from Gaute Lindkvist, with some small clipping tweaks
2002-03-21  Havoc Pennington  <hp@pobox.com>

	* src/themes/Bright/metacity-theme-1.xml: Added "Bright" theme
	from Gaute Lindkvist, with some small clipping tweaks to keep
	text/icons from overlapping their frames.
2002-03-22 04:23:47 +00:00
Havoc Pennington
615abebd9d disable the little shaped windows with the window size, they caused a
2002-03-19  Havoc Pennington  <hp@redhat.com>

	* src/resizepopup.c (place_vertical_size_window)
	(place_horizontal_size_window): disable the little shaped windows
	with the window size, they caused a crash anytime you tried to
	resize with Xft. And they were kind of on crack anyway.
2002-03-19 20:09:47 +00:00
Havoc Pennington
62c5d3df06 turn off the tick marks, that got annoying after about 5 minutes. One big
2002-03-17  Havoc Pennington  <hp@pobox.com>

	* src/resizepopup.c (ensure_tick_windows): turn off the tick
	marks, that got annoying after about 5 minutes. One big shape
	window instead of lots of little windows might fix it.
2002-03-17 17:42:13 +00:00
Havoc Pennington
bfc47ccd6e Add some total crackrock resize-grid indication for windows that have
2002-03-17  Havoc Pennington  <hp@pobox.com>

	* src/resizepopup.c: Add some total crackrock resize-grid
	indication for windows that have width_inc/height_inc
	so I can debug gnome-terminal sizing.
2002-03-17 17:22:23 +00:00
Havoc Pennington
80cd793f75 use proper property name for SmDiscardCommand (instead of setting the
2002-03-17  Havoc Pennington  <hp@pobox.com>

	* src/session.c (set_clone_restart_commands): use proper property
	name for SmDiscardCommand (instead of setting the clone command to
	"rm"). Also fix typo that iterated over clonev not discardv to
	fill in prop list, and NULL-terminate discardv. #74584 from Kang
	Jeong-Hee.
2002-03-17 15:26:13 +00:00
Havoc Pennington
42936562de put back --sm-client-id argument, needed for including us in a default
2002-03-13  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): put back --sm-client-id argument, needed
	for including us in a default session
2002-03-14 04:36:02 +00:00
Havoc Pennington
9e2cfcd699 don't save a file here, only in response to SaveYourself. Change the code
2002-03-13  Havoc Pennington  <hp@pobox.com>

	* src/session.c (meta_session_init): don't save a file here, only
	in response to SaveYourself. Change the code to properly use a
	unique state file for each SaveYourself. Totally, totally
	untested.
2002-03-14 04:09:42 +00:00
Havoc Pennington
9b86849068 improve the theme viewer so people can see the broken aspects of their
2002-03-12  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c: improve the theme viewer so people
	can see the broken aspects of their themes.
2002-03-12 06:25:30 +00:00
Havoc Pennington
11089cb824 use new functions
2002-03-11  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: use new functions

	* src/display.c (meta_display_get_tab_next):
	(meta_display_get_tab_list): new tab order functions using
	MRU list instead of map order

	* src/window.c (meta_window_notify_focus): maintain focus MRU list

	* src/display.h (struct _MetaDisplay): Keep an MRU list of
	windows.
2002-03-12 04:34:17 +00:00
Havoc Pennington
35a2f2df76 support _NET_NUMBER_OF_DESKTOPS message so you can change number of
2002-03-10  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): support _NET_NUMBER_OF_DESKTOPS
	message so you can change number of desktops with the pager

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

	* src/display.c (meta_spew_event): print stacking aspects of
	configure request
2002-03-10 18:36:08 +00:00
Havoc Pennington
447eba6007 we didn't claim to support _NET_ACTIVE_WINDOW so gtk_window_present()
2002-03-10  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (set_supported_hint): we didn't claim to support
	_NET_ACTIVE_WINDOW so gtk_window_present() didn't work. Mumble.
	Only worked with tasklist because libwnck didn't check for
	WM support.

	* src/window.c (meta_window_free): clean off window state
	when windows are withdrawn, to avoid sticking dialogs
	to their initial desktop.
	(meta_window_queue_calc_showing): return if window is withdrawn
2002-03-10 15:48:38 +00:00
Havoc Pennington
c89be4ac8a remove broken assertions 2002-03-07 15:05:03 +00:00
Havoc Pennington
fdb20df78b add some assertions
2002-03-06  Havoc Pennington  <hp@pobox.com>

	* src/core.c (meta_core_get_grab_frame): add some assertions

	* src/menu.c (meta_window_menu_new): make another warning
	into a verbose

	* src/display.c (meta_change_button_grab): use verbose rather than
	warning to log failures to grab button, since these are typically
	BadWindow from a destroyed window.
2002-03-07 03:46:12 +00:00
Havoc Pennington
262e6fab27 use hash_table_replace instead of g_hash_table_insert
2002-03-06  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_manage_window): use hash_table_replace
	instead of g_hash_table_insert

	* src/main.c (main): only enable verbose/debug if you set
	METACITY_VERBOSE/METACITY_DEBUG

	* src/util.c (ensure_logfile): only use a log file if
	METACITY_USE_LOGFILE is set

	* src/display.c (meta_display_for_x_display): add warning if
	MetaDisplay isn't found

	* src/window.c (meta_window_free): add an assertion that we
	successfully cleared the grab window
2002-03-06 22:27:24 +00:00
Havoc Pennington
d443d92446 Work on opaque animations more, still suck too much to turn on. Not sure
2002-03-05  Havoc Pennington  <hp@pobox.com>

        Work on opaque animations more, still suck too much
	to turn on. Not sure how to make them good.

	* src/effects.c (meta_effects_draw_box_animation):
	add a slide-up mode for shading

	* src/ui.c (meta_image_window_set): change image window to work by
	setting back pixmap on the GtkWindow, instead of using GtkImage.
2002-03-05 05:05:00 +00:00
Havoc Pennington
5429690467 try ignoring SIGXFSZ, though I'm not sure what that does exactly. I'm
2002-03-04  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): try ignoring SIGXFSZ, though I'm not
	sure what that does exactly. I'm hoping it gives me EFBIG.

	* src/util.c (ensure_logfile): log to a file in /tmp instead
	of to ~/metacity.log.
2002-03-05 02:43:22 +00:00
Havoc Pennington
c1358625c9 improve debug spew about initial workspace
2002-03-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c: improve debug spew about initial workspace
2002-03-04 04:54:46 +00:00
Havoc Pennington
20a98e1c2a disable resize etc. if we're fullscreen (constrain_size): fix size
2002-03-02  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): disable resize etc. if
	we're fullscreen
	(constrain_size): fix size constraints when fullscreen

	* src/display.c (meta_display_open): fix missing comma that
	ended up concatenating two of the properties breaking
	FULLSCREEN state and PING protocol
2002-03-03 00:03:50 +00:00
Havoc Pennington
ac2aa5337d Add hacking to fix the problem that we made our XGrabPointer() during
2002-03-02  Havoc Pennington  <hp@pobox.com>

	* src/display.c: Add hacking to fix the problem that we made our
	XGrabPointer() during Alt+Tab actually succeed, so on popping down
	Alt+Tab we got an EnterNotify from the ungrab, which resulted in
	focusing the window under the mouse. i.e. Alt+Tab didn't work with
	sloppy focus.
2002-03-02 15:26:07 +00:00
Havoc Pennington
efa0ae8373 Screw around with Anders's ping patch so he'll get plenty of CVS
2002-02-26  Havoc Pennington  <hp@pobox.com>

        Screw around with Anders's ping patch so he'll get plenty of CVS
	conflicts. ;-)

	* src/display.c (meta_display_ping_window): spew warnings
	if we try to call this with CurrentTime
	(meta_display_ping_timeout): remove ping from the pending pings
	after it times out.

	* src/util.h: added PING debug category

	* src/display.c (remove_pending_pings_for_window): don't remove
	"tmp" just before "tmp->next", don't break out of loop after
	finding the first match
	(meta_display_open): no trailing comma in array init
	(event_callback): move the processing of ping replies into a
	separate function

	* src/screen.c (set_supported_hint): add _NET_WM_PING to supported
	list

	* src/display.h: change gpointer to void*

2002-02-26  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (ping_data_free),
	(remove_pending_pings_for_window), (meta_display_open),
	(event_callback), (meta_display_unregister_x_window),
	(meta_display_ping_timeout), (meta_display_ping_window),
	(meta_display_window_has_pending_pings):
	Implement meta_display_ping_window, and filter out scroll wheel
	events.

	* src/display.h:
	Add MetaWindowPingFunc, meta_display_ping_window and
	meta_display_window_has_pending_pings.
2002-02-27 02:05:39 +00:00
Havoc Pennington
bedddaa717 switch on the op passed in, not the active op. Gives us the right cursor
2002-02-24  Havoc Pennington  <hp@pobox.com>

	* src/display.c (xcursor_for_op): switch on the op passed in, not
	the active op. Gives us the right cursor during resizing, etc.

	* src/errors.c: rearrange all the error stuff to adapt to the GDK
	change a while back, so now we print our X errors again

	* src/display.c (meta_display_begin_grab_op): remove KeyPressMask
	and KeyReleaseMask from the XGrabPointer(), this caused BadValue
	and kept the grab from ever succeeding. Fixes the problem with the
	GTK resize grip - this is why you shouldn't break your X error
	spew. ;-)

	* src/display.c: debug spew tweaks

	* src/window.c (meta_window_client_message): do some
	s/verbose/topic/ stuff
2002-02-24 19:58:27 +00:00
Havoc Pennington
2d01419577 fix the be-sure-we-create-coverage-cache hack
2002-02-23  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): fix the
	be-sure-we-create-coverage-cache hack
2002-02-23 23:24:03 +00:00
Havoc Pennington
20218dac92 put in hack to keep Pango from mangling our server grab and locking up on
2002-02-19  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): put in hack to keep Pango from mangling
	our server grab and locking up on startup. (hack doesn't work
	but I want to fix it on my real computer not this laptop)

	* src/window.c: Implement _NET_WM_STATE_FULLSCREEN

	* src/display.c (meta_display_open): add atoms for
	_NET_WM_STATE_FULLSCREEN
2002-02-23 22:58:02 +00:00
Kjartan Maraas
53bdcfc12b Shh some more 2002-02-16 15:12:55 +00:00
Kjartan Maraas
1feeb731c9 Use bind_textdomain_codeset etc.
2002-02-16  Kjartan Maraas  <kmaraas@gnome.org>

	* src/main.c: Use bind_textdomain_codeset etc.
2002-02-16 14:32:16 +00:00
Havoc Pennington
37dd796b53 add missing files 2002-02-15 14:37:25 +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