1
0
Fork 0
Commit graph

32 commits

Author SHA1 Message Date
Mark McLoughlin
791ab07bd4 default to topleft starting corner. (meta_screen_update_workspace_layout):
2002-10-01  Mark McLoughlin  <mark@skynet.ie>

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

        * src/screen.h: add MetaScreenCorner enum.
2002-10-01 19:57:26 +00:00
Havoc Pennington
cfa98e02fc fix compiler warnings
2002-09-12  Havoc Pennington  <hp@redhat.com>

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

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

	* src/place.c (find_first_fit): Try placing window at origin of
	first Xinerama, even if there are no windows to place next to;
	makes placement work when no other windows are open on the screen.
2002-09-12 20:46:03 +00:00
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
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
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
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
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
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
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
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
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
9b39feab95 add FIXME 2002-05-16 19:08:38 +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
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
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
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
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
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
51d9f9dce6 when mapping a window with struts, invalidate the work areas it's on.
2002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): when mapping a window with
	struts, invalidate the work areas it's on. Should fix at least
	part of the problem with windows maximizing over panels.

	* src/workspace.c (meta_workspace_invalidate_work_area): also
	queue move/resize on sticky windows

	* src/tools/Makefile.am: consolidate reload-theme, restart into a
	"metacity-message" app and add enable/disable keybindings to the
	messages it knows about.

	* src/keybindings.c:
	(meta_change_keygrab): grab keyboard synchronously
	(meta_display_process_key_event): if all keybindings are toggled
	off, ReplayKeyboard, else AsyncKeyboard, except that the debug
	binding for toggling back on is always processed
	(meta_set_keybindings_disabled): function to disable/enable
	all keybindings
2002-02-08 06:01:58 +00:00
Havoc Pennington
d91715dc8f Throughout: move to meta_topic rather than meta_verbose so metacity.log
2002-02-07  Havoc Pennington  <hp@pobox.com>

        Throughout: move to meta_topic rather than meta_verbose so
	metacity.log can start being more useful

	* src/util.h (enum): add more debug topics

	* src/frames.c: clean up some cruft that caused warnings
2002-02-08 03:34:26 +00:00
Havoc Pennington
19d2e8c7e1 give priority to keeping NW corner onscreen rather than SE, if we need to
2002-01-18  Havoc Pennington  <hp@pobox.com>

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

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

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

	* src/core.c (meta_core_get_client_size): new function to replace
	meta_core_get_frame_size() so we don't have weird cycles
	in the geometry calculation
2002-01-19 03:50:03 +00:00
Havoc Pennington
b2bbb306f4 store strut information, update it on property changes, etc. etc. so we
2002-01-09  Havoc Pennington  <hp@pobox.com>

	* src/window.c, src/window.h: store strut information,
	update it on property changes, etc. etc. so we avoid panel
	on maximize.

	* src/workspace.c (meta_workspace_get_work_area): add accessor for
	work area so we can compute it lazily

	* src/display.h, src/display.c: add _NET_WM_STRUT atom
	and _WIN_HINTS atom
2002-01-10 06:31:31 +00:00
Havoc Pennington
ee1361fb6e focus top window when switching to a new workspace
2002-01-03  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_activate): focus top window when
	switching to a new workspace

	* src/util.c (meta_topic): start putting verbose output in
	categories

	* src/window.c (meta_window_shade): focus frame after we queue
	the calc_showing so the maps/unmaps have already happened.

	* src/display.c (meta_display_get_current_time): add the "get time
	of current event" function and call it occasionally.

	* src/window.c (meta_window_free): if we have focus, call
	meta_screen_focus_top_window().
	(meta_window_minimize): ditto
	(meta_window_delete): ditto

	* src/screen.c (meta_screen_ensure_tab_popup): fix memory leak -
	didn't free tab list
	(meta_screen_focus_top_window): new function to use when we unmap
	or unmanage a focused window

	* src/stack.c (meta_stack_get_default_focus_window): function used
	in meta_screen_focus_top_window
2002-01-03 23:28:19 +00:00
Havoc Pennington
041b33c450 update number of workspaces hint
2001-12-09  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_free): update number of
	workspaces hint

	* src/screen.c (update_num_workspaces): implement number of
	workspaces setting

	* src/window.c (meta_window_configure_request): honor configure
	requests on windows of type NORMAL, but still be mean to those of
	type DIALOG

	* src/main.c (main): add more log domains to those we set a log
	handler for, and only set warnings fatal in debug mode

	* src/metacity.schemas: add number of workspaces setting
2001-12-10 03:55:26 +00:00
rhp
73b7323d84 ... 2001-07-04 04:33:31 +00:00
rhp
2f29ba4f39 ... 2001-06-10 07:52:35 +00:00
rhp
b5e506ce9d ... 2001-06-10 03:17:15 +00:00
rhp
d0f6283cf5 workspace menu 2001-06-09 05:14:43 +00:00
rhp
0feac37c5b ... 2001-06-07 05:18:10 +00:00
rhp
0f5fdeb1b1 ... 2001-06-06 04:47:37 +00:00