Commit 0acb58b4 authored by William Hua's avatar William Hua
parent b6baa088
......@@ -107,6 +107,10 @@ void _gdk_mir_event_source_queue (GdkMirWindowReference *window_ref, const MirEv
MirPixelFormat _gdk_mir_display_get_pixel_format (GdkDisplay *display, MirBufferUsage usage);
void _gdk_mir_display_focus_window (GdkDisplay *display, GdkWindow *window);
void _gdk_mir_display_unfocus_window (GdkDisplay *display, GdkWindow *window);
gboolean _gdk_mir_display_init_egl_display (GdkDisplay *display);
EGLDisplay _gdk_mir_display_get_egl_display (GdkDisplay *display);
......
......@@ -47,6 +47,8 @@ typedef struct GdkMirDisplay
GdkKeymap *keymap;
GdkWindow *focused_window;
MirPixelFormat sw_pixel_format;
MirPixelFormat hw_pixel_format;
......@@ -582,6 +584,25 @@ _gdk_mir_display_get_pixel_format (GdkDisplay *display,
return mir_dpy->sw_pixel_format;
}
void
_gdk_mir_display_focus_window (GdkDisplay *display,
GdkWindow *window)
{
GdkMirDisplay *mir_display = GDK_MIR_DISPLAY (display);
g_set_object (&mir_display->focused_window, window);
}
void
_gdk_mir_display_unfocus_window (GdkDisplay *display,
GdkWindow *window)
{
GdkMirDisplay *mir_display = GDK_MIR_DISPLAY (display);
if (window == mir_display->focused_window)
g_clear_object (&mir_display->focused_window);
}
gboolean
_gdk_mir_display_init_egl_display (GdkDisplay *display)
{
......
......@@ -240,9 +240,15 @@ generate_focus_event (GdkWindow *window, gboolean focused)
GdkEvent *event;
if (focused)
gdk_synthesize_window_state (window, 0, GDK_WINDOW_STATE_FOCUSED);
{
gdk_synthesize_window_state (window, 0, GDK_WINDOW_STATE_FOCUSED);
_gdk_mir_display_focus_window (gdk_window_get_display (window), window);
}
else
gdk_synthesize_window_state (window, GDK_WINDOW_STATE_FOCUSED, 0);
{
gdk_synthesize_window_state (window, GDK_WINDOW_STATE_FOCUSED, 0);
_gdk_mir_display_unfocus_window (gdk_window_get_display (window), window);
}
event = gdk_event_new (GDK_FOCUS_CHANGE);
event->focus_change.send_event = FALSE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment