Go to the source code of this file.
Managing X screens. This file contains methods on this class which are available to routines in core but not outside it. (See screen.h for the routines which the rest of the world is allowed to use.)
Definition in file screen-private.h.
| #define META_WIREFRAME_XOR_LINE_WIDTH 2 |
| typedef void(* MetaScreenWindowFunc)(MetaScreen *screen, MetaWindow *window, gpointer user_data) |
Definition at line 49 of file screen-private.h.
| typedef struct MetaWorkspaceLayout MetaWorkspaceLayout |
Definition at line 188 of file screen-private.h.
| typedef struct _MetaXineramaScreenInfo MetaXineramaScreenInfo |
Definition at line 41 of file screen-private.h.
| enum MetaScreenCorner |
Definition at line 52 of file screen-private.h.
| enum MetaScreenDirection |
Definition at line 60 of file screen-private.h.
| Window meta_create_offscreen_window | ( | Display * | xdisplay, | |
| Window | parent, | |||
| long | valuemask | |||
| ) |
| gboolean meta_screen_apply_startup_properties | ( | MetaScreen * | screen, | |
| MetaWindow * | window | |||
| ) |
Definition at line 2607 of file screen.c.
References _MetaWindow::desc, FALSE, _MetaWindow::initial_timestamp, _MetaWindow::initial_timestamp_set, _MetaWindow::initial_workspace, _MetaWindow::initial_workspace_set, META_DEBUG_STARTUP, meta_window_get_startup_id(), NULL, _MetaWindow::res_class, _MetaWindow::res_name, _MetaWindow::startup_id, and TRUE.
Referenced by meta_window_new_with_attrs(), and reload_net_startup_id().
| void meta_screen_calc_workspace_layout | ( | MetaScreen * | screen, | |
| int | num_workspaces, | |||
| int | current_space, | |||
| MetaWorkspaceLayout * | layout | |||
| ) |
Definition at line 1988 of file screen.c.
References MetaWorkspaceLayout::cols, _MetaScreen::columns_of_workspaces, MetaWorkspaceLayout::current_col, MetaWorkspaceLayout::current_row, MetaWorkspaceLayout::grid, MetaWorkspaceLayout::grid_area, meta_bug(), meta_is_verbose(), meta_pop_no_msg_prefix(), meta_push_no_msg_prefix(), META_SCREEN_BOTTOMLEFT, META_SCREEN_BOTTOMRIGHT, meta_screen_corner_to_string(), META_SCREEN_TOPLEFT, META_SCREEN_TOPRIGHT, MetaWorkspaceLayout::rows, _MetaScreen::rows_of_workspaces, _MetaScreen::starting_corner, and _MetaScreen::vertical_workspaces.
Referenced by meta_screen_ensure_workspace_popup(), meta_window_show_menu(), and meta_workspace_get_neighbor().
| void meta_screen_composite_all_windows | ( | MetaScreen * | screen | ) |
Definition at line 782 of file screen.c.
References WindowInfo::attrs, _MetaDisplay::compositor, _MetaScreen::display, _MetaScreen::flash_window, list_windows(), meta_compositor_add_window(), meta_display_lookup_x_window(), meta_stack_freeze(), meta_stack_thaw(), _MetaScreen::no_focus_window, NULL, _MetaScreen::stack, windows, _MetaScreen::wm_sn_selection_window, and WindowInfo::xwindow.
Referenced by enable_compositor().
| void meta_screen_ensure_tab_popup | ( | MetaScreen * | screen, | |
| MetaTabList | list_type, | |||
| MetaTabShowType | show_type | |||
| ) |
Definition at line 1235 of file screen.c.
References _MetaScreen::active_workspace, _MetaTabEntry::blank, _MetaFrame::bottom_height, _MetaFrame::child_x, _MetaFrame::child_y, _MetaTabEntry::demands_attention, _MetaScreen::display, FALSE, _MetaWindow::frame, get_window_pixbuf(), _MetaRectangle::height, _MetaTabEntry::hidden, _MetaWindow::icon, _MetaTabEntry::icon, ICON_OFFSET, _MetaTabEntry::inner_rect, _MetaTabEntry::key, meta_display_get_tab_list(), META_TAB_SHOW_INSTANTLY, meta_ui_tab_popup_new(), meta_window_get_icon_geometry(), meta_window_get_outer_rect(), meta_window_showing_on_its_workspace(), NULL, _MetaScreen::number, OUTLINE_WIDTH, _MetaTabEntry::rect, _MetaFrame::right_width, _MetaScreen::tab_popup, _MetaWindow::title, _MetaTabEntry::title, TRUE, _MetaRectangle::width, _MetaWindow::wm_state_demands_attention, _MetaRectangle::x, _MetaWindow::xwindow, and _MetaRectangle::y.
Referenced by meta_display_begin_grab_op().
| void meta_screen_ensure_workspace_popup | ( | MetaScreen * | screen | ) |
Definition at line 1372 of file screen.c.
References _MetaScreen::active_workspace, _MetaTabEntry::blank, MetaWorkspaceLayout::cols, _MetaTabEntry::demands_attention, FALSE, MetaWorkspaceLayout::grid, MetaWorkspaceLayout::grid_area, _MetaTabEntry::hidden, _MetaTabEntry::icon, _MetaTabEntry::key, meta_screen_calc_workspace_layout(), meta_screen_free_workspace_layout(), meta_screen_get_n_workspaces(), meta_screen_get_workspace_by_index(), meta_ui_tab_popup_new(), meta_workspace_get_name(), meta_workspace_index(), NULL, _MetaScreen::number, _MetaScreen::tab_popup, _MetaTabEntry::title, and TRUE.
Referenced by meta_display_begin_grab_op().
| void meta_screen_foreach_window | ( | MetaScreen * | screen, | |
| MetaScreenWindowFunc | func, | |||
| gpointer | data | |||
| ) |
Definition at line 912 of file screen.c.
References _MetaScreen::display, listify_func(), NULL, ptrcmp(), _MetaWindow::screen, and _MetaDisplay::window_ids.
Referenced by meta_screen_queue_frame_redraws(), meta_screen_queue_window_resizes(), meta_screen_resize(), and meta_workspace_new().
| void meta_screen_free | ( | MetaScreen * | screen, | |
| guint32 | timestamp | |||
| ) |
Definition at line 612 of file screen.c.
References _, _MetaScreen::closing, _MetaDisplay::compositor, _MetaScreen::display, FALSE, meta_compositor_unmanage_screen(), meta_display_grab(), meta_display_ungrab(), meta_display_unmanage_windows_for_screen(), meta_error_trap_pop_with_return(), meta_error_trap_push_with_return(), meta_prefs_remove_listener(), meta_screen_ungrab_keys(), meta_stack_free(), meta_ui_free(), meta_warning(), _MetaDisplay::name, NULL, _MetaScreen::number, prefs_changed_callback(), _MetaScreen::root_xor_gc, _MetaScreen::screen_name, _MetaScreen::stack, _MetaScreen::ui, _MetaScreen::wm_sn_selection_window, _MetaScreen::work_area_idle, _MetaDisplay::xdisplay, _MetaScreen::xinerama_infos, and _MetaScreen::xroot.
Referenced by meta_display_close(), and meta_display_unmanage_screen().
| void meta_screen_free_workspace_layout | ( | MetaWorkspaceLayout * | layout | ) |
Definition at line 2257 of file screen.c.
References MetaWorkspaceLayout::grid.
Referenced by meta_screen_ensure_workspace_popup(), meta_window_show_menu(), and meta_workspace_get_neighbor().
| const MetaXineramaScreenInfo* meta_screen_get_current_xinerama | ( | MetaScreen * | screen | ) |
Definition at line 1646 of file screen.c.
References _MetaScreen::display, FALSE, _MetaRectangle::height, _MetaScreen::last_xinerama_index, META_DEBUG_XINERAMA, meta_rectangle_contains_rect(), _MetaScreen::n_xinerama_infos, _MetaXineramaScreenInfo::rect, _MetaRectangle::width, _MetaRectangle::x, _MetaDisplay::xdisplay, _MetaDisplay::xinerama_cache_invalidated, _MetaScreen::xinerama_infos, _MetaScreen::xroot, and _MetaRectangle::y.
Referenced by find_next_cascade(), meta_screen_get_natural_xinerama_list(), and meta_window_place().
| MetaWindow* meta_screen_get_mouse_window | ( | MetaScreen * | screen, | |
| MetaWindow * | not_this_one | |||
| ) |
Definition at line 1440 of file screen.c.
References _MetaScreen::active_workspace, _MetaWindow::desc, _MetaScreen::display, META_DEBUG_FOCUS, meta_error_trap_pop(), meta_error_trap_push(), meta_stack_get_default_focus_window_at_point(), _MetaScreen::stack, TRUE, _MetaDisplay::xdisplay, and _MetaScreen::xroot.
Referenced by meta_workspace_focus_default_window().
| int meta_screen_get_n_workspaces | ( | MetaScreen * | screen | ) |
Definition at line 976 of file screen.c.
References _MetaScreen::workspaces.
Referenced by meta_core_get_num_workspaces(), meta_screen_ensure_workspace_popup(), meta_window_show_menu(), meta_workspace_get_neighbor(), set_work_area_hint(), and set_workspace_names().
| void meta_screen_get_natural_xinerama_list | ( | MetaScreen * | screen, | |
| int ** | xineramas_list, | |||
| int * | n_xineramas | |||
| ) |
Definition at line 1551 of file screen.c.
References FALSE, META_SCREEN_DOWN, meta_screen_get_current_xinerama(), meta_screen_get_xinerama_neighbor(), META_SCREEN_LEFT, META_SCREEN_RIGHT, META_SCREEN_UP, _MetaScreen::n_xinerama_infos, _MetaXineramaScreenInfo::number, _MetaScreen::number, and TRUE.
| MetaWorkspace* meta_screen_get_workspace_by_index | ( | MetaScreen * | screen, | |
| int | index | |||
| ) |
Definition at line 982 of file screen.c.
References NULL, and _MetaScreen::workspaces.
Referenced by do_handle_move_to_workspace(), event_callback(), handle_activate_workspace(), menu_callback(), meta_core_change_workspace(), meta_core_get_workspace_name_with_index(), meta_screen_ensure_workspace_popup(), meta_screen_new(), meta_window_apply_session_info(), meta_window_client_message(), meta_window_new_with_attrs(), meta_workspace_get_neighbor(), and reload_net_startup_id().
| const MetaXineramaScreenInfo* meta_screen_get_xinerama_for_rect | ( | MetaScreen * | screen, | |
| MetaRectangle * | rect | |||
| ) |
Definition at line 1475 of file screen.c.
References meta_rectangle_area(), meta_rectangle_intersect(), _MetaScreen::n_xinerama_infos, _MetaXineramaScreenInfo::rect, and _MetaScreen::xinerama_infos.
Referenced by meta_screen_get_xinerama_for_window(), place_window_if_needed(), and setup_constraint_info().
| const MetaXineramaScreenInfo* meta_screen_get_xinerama_for_window | ( | MetaScreen * | screen, | |
| MetaWindow * | window | |||
| ) |
Definition at line 1507 of file screen.c.
References meta_screen_get_xinerama_for_rect(), and meta_window_get_outer_rect().
Referenced by meta_window_get_work_area_current_xinerama(), update_move(), and windows_on_different_xinerama().
| const MetaXineramaScreenInfo* meta_screen_get_xinerama_neighbor | ( | MetaScreen * | screen, | |
| int | which_xinerama, | |||
| MetaScreenDirection | dir | |||
| ) |
Definition at line 1518 of file screen.c.
References _MetaRectangle::height, meta_rectangle_horiz_overlap(), meta_rectangle_vert_overlap(), META_SCREEN_DOWN, META_SCREEN_LEFT, META_SCREEN_RIGHT, META_SCREEN_UP, _MetaScreen::n_xinerama_infos, NULL, _MetaXineramaScreenInfo::rect, _MetaRectangle::width, _MetaRectangle::x, _MetaScreen::xinerama_infos, and _MetaRectangle::y.
Referenced by meta_screen_get_natural_xinerama_list().
| void meta_screen_manage_all_windows | ( | MetaScreen * | screen | ) |
Definition at line 742 of file screen.c.
References WindowInfo::attrs, _MetaDisplay::compositor, _MetaScreen::display, _MetaScreen::flash_window, list_windows(), meta_compositor_add_window(), meta_display_grab(), meta_display_ungrab(), meta_stack_freeze(), meta_stack_thaw(), meta_window_new_with_attrs(), _MetaScreen::no_focus_window, NULL, _MetaScreen::stack, TRUE, windows, _MetaScreen::wm_sn_selection_window, and WindowInfo::xwindow.
| void meta_screen_minimize_all_on_active_workspace_except | ( | MetaScreen * | screen, | |
| MetaWindow * | keep | |||
| ) |
Definition at line 2333 of file screen.c.
References _MetaScreen::active_workspace, _MetaWindow::has_minimize_func, meta_window_minimize(), NULL, _MetaWindow::screen, _MetaWorkspace::windows, and windows.
Referenced by maybe_leave_show_desktop_mode().
| MetaScreen* meta_screen_new | ( | MetaDisplay * | display, | |
| int | number, | |||
| guint32 | timestamp | |||
| ) |
Definition at line 315 of file screen.c.
References _, _MetaScreen::active_workspace, _MetaScreen::all_keys_grabbed, _MetaScreen::closing, _MetaScreen::columns_of_workspaces, _MetaScreen::compositor_data, _MetaScreen::current_cursor, _MetaScreen::default_depth, _MetaScreen::default_xvisual, _MetaScreen::display, FALSE, _MetaScreen::flash_window, get_screen_name(), _MetaRectangle::height, _MetaScreen::keys_grabbed, _MetaScreen::last_xinerama_index, meta_create_offscreen_window(), META_CURSOR_DEFAULT, meta_error_trap_pop_with_return(), meta_error_trap_push_with_return(), meta_get_replace_current_wm(), meta_prefs_add_listener(), meta_prop_get_cardinal(), meta_screen_get_workspace_by_index(), meta_screen_grab_keys(), meta_screen_set_cursor(), meta_screen_sn_event(), META_SCREEN_TOPLEFT, meta_screen_update_workspace_layout(), meta_stack_new(), meta_ui_new(), meta_warning(), META_WIREFRAME_XOR_LINE_WIDTH, meta_workspace_activate(), meta_workspace_new(), _MetaScreen::n_xinerama_infos, _MetaDisplay::name, _MetaScreen::no_focus_window, NULL, _MetaScreen::number, prefs_changed_callback(), _MetaScreen::rect, reload_xinerama_infos(), _MetaScreen::root_xor_gc, _MetaScreen::rows_of_workspaces, _MetaScreen::screen_name, set_desktop_geometry_hint(), set_desktop_viewport_hint(), set_wm_check_hint(), set_wm_icon_size_hint(), set_workspace_names(), _MetaScreen::stack, _MetaScreen::starting_corner, _MetaScreen::tab_popup, _MetaScreen::ui, update_num_workspaces(), _MetaScreen::vertical_workspaces, _MetaRectangle::width, _MetaScreen::wm_sn_atom, _MetaScreen::wm_sn_selection_window, _MetaScreen::wm_sn_timestamp, _MetaScreen::work_area_idle, _MetaScreen::workspaces, _MetaRectangle::x, _MetaDisplay::xdisplay, _MetaScreen::xinerama_infos, _MetaScreen::xroot, _MetaScreen::xscreen, and _MetaRectangle::y.
| void meta_screen_queue_frame_redraws | ( | MetaScreen * | screen | ) |
Definition at line 958 of file screen.c.
References meta_screen_foreach_window(), NULL, and queue_draw().
| void meta_screen_queue_window_resizes | ( | MetaScreen * | screen | ) |
Definition at line 970 of file screen.c.
References meta_screen_foreach_window(), NULL, and queue_resize().
| void meta_screen_queue_workarea_recalc | ( | MetaScreen * | screen | ) |
Definition at line 1951 of file screen.c.
References META_DEBUG_WORKAREA, META_PRIORITY_WORK_AREA_HINT, NULL, set_work_area_idle_func(), and _MetaScreen::work_area_idle.
Referenced by meta_workspace_invalidate_work_area(), and update_num_workspaces().
| void meta_screen_resize | ( | MetaScreen * | screen, | |
| int | width, | |||
| int | height | |||
| ) |
Definition at line 2277 of file screen.c.
References _MetaRectangle::height, meta_screen_foreach_window(), meta_screen_resize_func(), _MetaScreen::rect, reload_xinerama_infos(), set_desktop_geometry_hint(), and _MetaRectangle::width.
Referenced by event_callback().
| void meta_screen_set_cursor | ( | MetaScreen * | screen, | |
| MetaCursor | cursor | |||
| ) |
Definition at line 1163 of file screen.c.
References _MetaScreen::current_cursor, _MetaScreen::display, meta_display_create_x_cursor(), _MetaDisplay::xdisplay, and _MetaScreen::xroot.
Referenced by meta_screen_new(), and update_startup_feedback().
| void meta_screen_show_desktop | ( | MetaScreen * | screen, | |
| guint32 | timestamp | |||
| ) |
Definition at line 2356 of file screen.c.
References _MetaScreen::active_workspace, meta_screen_update_showing_desktop_hint(), META_WINDOW_DESKTOP, meta_window_focus(), _MetaWorkspace::mru_list, NULL, queue_windows_showing(), _MetaWindow::screen, _MetaWorkspace::showing_desktop, TRUE, _MetaWindow::type, and windows.
Referenced by event_callback(), and handle_toggle_desktop().
| void meta_screen_unshow_desktop | ( | MetaScreen * | screen | ) |
Definition at line 2391 of file screen.c.
References _MetaScreen::active_workspace, FALSE, meta_screen_update_showing_desktop_hint(), queue_windows_showing(), and _MetaWorkspace::showing_desktop.
Referenced by event_callback(), handle_toggle_desktop(), and maybe_leave_show_desktop_mode().
| void meta_screen_update_cursor | ( | MetaScreen * | screen | ) |
Definition at line 1180 of file screen.c.
References _MetaScreen::current_cursor, _MetaScreen::display, meta_display_create_x_cursor(), _MetaDisplay::xdisplay, and _MetaScreen::xroot.
Referenced by meta_display_set_cursor_theme().
| void meta_screen_update_showing_desktop_hint | ( | MetaScreen * | screen | ) |
Definition at line 2292 of file screen.c.
References _MetaScreen::active_workspace, _MetaScreen::display, FALSE, meta_error_trap_pop(), meta_error_trap_push(), _MetaWorkspace::showing_desktop, _MetaDisplay::xdisplay, and _MetaScreen::xroot.
Referenced by meta_screen_show_desktop(), meta_screen_unshow_desktop(), and meta_workspace_activate_with_focus().
| void meta_screen_update_workspace_layout | ( | MetaScreen * | screen | ) |
Definition at line 1703 of file screen.c.
References _NET_WM_BOTTOMLEFT, _NET_WM_BOTTOMRIGHT, _NET_WM_ORIENTATION_HORZ, _NET_WM_ORIENTATION_VERT, _NET_WM_TOPLEFT, _NET_WM_TOPRIGHT, _MetaScreen::columns_of_workspaces, _MetaScreen::display, FALSE, meta_prop_get_cardinal_list(), META_SCREEN_BOTTOMLEFT, META_SCREEN_BOTTOMRIGHT, META_SCREEN_TOPLEFT, META_SCREEN_TOPRIGHT, meta_warning(), meta_XFree, NULL, _MetaScreen::rows_of_workspaces, _MetaScreen::starting_corner, TRUE, _MetaScreen::vertical_workspaces, and _MetaScreen::xroot.
Referenced by event_callback(), and meta_screen_new().
| void meta_screen_update_workspace_names | ( | MetaScreen * | screen | ) |
Definition at line 1836 of file screen.c.
References _MetaScreen::display, META_DEBUG_PREFS, meta_prefs_change_workspace_name(), meta_prop_get_utf8_list(), NULL, _MetaScreen::number, and _MetaScreen::xroot.
Referenced by event_callback().
1.5.5