display: Move X11 initial focus handling to MetaX11Display
It's X11 specific, so put it in the X11 display manager object. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3329>
This commit is contained in:
parent
f3a33e9bd1
commit
2e2dfc0bf5
@ -945,9 +945,6 @@ meta_display_new (MetaContext *context,
|
|||||||
MetaDisplay *display;
|
MetaDisplay *display;
|
||||||
MetaDisplayPrivate *priv;
|
MetaDisplayPrivate *priv;
|
||||||
guint32 timestamp;
|
guint32 timestamp;
|
||||||
#ifdef HAVE_X11_CLIENT
|
|
||||||
Window old_active_xwindow = None;
|
|
||||||
#endif
|
|
||||||
MetaMonitorManager *monitor_manager;
|
MetaMonitorManager *monitor_manager;
|
||||||
MetaSettings *settings;
|
MetaSettings *settings;
|
||||||
MetaInputCapture *input_capture;
|
MetaInputCapture *input_capture;
|
||||||
@ -1066,14 +1063,6 @@ meta_display_new (MetaContext *context,
|
|||||||
display->last_focus_time = timestamp;
|
display->last_focus_time = timestamp;
|
||||||
display->last_user_time = timestamp;
|
display->last_user_time = timestamp;
|
||||||
|
|
||||||
#ifdef HAVE_X11
|
|
||||||
if (!meta_is_wayland_compositor ())
|
|
||||||
meta_prop_get_window (display->x11_display,
|
|
||||||
display->x11_display->xroot,
|
|
||||||
display->x11_display->atom__NET_ACTIVE_WINDOW,
|
|
||||||
&old_active_xwindow);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!meta_compositor_manage (display->compositor, error))
|
if (!meta_compositor_manage (display->compositor, error))
|
||||||
{
|
{
|
||||||
g_object_unref (display);
|
g_object_unref (display);
|
||||||
@ -1094,30 +1083,7 @@ meta_display_new (MetaContext *context,
|
|||||||
g_signal_connect (display->gesture_tracker, "state-changed",
|
g_signal_connect (display->gesture_tracker, "state-changed",
|
||||||
G_CALLBACK (gesture_tracker_state_changed), display);
|
G_CALLBACK (gesture_tracker_state_changed), display);
|
||||||
|
|
||||||
/* We know that if mutter is running as a Wayland compositor,
|
|
||||||
* we start out with no windows.
|
|
||||||
*/
|
|
||||||
#ifdef HAVE_X11_CLIENT
|
|
||||||
if (!meta_is_wayland_compositor ())
|
|
||||||
meta_display_manage_all_xwindows (display);
|
|
||||||
|
|
||||||
if (old_active_xwindow != None)
|
|
||||||
{
|
|
||||||
MetaWindow *old_active_window;
|
|
||||||
old_active_window = meta_x11_display_lookup_x_window (display->x11_display,
|
|
||||||
old_active_xwindow);
|
|
||||||
if (old_active_window)
|
|
||||||
meta_window_focus (old_active_window, timestamp);
|
|
||||||
else
|
|
||||||
meta_display_unset_input_focus (display, timestamp);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
meta_display_unset_input_focus (display, timestamp);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
meta_display_unset_input_focus (display, timestamp);
|
meta_display_unset_input_focus (display, timestamp);
|
||||||
#endif
|
|
||||||
|
|
||||||
g_signal_connect (stage, "notify::is-grabbed",
|
g_signal_connect (stage, "notify::is-grabbed",
|
||||||
G_CALLBACK (on_is_grabbed_changed), display);
|
G_CALLBACK (on_is_grabbed_changed), display);
|
||||||
|
@ -307,7 +307,32 @@ static void
|
|||||||
on_x11_display_opened (MetaX11Display *x11_display,
|
on_x11_display_opened (MetaX11Display *x11_display,
|
||||||
MetaDisplay *display)
|
MetaDisplay *display)
|
||||||
{
|
{
|
||||||
|
Window old_active_xwindow = None;
|
||||||
|
|
||||||
|
if (!meta_is_wayland_compositor ())
|
||||||
|
{
|
||||||
|
meta_prop_get_window (display->x11_display,
|
||||||
|
display->x11_display->xroot,
|
||||||
|
display->x11_display->atom__NET_ACTIVE_WINDOW,
|
||||||
|
&old_active_xwindow);
|
||||||
|
}
|
||||||
|
|
||||||
meta_display_manage_all_xwindows (display);
|
meta_display_manage_all_xwindows (display);
|
||||||
|
|
||||||
|
if (old_active_xwindow != None)
|
||||||
|
{
|
||||||
|
MetaWindow *old_active_window;
|
||||||
|
|
||||||
|
old_active_window = meta_x11_display_lookup_x_window (x11_display,
|
||||||
|
old_active_xwindow);
|
||||||
|
if (old_active_window)
|
||||||
|
{
|
||||||
|
uint32_t timestamp;
|
||||||
|
|
||||||
|
timestamp = display->x11_display->timestamp;
|
||||||
|
meta_window_focus (old_active_window, timestamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
x
Reference in New Issue
Block a user