[mutter] Always use the default screen
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] Always use the default screen
- Date: Sat, 23 Jul 2016 02:56:43 +0000 (UTC)
commit cd225c4e193e21dfacae40a9539fb3ebd77716ae
Author: Jonas Ådahl <jadahl gmail com>
Date: Thu Jul 21 21:03:56 2016 +0800
Always use the default screen
GDK doesn't support multiple screens, so effectively we don't either.
Lets stop pretending we do.
This fixes a few -Wdeprecated warnings.
https://bugzilla.gnome.org/show_bug.cgi?id=769070
src/core/display.c | 9 ++++-----
src/core/frame.c | 1 -
src/core/place.c | 4 ++--
src/core/screen-private.h | 3 ---
src/core/screen.c | 28 ++++++++++++++--------------
src/core/stack-tracker.c | 2 +-
src/core/startup-notification.c | 2 +-
src/ui/frames.c | 7 +------
src/ui/frames.h | 2 +-
src/ui/ui.c | 18 +++++++++---------
src/ui/ui.h | 4 +---
src/x11/events.c | 6 +++---
12 files changed, 37 insertions(+), 49 deletions(-)
---
diff --git a/src/core/display.c b/src/core/display.c
index 862e301..46a12c3 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -920,11 +920,10 @@ meta_display_open (void)
display->compositor = NULL;
/* Mutter used to manage all X screens of the display in a single process, but
- * now it always manages exactly one screen as specified by the DISPLAY
- * environment variable.
+ * now it always manages exactly one screen - the default screen retrieved
+ * from GDK.
*/
- i = meta_ui_get_screen_number ();
- screen = meta_screen_new (display, i, timestamp);
+ screen = meta_screen_new (display, timestamp);
if (!screen)
{
@@ -2640,7 +2639,7 @@ meta_display_unmanage_screen (MetaDisplay *display,
guint32 timestamp)
{
meta_verbose ("Unmanaging screen %d on display %s\n",
- screen->number, display->name);
+ meta_ui_get_screen_number (), display->name);
meta_display_close (display, timestamp);
}
diff --git a/src/core/frame.c b/src/core/frame.c
index 9335fb6..47174f2 100644
--- a/src/core/frame.c
+++ b/src/core/frame.c
@@ -69,7 +69,6 @@ meta_window_ensure_frame (MetaWindow *window)
frame->rect.y,
frame->rect.width,
frame->rect.height,
- frame->window->screen->number,
&create_serial);
frame->xwindow = frame->ui_frame->xwindow;
diff --git a/src/core/place.c b/src/core/place.c
index 56befbd..fb2631e 100644
--- a/src/core/place.c
+++ b/src/core/place.c
@@ -756,8 +756,8 @@ meta_window_place (MetaWindow *window,
x += xi->rect.x;
y += xi->rect.y;
- meta_topic (META_DEBUG_PLACEMENT, "Centered window %s on screen %d monitor %d\n",
- window->desc, window->screen->number, xi->number);
+ meta_topic (META_DEBUG_PLACEMENT, "Centered window %s on monitor %d\n",
+ window->desc, xi->number);
goto done_check_denied_focus;
}
diff --git a/src/core/screen-private.h b/src/core/screen-private.h
index d0fc318..d3667d6 100644
--- a/src/core/screen-private.h
+++ b/src/core/screen-private.h
@@ -48,9 +48,7 @@ struct _MetaScreen
GObject parent_instance;
MetaDisplay *display;
- int number;
char *screen_name;
- Screen *xscreen;
Window xroot;
int default_depth;
Visual *default_xvisual;
@@ -119,7 +117,6 @@ struct _MetaScreenClass
};
MetaScreen* meta_screen_new (MetaDisplay *display,
- int number,
guint32 timestamp);
void meta_screen_free (MetaScreen *screen,
guint32 timestamp);
diff --git a/src/core/screen.c b/src/core/screen.c
index 0e056b3..4fbf224 100644
--- a/src/core/screen.c
+++ b/src/core/screen.c
@@ -569,10 +569,11 @@ take_manager_selection (MetaDisplay *display,
MetaScreen*
meta_screen_new (MetaDisplay *display,
- int number,
guint32 timestamp)
{
MetaScreen *screen;
+ int number;
+ Screen *xscreen;
Window xroot;
Display *xdisplay;
Window new_wm_sn_owner;
@@ -583,6 +584,8 @@ meta_screen_new (MetaDisplay *display,
replace_current_wm = meta_get_replace_current_wm ();
+ number = meta_ui_get_screen_number ();
+
/* Only display->name, display->xdisplay, and display->error_traps
* can really be used in this function, since normally screens are
* created from the MetaDisplay constructor
@@ -642,9 +645,7 @@ meta_screen_new (MetaDisplay *display,
screen->closing = 0;
screen->display = display;
- screen->number = number;
screen->screen_name = get_screen_name (display, number);
- screen->xscreen = ScreenOfDisplay (xdisplay, number);
screen->xroot = xroot;
screen->rect.x = screen->rect.y = 0;
@@ -655,10 +656,10 @@ meta_screen_new (MetaDisplay *display,
meta_monitor_manager_get_screen_size (manager,
&screen->rect.width,
&screen->rect.height);
-
+ xscreen = ScreenOfDisplay (xdisplay, number);
screen->current_cursor = -1; /* invalid/unset */
- screen->default_xvisual = DefaultVisualOfScreen (screen->xscreen);
- screen->default_depth = DefaultDepthOfScreen (screen->xscreen);
+ screen->default_xvisual = DefaultVisualOfScreen (xscreen);
+ screen->default_depth = DefaultDepthOfScreen (xscreen);
screen->wm_sn_selection_window = new_wm_sn_owner;
screen->wm_sn_atom = wm_sn_atom;
@@ -715,8 +716,7 @@ meta_screen_new (MetaDisplay *display,
screen->keys_grabbed = FALSE;
meta_screen_grab_keys (screen);
- screen->ui = meta_ui_new (screen->display->xdisplay,
- screen->xscreen);
+ screen->ui = meta_ui_new (screen->display->xdisplay);
screen->tile_preview_timeout_id = 0;
@@ -726,7 +726,7 @@ meta_screen_new (MetaDisplay *display,
meta_prefs_add_listener (prefs_changed_callback, screen);
meta_verbose ("Added screen %d ('%s') root 0x%lx\n",
- screen->number, screen->screen_name, screen->xroot);
+ number, screen->screen_name, screen->xroot);
return screen;
}
@@ -793,7 +793,7 @@ meta_screen_free (MetaScreen *screen,
XSelectInput (screen->display->xdisplay, screen->xroot, 0);
if (meta_error_trap_pop_with_return (screen->display) != Success)
meta_warning ("Could not release screen %d on display \"%s\"\n",
- screen->number, screen->display->name);
+ meta_ui_get_screen_number (), screen->display->name);
unset_wm_check_hint (screen);
@@ -1956,8 +1956,7 @@ meta_screen_update_workspace_names (MetaScreen *screen)
screen->display->atom__NET_DESKTOP_NAMES,
&names, &n_names))
{
- meta_verbose ("Failed to get workspace names from root window %d\n",
- screen->number);
+ meta_verbose ("Failed to get workspace names from root window\n");
return;
}
@@ -2656,7 +2655,7 @@ meta_screen_apply_startup_properties (MetaScreen *screen,
int
meta_screen_get_screen_number (MetaScreen *screen)
{
- return screen->number;
+ return meta_ui_get_screen_number ();
}
/**
@@ -2712,7 +2711,8 @@ meta_screen_set_cm_selection (MetaScreen *screen)
guint32 timestamp;
timestamp = meta_display_get_current_time_roundtrip (screen->display);
- g_snprintf (selection, sizeof (selection), "_NET_WM_CM_S%d", screen->number);
+ g_snprintf (selection, sizeof (selection), "_NET_WM_CM_S%d",
+ meta_ui_get_screen_number ());
a = XInternAtom (screen->display->xdisplay, selection, False);
screen->wm_cm_selection_window = take_manager_selection (screen->display, screen->xroot, a, timestamp,
TRUE);
}
diff --git a/src/core/stack-tracker.c b/src/core/stack-tracker.c
index ebb5903..a76b42c 100644
--- a/src/core/stack-tracker.c
+++ b/src/core/stack-tracker.c
@@ -237,7 +237,7 @@ meta_stack_tracker_dump (MetaStackTracker *tracker)
{
GList *l;
- meta_topic (META_DEBUG_STACK, "MetaStackTracker state (screen=%d)\n", tracker->screen->number);
+ meta_topic (META_DEBUG_STACK, "MetaStackTracker state\n");
meta_push_no_msg_prefix ();
meta_topic (META_DEBUG_STACK, " xserver_serial: %ld\n", tracker->xserver_serial);
meta_topic (META_DEBUG_STACK, " verified_stack: ");
diff --git a/src/core/startup-notification.c b/src/core/startup-notification.c
index df317f6..30dfccc 100644
--- a/src/core/startup-notification.c
+++ b/src/core/startup-notification.c
@@ -675,7 +675,7 @@ meta_startup_notification_constructed (GObject *object)
sn_error_trap_pop);
sn->sn_context =
sn_monitor_context_new (sn->sn_display,
- sn->display->screen->number,
+ meta_ui_get_screen_number (),
meta_startup_notification_sn_event,
sn,
NULL);
diff --git a/src/ui/frames.c b/src/ui/frames.c
index 0cb9e14..6abe52e 100644
--- a/src/ui/frames.c
+++ b/src/ui/frames.c
@@ -421,16 +421,11 @@ meta_ui_frame_calc_geometry (MetaUIFrame *frame,
}
MetaFrames*
-meta_frames_new (int screen_number)
+meta_frames_new (void)
{
- GdkScreen *screen;
MetaFrames *frames;
- screen = gdk_display_get_screen (gdk_display_get_default (),
- screen_number);
-
frames = g_object_new (META_TYPE_FRAMES,
- "screen", screen,
"type", GTK_WINDOW_POPUP,
NULL);
diff --git a/src/ui/frames.h b/src/ui/frames.h
index e986dbc..d9aaae2 100644
--- a/src/ui/frames.h
+++ b/src/ui/frames.h
@@ -109,7 +109,7 @@ struct _MetaFramesClass
GType meta_frames_get_type (void) G_GNUC_CONST;
-MetaFrames *meta_frames_new (int screen_number);
+MetaFrames *meta_frames_new (void);
MetaUIFrame * meta_frames_manage_window (MetaFrames *frames,
MetaWindow *meta_window,
diff --git a/src/ui/ui.c b/src/ui/ui.c
index b0f04d0..1e075b6 100644
--- a/src/ui/ui.c
+++ b/src/ui/ui.c
@@ -34,7 +34,6 @@
struct _MetaUI
{
Display *xdisplay;
- Screen *xscreen;
MetaFrames *frames;
/* For double-click tracking */
@@ -81,20 +80,18 @@ meta_ui_get_screen_number (void)
}
MetaUI*
-meta_ui_new (Display *xdisplay,
- Screen *screen)
+meta_ui_new (Display *xdisplay)
{
GdkDisplay *gdisplay;
MetaUI *ui;
ui = g_new0 (MetaUI, 1);
ui->xdisplay = xdisplay;
- ui->xscreen = screen;
gdisplay = gdk_x11_lookup_xdisplay (xdisplay);
g_assert (gdisplay == gdk_display_get_default ());
- ui->frames = meta_frames_new (XScreenNumberOfScreen (screen));
+ ui->frames = meta_frames_new ();
/* GTK+ needs the frame-sync protocol to work in order to properly
* handle style changes. This means that the dummy widget we create
* to get the style for title bars actually needs to be mapped
@@ -141,16 +138,17 @@ meta_ui_create_frame (MetaUI *ui,
gint y,
gint width,
gint height,
- gint screen_no,
gulong *create_serial)
{
GdkDisplay *display = gdk_x11_lookup_xdisplay (xdisplay);
- GdkScreen *screen = gdk_display_get_screen (display, screen_no);
+ GdkScreen *screen;
GdkWindowAttr attrs;
gint attributes_mask;
GdkWindow *window;
GdkVisual *visual;
+ screen = gdk_display_get_default_screen (display);
+
/* Default depth/visual handles clients with weird visuals; they can
* always be children of the root depth/visual obviously, but
* e.g. DRI games can't be children of a parent that has the same
@@ -251,14 +249,16 @@ meta_ui_theme_get_frame_borders (MetaUI *ui,
MetaFrameFlags flags,
MetaFrameBorders *borders)
{
+ GdkDisplay *display;
+ GdkScreen *screen;
int text_height;
MetaStyleInfo *style_info = NULL;
PangoContext *context;
const PangoFontDescription *font_desc;
PangoFontDescription *free_font_desc = NULL;
- GdkDisplay *display = gdk_x11_lookup_xdisplay (ui->xdisplay);
- GdkScreen *screen = gdk_display_get_screen (display, XScreenNumberOfScreen (ui->xscreen));
+ display = gdk_x11_lookup_xdisplay (ui->xdisplay);
+ screen = gdk_display_get_default_screen (display);
style_info = meta_theme_create_style_info (screen, NULL);
diff --git a/src/ui/ui.h b/src/ui/ui.h
index 4a4bed0..91c26c3 100644
--- a/src/ui/ui.h
+++ b/src/ui/ui.h
@@ -42,8 +42,7 @@ Display* meta_ui_get_display (void);
gint meta_ui_get_screen_number (void);
-MetaUI* meta_ui_new (Display *xdisplay,
- Screen *screen);
+MetaUI* meta_ui_new (Display *xdisplay);
void meta_ui_free (MetaUI *ui);
void meta_ui_theme_get_frame_borders (MetaUI *ui,
@@ -59,7 +58,6 @@ MetaUIFrame * meta_ui_create_frame (MetaUI *ui,
gint y,
gint width,
gint height,
- gint screen_no,
gulong *create_serial);
void meta_ui_move_resize_frame (MetaUI *ui,
Window frame,
diff --git a/src/x11/events.c b/src/x11/events.c
index 6bead5a..98f5f03 100644
--- a/src/x11/events.c
+++ b/src/x11/events.c
@@ -648,7 +648,7 @@ meta_spew_event (MetaDisplay *display,
meta_spew_core_event (display, event, &name, &extra);
if (event->xany.window == screen->xroot)
- winname = g_strdup_printf ("root %d", screen->number);
+ winname = g_strdup_printf ("root");
else
winname = g_strdup_printf ("0x%lx", event->xany.window);
@@ -1154,8 +1154,8 @@ process_selection_clear (MetaDisplay *display,
return FALSE;
}
- meta_verbose ("Got selection clear for screen %d on display %s\n",
- screen->number, display->name);
+ meta_verbose ("Got selection clear for on display %s\n",
+ display->name);
meta_display_unmanage_screen (display, display->screen,
event->xselectionclear.time);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]