compositor: Add an API to focus the stage X window
gnome-shell has traditionally just called XSetInputFocus when wanting to set the input focus to the stage window, but this might cause strange, hard-to-reproduce bugs because of an interference with mutter's focus prediction. Add API to allow gnome-shell to focus the stage window that also updates mutter's internal focus prediction state. https://bugzilla.gnome.org/show_bug.cgi?id=700735
This commit is contained in:
@@ -369,6 +369,28 @@ meta_empty_stage_input_region (MetaScreen *screen)
|
||||
meta_set_stage_input_region (screen, region);
|
||||
}
|
||||
|
||||
void
|
||||
meta_focus_stage_window (MetaScreen *screen,
|
||||
guint32 timestamp)
|
||||
{
|
||||
ClutterStage *stage;
|
||||
Window window;
|
||||
|
||||
stage = CLUTTER_STAGE (meta_get_stage_for_screen (screen));
|
||||
if (!stage)
|
||||
return;
|
||||
|
||||
window = clutter_x11_get_stage_window (stage);
|
||||
|
||||
if (window == None)
|
||||
return;
|
||||
|
||||
meta_display_set_input_focus_xwindow (screen->display,
|
||||
screen,
|
||||
window,
|
||||
timestamp);
|
||||
}
|
||||
|
||||
gboolean
|
||||
meta_begin_modal_for_plugin (MetaScreen *screen,
|
||||
MetaPlugin *plugin,
|
||||
|
Reference in New Issue
Block a user